firebase 0.1.4 → 0.1.5

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "firebase"
8
- s.version = "0.1.4"
8
+ s.version = "0.1.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Oscar Del Ben"]
12
- s.date = "2013-03-24"
12
+ s.date = "2013-11-10"
13
13
  s.description = "Firebase wrapper for Ruby"
14
14
  s.email = "info@oscardelben.com"
15
15
  s.extra_rdoc_files = [
@@ -42,7 +42,7 @@ module Firebase
42
42
  def process(method, path, options={})
43
43
  raise "Please set Firebase.base_uri before making requests" unless Firebase.base_uri
44
44
 
45
- @@hydra ||= Typhoeus::Hydra.new
45
+ @@hydra ||= Typhoeus::Hydra.new
46
46
  request = Typhoeus::Request.new(build_url(path),
47
47
  :body => options[:body],
48
48
  :method => method)
@@ -61,7 +61,9 @@ module Firebase
61
61
  end
62
62
 
63
63
  def body
64
- JSON.parse(response.body)
64
+ JSON.parse(response.body, :quirks_mode => true)
65
+ rescue JSON::ParserError => e
66
+ response.body == 'null' ? nil : raise
65
67
  end
66
68
 
67
69
  def raw_body
@@ -69,7 +71,7 @@ module Firebase
69
71
  end
70
72
 
71
73
  def success?
72
- response.code.in? [200, 204]
74
+ [200, 204].include? response.code
73
75
  end
74
76
 
75
77
  def code
@@ -24,6 +24,31 @@ describe "Firebase" do
24
24
  Firebase::Request.should_receive(:get).with('users/info')
25
25
  Firebase.get('users/info')
26
26
  end
27
+
28
+ it "return nil if response body contains 'null'" do
29
+ mock_response = mock(:body => 'null')
30
+ @request = Firebase::Request.new(mock_response)
31
+ expect { @request.body }.to_not raise_error(JSON::ParserError)
32
+ end
33
+
34
+ it "return true if response body contains 'true'" do
35
+ mock_response = mock(:body => 'true')
36
+ @request = Firebase::Request.new(mock_response)
37
+ @request.body.should eq(true)
38
+ end
39
+
40
+ it "return false if response body contains 'false'" do
41
+ mock_response = mock(:body => 'false')
42
+ @request = Firebase::Request.new(mock_response)
43
+ @request.body.should eq(false)
44
+ end
45
+
46
+ it "raises JSON::ParserError if response body contains invalid JSON" do
47
+ mock_response = mock(:body => '{"this is wrong"')
48
+ @request = Firebase::Request.new(mock_response)
49
+ expect { @request.body }.to raise_error(JSON::ParserError)
50
+ end
51
+
27
52
  end
28
53
 
29
54
  describe "push" do
metadata CHANGED
@@ -1,80 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firebase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
5
4
  prerelease:
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Oscar Del Ben
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-24 00:00:00.000000000 Z
12
+ date: 2013-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: typhoeus
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
15
+ version_requirements: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.6.1
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
20
  none: false
21
+ prerelease: false
22
+ name: typhoeus
23
+ type: :runtime
24
+ requirement: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - ! '>='
28
27
  - !ruby/object:Gem::Version
29
28
  version: 0.6.1
30
- - !ruby/object:Gem::Dependency
31
- name: json
32
- requirement: !ruby/object:Gem::Requirement
33
29
  none: false
30
+ - !ruby/object:Gem::Dependency
31
+ version_requirements: !ruby/object:Gem::Requirement
34
32
  requirements:
35
33
  - - ! '>='
36
34
  - !ruby/object:Gem::Version
37
35
  version: '0'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
36
  none: false
37
+ prerelease: false
38
+ name: json
39
+ type: :runtime
40
+ requirement: !ruby/object:Gem::Requirement
42
41
  requirements:
43
42
  - - ! '>='
44
43
  - !ruby/object:Gem::Version
45
44
  version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
45
  none: false
46
+ - !ruby/object:Gem::Dependency
47
+ version_requirements: !ruby/object:Gem::Requirement
50
48
  requirements:
51
49
  - - ! '>='
52
50
  - !ruby/object:Gem::Version
53
51
  version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
52
  none: false
53
+ prerelease: false
54
+ name: rspec
55
+ type: :development
56
+ requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ! '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: jeweler
64
- requirement: !ruby/object:Gem::Requirement
65
61
  none: false
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: !ruby/object:Gem::Requirement
66
64
  requirements:
67
65
  - - ~>
68
66
  - !ruby/object:Gem::Version
69
67
  version: 1.8.3
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
68
  none: false
69
+ prerelease: false
70
+ name: jeweler
71
+ type: :development
72
+ requirement: !ruby/object:Gem::Requirement
74
73
  requirements:
75
74
  - - ~>
76
75
  - !ruby/object:Gem::Version
77
76
  version: 1.8.3
77
+ none: false
78
78
  description: Firebase wrapper for Ruby
79
79
  email: info@oscardelben.com
80
80
  executables: []
@@ -105,20 +105,20 @@ rdoc_options: []
105
105
  require_paths:
106
106
  - lib
107
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
- none: false
109
108
  requirements:
110
109
  - - ! '>='
111
110
  - !ruby/object:Gem::Version
112
- version: '0'
113
111
  segments:
114
112
  - 0
115
- hash: -2098595268824288091
116
- required_rubygems_version: !ruby/object:Gem::Requirement
113
+ hash: 675265491536299218
114
+ version: '0'
117
115
  none: false
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
117
  requirements:
119
118
  - - ! '>='
120
119
  - !ruby/object:Gem::Version
121
120
  version: '0'
121
+ none: false
122
122
  requirements: []
123
123
  rubyforge_project:
124
124
  rubygems_version: 1.8.23