firebase 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f4d0e635f2b61323e742ed14dffca10ef4507ea
4
- data.tar.gz: feb3f0741ff08578e52d78f5396012c0b0f4ab76
3
+ metadata.gz: e864ba62615c80fdea3df462d52ff16f0a05581b
4
+ data.tar.gz: f92180ed3c2af45cdec10d0c0342a05079727b58
5
5
  SHA512:
6
- metadata.gz: b7330bf19b01c9631ca5c181248907a5f4fa8faafe1db2ce85f23eb5c63b5317b41f13a4eca104c58fd8c96534ff5014dc3b86dfa53e45aa0c7fbe86950f382e
7
- data.tar.gz: e30401898c34f104c7c4a4b6257f96eb4a6e0e090c64b7488e0eb02f3df2241061d30d73607d7fa4dfdd7b9fc4faa57d28f5e661f301c0a83f84790cbaaa4056
6
+ metadata.gz: 63f404aa8ed4b8f69baebeb5dc3043fd3f7bec1916dd9c1bb51e4690225e7908dad5807a732da525b8b365d2c43467079ff9626e658eb645f911b2e566dcf769
7
+ data.tar.gz: 7bdbd22fffb2c1ebb2362db13f2b7e01d13303c56d365e806f8073c8422699024a03fc2da4c2f9c6d283f4242aaca4478eefecc6b9db82d18a1fb3d7aeed32c9
@@ -0,0 +1,8 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - "1.8.7"
5
+ - "1.9.3"
6
+ - "2.1.5"
7
+ - "2.2.3"
8
+ bundler_args: --without utility
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.5
4
+
5
+ * [Refactor to remove Request proxy class, expose http client](https://github.com/oscardelben/firebase-ruby/commit/138b1e1461ff33da506b0d7992b42e3544be9cf1)
6
+
3
7
  ## 0.2.4
4
8
 
5
9
  * Add support for server timestamp.
data/Gemfile CHANGED
@@ -9,6 +9,11 @@ gem 'json'
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "rspec"
13
- gem "jeweler"
12
+ gem 'rake'
13
+ gem 'rdoc'
14
+ gem 'rspec'
15
+ end
16
+
17
+ group :utility do
18
+ gem 'jeweler'
14
19
  end
@@ -1,25 +1,25 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.3.6)
4
+ addressable (2.3.8)
5
5
  builder (3.2.2)
6
6
  descendants_tracker (0.0.4)
7
7
  thread_safe (~> 0.3, >= 0.3.1)
8
8
  diff-lcs (1.2.5)
9
- faraday (0.9.0)
9
+ faraday (0.9.2)
10
10
  multipart-post (>= 1.2, < 3)
11
- git (1.2.6)
12
- github_api (0.11.3)
11
+ git (1.2.9.1)
12
+ github_api (0.13.0)
13
13
  addressable (~> 2.3)
14
- descendants_tracker (~> 0.0.1)
14
+ descendants_tracker (~> 0.0.4)
15
15
  faraday (~> 0.8, < 0.10)
16
- hashie (>= 1.2)
16
+ hashie (>= 3.4)
17
17
  multi_json (>= 1.7.5, < 2.0)
18
- nokogiri (~> 1.6.0)
18
+ nokogiri (~> 1.6.6)
19
19
  oauth2
20
- hashie (2.1.1)
21
- highline (1.6.21)
22
- httpclient (2.5.3.3)
20
+ hashie (3.4.3)
21
+ highline (1.7.8)
22
+ httpclient (2.7.0.1)
23
23
  jeweler (2.0.1)
24
24
  builder
25
25
  bundler (>= 1.0)
@@ -29,34 +29,37 @@ GEM
29
29
  nokogiri (>= 1.5.10)
30
30
  rake
31
31
  rdoc
32
- json (1.8.1)
33
- jwt (0.1.11)
34
- multi_json (>= 1.5)
35
- mini_portile (0.5.3)
36
- multi_json (1.9.3)
32
+ json (1.8.3)
33
+ jwt (1.5.2)
34
+ mini_portile (0.6.2)
35
+ multi_json (1.11.2)
37
36
  multi_xml (0.5.5)
38
37
  multipart-post (2.0.0)
39
- nokogiri (1.6.1)
40
- mini_portile (~> 0.5.0)
41
- oauth2 (0.9.3)
38
+ nokogiri (1.6.6.4)
39
+ mini_portile (~> 0.6.0)
40
+ oauth2 (1.0.0)
42
41
  faraday (>= 0.8, < 0.10)
43
- jwt (~> 0.1.8)
42
+ jwt (~> 1.0)
44
43
  multi_json (~> 1.3)
45
44
  multi_xml (~> 0.5)
46
45
  rack (~> 1.2)
47
- rack (1.5.2)
48
- rake (10.3.1)
49
- rdoc (4.1.1)
50
- json (~> 1.4)
51
- rspec (2.14.1)
52
- rspec-core (~> 2.14.0)
53
- rspec-expectations (~> 2.14.0)
54
- rspec-mocks (~> 2.14.0)
55
- rspec-core (2.14.8)
56
- rspec-expectations (2.14.5)
57
- diff-lcs (>= 1.1.3, < 2.0)
58
- rspec-mocks (2.14.6)
59
- thread_safe (0.3.3)
46
+ rack (1.6.4)
47
+ rake (10.4.2)
48
+ rdoc (4.2.0)
49
+ rspec (3.4.0)
50
+ rspec-core (~> 3.4.0)
51
+ rspec-expectations (~> 3.4.0)
52
+ rspec-mocks (~> 3.4.0)
53
+ rspec-core (3.4.1)
54
+ rspec-support (~> 3.4.0)
55
+ rspec-expectations (3.4.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.4.0)
58
+ rspec-mocks (3.4.0)
59
+ diff-lcs (>= 1.2.0, < 2.0)
60
+ rspec-support (~> 3.4.0)
61
+ rspec-support (3.4.1)
62
+ thread_safe (0.3.5)
60
63
 
61
64
  PLATFORMS
62
65
  ruby
@@ -65,4 +68,6 @@ DEPENDENCIES
65
68
  httpclient
66
69
  jeweler
67
70
  json
71
+ rake
72
+ rdoc
68
73
  rspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # firebase
1
+ # firebase [![Build Status](https://travis-ci.org/oscardelben/firebase-ruby.svg?branch=master)](https://travis-ci.org/oscardelben/firebase-ruby)
2
2
 
3
3
  Ruby wrapper for the [Firebase REST API](https://www.firebase.com/docs/rest/api/).
4
4
 
data/Rakefile CHANGED
@@ -11,19 +11,22 @@ rescue Bundler::BundlerError => e
11
11
  end
12
12
  require 'rake'
13
13
 
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "firebase"
18
- gem.homepage = "http://github.com/oscardelben/firebase-ruby"
19
- gem.license = "MIT"
20
- gem.summary = %Q{Firebase wrapper for Ruby}
21
- gem.description = %Q{Firebase wrapper for Ruby}
22
- gem.email = "info@oscardelben.com"
23
- gem.authors = ["Oscar Del Ben"]
24
- # dependencies defined in Gemfile
14
+ begin
15
+ require 'jeweler'
16
+ Jeweler::Tasks.new do |gem|
17
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
18
+ gem.name = "firebase"
19
+ gem.homepage = "http://github.com/oscardelben/firebase-ruby"
20
+ gem.license = "MIT"
21
+ gem.summary = %Q{Firebase wrapper for Ruby}
22
+ gem.description = %Q{Firebase wrapper for Ruby}
23
+ gem.email = "info@oscardelben.com"
24
+ gem.authors = ["Oscar Del Ben"]
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+ rescue LoadError
25
29
  end
26
- Jeweler::RubygemsDotOrgTasks.new
27
30
 
28
31
  require 'rspec/core'
29
32
  require 'rspec/core/rake_task'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 0.2.6
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: firebase 0.2.5 ruby lib
5
+ # stub: firebase 0.2.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "firebase"
9
- s.version = "0.2.5"
9
+ s.version = "0.2.6"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Oscar Del Ben"]
14
- s.date = "2015-11-18"
14
+ s.date = "2015-11-26"
15
15
  s.description = "Firebase wrapper for Ruby"
16
16
  s.email = "info@oscardelben.com"
17
17
  s.extra_rdoc_files = [
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.files = [
23
23
  ".document",
24
24
  ".rspec",
25
+ ".travis.yml",
25
26
  "CHANGELOG.md",
26
27
  "Gemfile",
27
28
  "Gemfile.lock",
@@ -47,19 +48,22 @@ Gem::Specification.new do |s|
47
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
49
  s.add_runtime_dependency(%q<httpclient>, [">= 0"])
49
50
  s.add_runtime_dependency(%q<json>, [">= 0"])
51
+ s.add_development_dependency(%q<rake>, [">= 0"])
52
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
50
53
  s.add_development_dependency(%q<rspec>, [">= 0"])
51
- s.add_development_dependency(%q<jeweler>, [">= 0"])
52
54
  else
53
55
  s.add_dependency(%q<httpclient>, [">= 0"])
54
56
  s.add_dependency(%q<json>, [">= 0"])
57
+ s.add_dependency(%q<rake>, [">= 0"])
58
+ s.add_dependency(%q<rdoc>, [">= 0"])
55
59
  s.add_dependency(%q<rspec>, [">= 0"])
56
- s.add_dependency(%q<jeweler>, [">= 0"])
57
60
  end
58
61
  else
59
62
  s.add_dependency(%q<httpclient>, [">= 0"])
60
63
  s.add_dependency(%q<json>, [">= 0"])
64
+ s.add_dependency(%q<rake>, [">= 0"])
65
+ s.add_dependency(%q<rdoc>, [">= 0"])
61
66
  s.add_dependency(%q<rspec>, [">= 0"])
62
- s.add_dependency(%q<jeweler>, [">= 0"])
63
67
  end
64
68
  end
65
69
 
@@ -30,7 +30,7 @@ module Firebase
30
30
 
31
31
  # Returns the data at path
32
32
  def get(path, query={})
33
- process :get, path, query
33
+ process :get, path, nil, query
34
34
  end
35
35
 
36
36
  # Writes the data, returns the key name of the data added
@@ -41,7 +41,7 @@ module Firebase
41
41
 
42
42
  # Deletes the data at path and returs true
43
43
  def delete(path, query={})
44
- process :delete, path, query
44
+ process :delete, path, nil, query
45
45
  end
46
46
 
47
47
  # Write the data at path but does not delete ommited children. Returns the data
@@ -55,7 +55,7 @@ module Firebase
55
55
  def process(verb, path, data=nil, query={})
56
56
  Firebase::Response.new @request.request(verb, "#{path}.json", {
57
57
  :body => (data && data.to_json),
58
- :query => (auth ? { :auth => auth }.merge(query) : query),
58
+ :query => (@auth ? { :auth => @auth }.merge(query) : query),
59
59
  :follow_redirect => true
60
60
  })
61
61
  end
@@ -21,17 +21,57 @@ describe "Firebase" do
21
21
 
22
22
  describe "set" do
23
23
  it "writes and returns the data" do
24
- @firebase.should_receive(:process).with(:put, 'users/info', data, {})
24
+ expect(@firebase).to receive(:process).with(:put, 'users/info', data, {})
25
25
  @firebase.set('users/info', data)
26
26
  end
27
27
  end
28
28
 
29
29
  describe "get" do
30
30
  it "returns the data" do
31
- @firebase.should_receive(:process).with(:get, 'users/info', {})
31
+ expect(@firebase).to receive(:process).with(:get, 'users/info', nil, {})
32
32
  @firebase.get('users/info')
33
33
  end
34
34
 
35
+ it "correctly passes custom ordering params" do
36
+ params = {
37
+ :orderBy => '"$key"',
38
+ :startAt => '"A1"'
39
+ }
40
+ expect(@firebase).to receive(:process).with(:get, 'users/info', nil, params)
41
+ @firebase.get('users/info', params)
42
+ end
43
+
44
+ it "works when run against real Firebase dataset" do
45
+ firebase = Firebase::Client.new 'https://dinosaur-facts.firebaseio.com'
46
+ response = firebase.get 'dinosaurs', :orderBy => '"$key"', :startAt => '"a"', :endAt => '"m"'
47
+ expect(response.body).to eq({
48
+ "bruhathkayosaurus" => {
49
+ "appeared" => -70000000,
50
+ "height" => 25,
51
+ "length" => 44,
52
+ "order" => "saurischia",
53
+ "vanished" => -70000000,
54
+ "weight" => 135000
55
+ },
56
+ "lambeosaurus" => {
57
+ "appeared" => -76000000,
58
+ "height" => 2.1,
59
+ "length" => 12.5,
60
+ "order" => "ornithischia",
61
+ "vanished" => -75000000,
62
+ "weight" => 5000
63
+ },
64
+ "linhenykus" => {
65
+ "appeared" => -85000000,
66
+ "height" => 0.6,
67
+ "length" => 1,
68
+ "order" => "theropoda",
69
+ "vanished" => -75000000,
70
+ "weight" => 3
71
+ }
72
+ })
73
+ end
74
+
35
75
  it "return nil if response body contains 'null'" do
36
76
  mock_response = double(:body => 'null')
37
77
  response = Firebase::Response.new(mock_response)
@@ -41,39 +81,39 @@ describe "Firebase" do
41
81
  it "return true if response body contains 'true'" do
42
82
  mock_response = double(:body => 'true')
43
83
  response = Firebase::Response.new(mock_response)
44
- response.body.should eq(true)
84
+ expect(response.body).to eq(true)
45
85
  end
46
86
 
47
87
  it "return false if response body contains 'false'" do
48
88
  mock_response = double(:body => 'false')
49
89
  response = Firebase::Response.new(mock_response)
50
- response.body.should eq(false)
90
+ expect(response.body).to eq(false)
51
91
  end
52
92
 
53
93
  it "raises JSON::ParserError if response body contains invalid JSON" do
54
94
  mock_response = double(:body => '{"this is wrong"')
55
95
  response = Firebase::Response.new(mock_response)
56
- expect { response.body }.to raise_error
96
+ expect { response.body }.to raise_error(JSON::ParserError)
57
97
  end
58
98
  end
59
99
 
60
100
  describe "push" do
61
101
  it "writes the data" do
62
- @firebase.should_receive(:process).with(:post, 'users', data, {})
102
+ expect(@firebase).to receive(:process).with(:post, 'users', data, {})
63
103
  @firebase.push('users', data)
64
104
  end
65
105
  end
66
106
 
67
107
  describe "delete" do
68
108
  it "returns true" do
69
- @firebase.should_receive(:process).with(:delete, 'users/info', {})
109
+ expect(@firebase).to receive(:process).with(:delete, 'users/info', nil, {})
70
110
  @firebase.delete('users/info')
71
111
  end
72
112
  end
73
113
 
74
114
  describe "update" do
75
115
  it "updates and returns the data" do
76
- @firebase.should_receive(:process).with(:patch, 'users/info', data, {})
116
+ expect(@firebase).to receive(:process).with(:patch, 'users/info', data, {})
77
117
  @firebase.update('users/info', data)
78
118
  end
79
119
  end
@@ -81,9 +121,9 @@ describe "Firebase" do
81
121
  describe "http processing" do
82
122
  it "sends custom auth" do
83
123
  firebase = Firebase::Client.new('https://test.firebaseio.com', 'secret')
84
- firebase.request.should_receive(:request).with(:get, "todos.json", {
85
- :body => {:foo => 'bar'}.to_json,
86
- :query => {:auth => "secret"},
124
+ expect(firebase.request).to receive(:request).with(:get, "todos.json", {
125
+ :body => nil,
126
+ :query => {:auth => "secret", :foo => 'bar'},
87
127
  :follow_redirect => true
88
128
  })
89
129
  firebase.get('todos', :foo => 'bar')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firebase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Del Ben
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-18 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,21 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: jeweler
56
+ name: rdoc
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -77,6 +91,7 @@ extra_rdoc_files:
77
91
  files:
78
92
  - ".document"
79
93
  - ".rspec"
94
+ - ".travis.yml"
80
95
  - CHANGELOG.md
81
96
  - Gemfile
82
97
  - Gemfile.lock