Skip to content

Commit

Permalink
Why : Ruby 1.9 dosent support hash params for a method
Browse files Browse the repository at this point in the history
What : Reversting this
  • Loading branch information
Edwin Rozario committed Jan 29, 2018
1 parent 040d749 commit 06fe623
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 24 deletions.
18 changes: 6 additions & 12 deletions lib/firebase/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,37 @@ class Client
attr_reader :request

def initialize(base_uri, auth = nil)
@request = Request.new(uri: base_uri,
auth: auth)
@request = Request.new(base_uri, auth)
end

# Writes and returns the data
# Firebase.set('users/info', { 'name' => 'Oscar' }) => { 'name' => 'Oscar' }
def set(path, data, query = {})
request.execute(method: :put, path: path,
data: data, query: query)
request.execute(:put, path, data, query)
end

# Returns the data at path
def get(path, query = {})
request.execute(method: :get, path: path,
query: query)
request.execute(:get, path, nil, query)
end

# Writes the data, returns the key name of the data added
# Firebase.push('users', { 'age' => 18}) => {"name":"-INOQPH-aV_psbk3ZXEX"}
def push(path, data, query = {})
request.execute(method: :post, path: path,
data: data, query: query)
request.execute(:post, path, data, query)
end

# Deletes the data at path and returs true
def delete(path, query = {})
request.execute(method: :delete, path: path,
query: query)
request.execute(:delete, path, nil, query)
end

# Write the data at path but does not delete ommited
# children. Returns the data
# Firebase.update('users/info',
# { 'name' => 'Oscar' }) => { 'name' => 'Oscar' }
def update(path, data, query = {})
request.execute(method: :patch, path: path,
data: data, query: query)
request.execute(:patch, path, data, query)
end

# Aliasing methods to match usual Ruby/Rails http methods
Expand Down
4 changes: 2 additions & 2 deletions lib/firebase/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ module Firebase
class Request
attr_reader :http_client, :auth

def initialize(uri:, auth:, headers: { 'Content-Type' => 'application/json' })
def initialize(uri, auth, headers = { 'Content-Type' => 'application/json' })
raise ArgumentError.new('base_uri must be a valid https uri') if uri !~ URI.regexp(%w(https))
uri += '/' unless uri.end_with?('/')

Expand All @@ -32,7 +32,7 @@ def initialize(uri:, auth:, headers: { 'Content-Type' => 'application/json' })
end
end

def execute(method:, path:, data: nil, query: {})
def execute(method, path, data = nil, query = {})
raise ArgumentError.new("Invalid path: #{path}. Path must be relative") if path.start_with? '/'

if @expires_at && Time.now > @expires_at
Expand Down
18 changes: 9 additions & 9 deletions spec/firebase_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,19 @@

describe 'set' do
it 'writes and returns the data' do
expect(@firebase.request).to receive(:execute).with(method: :put, path: 'users/info', data: data, query: {})
expect(@firebase.request).to receive(:execute).with(:put, 'users/info', data, {})
@firebase.set('users/info', data)
end

it 'writes and returns the data' do
expect(@firebase.request).to receive(:execute).with(method: :put, path: 'users/info', data: data, query: {})
expect(@firebase.request).to receive(:execute).with(:put, 'users/info', data, {})
@firebase.put('users/info', data)
end
end

describe "get" do
it "returns the data" do
expect(@firebase.request).to receive(:execute).with(method: :get, path: 'users/info', query: {})
expect(@firebase.request).to receive(:execute).with(:get, 'users/info', nil, {})
@firebase.get('users/info')
end

Expand All @@ -74,7 +74,7 @@
:orderBy => '"$key"',
:startAt => '"A1"'
}
expect(@firebase.request).to receive(:execute).with(method: :get, path: 'users/info', query: params)
expect(@firebase.request).to receive(:execute).with(:get, 'users/info', nil, params)
@firebase.get('users/info', params)
end

Expand Down Expand Up @@ -136,31 +136,31 @@

describe 'push/post' do
it 'writes the data' do
expect(@firebase.request).to receive(:execute).with(method: :post, path: 'users', data: data, query: {})
expect(@firebase.request).to receive(:execute).with(:post, 'users', data, {})
@firebase.push('users', data)
end

it 'writes the data' do
expect(@firebase.request).to receive(:execute).with(method: :post, path: 'users', data: data, query: {})
expect(@firebase.request).to receive(:execute).with(:post, 'users', data, {})
@firebase.post('users', data)
end
end

describe 'delete/destroy' do
it 'returns true' do
expect(@firebase.request).to receive(:execute).with(method: :delete, path: 'users/info', query: {})
expect(@firebase.request).to receive(:execute).with(:delete, 'users/info', nil, {})
@firebase.delete('users/info')
end

it 'returns true' do
expect(@firebase.request).to receive(:execute).with(method: :delete, path: 'users/info', query: {})
expect(@firebase.request).to receive(:execute).with(:delete, 'users/info', nil, {})
@firebase.destroy('users/info')
end
end

describe "update" do
it "updates and returns the data" do
expect(@firebase.request).to receive(:execute).with(method: :patch, path: 'users/info', data: data, query: {})
expect(@firebase.request).to receive(:execute).with(:patch, 'users/info', data, {})
@firebase.update('users/info', data)
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
# in ./support/ and its subdirectories.
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}

RSpec.configure do |config|; end
RSpec.configure do |config|; end

0 comments on commit 06fe623

Please sign in to comment.