firebase 0.1.1 → 0.1.2
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/README.md +9 -0
- data/VERSION +1 -1
- data/firebase.gemspec +3 -2
- data/lib/firebase.rb +8 -2
- data/lib/firebase/request.rb +12 -4
- data/spec/firebase_request_spec.rb +32 -0
- metadata +4 -3
data/README.md
CHANGED
@@ -27,6 +27,15 @@ response.body # => { 'name' => "-INOQPH-aV_psbk3ZXEX" }
|
|
27
27
|
response.raw_body # => '{"name":"-INOQPH-aV_psbk3ZXEX"}'
|
28
28
|
```
|
29
29
|
|
30
|
+
If you have a read-only namespace, set your secret key as follows:
|
31
|
+
```ruby
|
32
|
+
Firebase.base_uri = 'http://gamma.firebase.com/youruser'
|
33
|
+
Firebase.auth = 'yoursecretkey'
|
34
|
+
|
35
|
+
response = Firebase.push("todos", { :name => 'Pick the milk', :priority => 1 })
|
36
|
+
```
|
37
|
+
|
38
|
+
|
30
39
|
So far, supported methods are:
|
31
40
|
|
32
41
|
```ruby
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/firebase.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "firebase"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
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 = "
|
12
|
+
s.date = "2013-02-02"
|
13
13
|
s.description = "Firebase wrapper for Ruby"
|
14
14
|
s.email = "info@oscardelben.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
"firebase.gemspec",
|
29
29
|
"lib/firebase.rb",
|
30
30
|
"lib/firebase/request.rb",
|
31
|
+
"spec/firebase_request_spec.rb",
|
31
32
|
"spec/firebase_spec.rb",
|
32
33
|
"spec/spec_helper.rb"
|
33
34
|
]
|
data/lib/firebase.rb
CHANGED
@@ -4,13 +4,19 @@ module Firebase
|
|
4
4
|
autoload :Request, 'firebase/request'
|
5
5
|
|
6
6
|
class << self
|
7
|
-
attr_accessor :base_uri
|
7
|
+
attr_accessor :base_uri, :auth
|
8
8
|
|
9
9
|
def base_uri=(other)
|
10
|
-
|
10
|
+
if other # Guard from nil
|
11
|
+
other = other + "/" if other[-1] != "/"
|
12
|
+
end
|
11
13
|
@base_uri = other
|
12
14
|
end
|
13
15
|
|
16
|
+
def auth=(auth)
|
17
|
+
@auth = auth
|
18
|
+
end
|
19
|
+
|
14
20
|
# Writes and returns the data
|
15
21
|
# Firebase.set('users/info', { 'name' => 'Oscar' }) => { 'name' => 'Oscar' }
|
16
22
|
def set(path, data)
|
data/lib/firebase/request.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'typhoeus'
|
2
2
|
require 'json'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'uri'
|
3
5
|
|
4
6
|
module Firebase
|
5
7
|
class Request
|
@@ -22,15 +24,21 @@ module Firebase
|
|
22
24
|
process(:delete, path)
|
23
25
|
end
|
24
26
|
|
27
|
+
def build_url(path)
|
28
|
+
host = Firebase.base_uri
|
29
|
+
path = "#{path}.json"
|
30
|
+
query_string = Firebase.auth ? "?auth=#{Firebase.auth}" : ""
|
31
|
+
url = URI.join(Firebase.base_uri, path, query_string)
|
32
|
+
|
33
|
+
url.to_s
|
34
|
+
end
|
35
|
+
|
25
36
|
private
|
26
37
|
|
27
38
|
def process(method, path, options={})
|
28
39
|
raise "Please set Firebase.base_uri before making requests" unless Firebase.base_uri
|
29
40
|
|
30
|
-
|
31
|
-
url = [url, '.json'].compact.join
|
32
|
-
|
33
|
-
request = Typhoeus::Request.new(url.to_s,
|
41
|
+
request = Typhoeus::Request.new(build_url(path),
|
34
42
|
:body => options[:body],
|
35
43
|
:method => method)
|
36
44
|
hydra = Typhoeus::Hydra.new
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Firebase Request" do
|
4
|
+
|
5
|
+
after do
|
6
|
+
Firebase.base_uri = nil
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "url_builder" do
|
10
|
+
it "should build the correct url when passed no path" do
|
11
|
+
Firebase.base_uri = 'https://test.firebaseio.com'
|
12
|
+
Firebase::Request.build_url(nil).should == 'https://test.firebaseio.com/.json'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "url_builder" do
|
17
|
+
it "should build the correct url when passed a path" do
|
18
|
+
Firebase.base_uri = 'https://test.firebaseio.com'
|
19
|
+
|
20
|
+
Firebase::Request.build_url('users/eugene').should == 'https://test.firebaseio.com/users/eugene.json'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "url_builder" do
|
25
|
+
it "should include a auth in the query string, if configured" do
|
26
|
+
Firebase.base_uri = 'https://test.firebaseio.com'
|
27
|
+
Firebase.auth = 'secretkey'
|
28
|
+
|
29
|
+
Firebase::Request.build_url('users/eugene').should == 'https://test.firebaseio.com/users/eugene.json?auth=secretkey'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firebase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- firebase.gemspec
|
95
95
|
- lib/firebase.rb
|
96
96
|
- lib/firebase/request.rb
|
97
|
+
- spec/firebase_request_spec.rb
|
97
98
|
- spec/firebase_spec.rb
|
98
99
|
- spec/spec_helper.rb
|
99
100
|
homepage: http://github.com/oscardelben/firebase-ruby
|
@@ -111,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
112
|
version: '0'
|
112
113
|
segments:
|
113
114
|
- 0
|
114
|
-
hash: -
|
115
|
+
hash: -3657937325613634651
|
115
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
117
|
none: false
|
117
118
|
requirements:
|