simple_firebase 0.0.1
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 +7 -0
- data/lib/simple_firebase/client.rb +45 -0
- data/lib/simple_firebase/exceptions/firebase_error.rb +9 -0
- data/lib/simple_firebase/response.rb +21 -0
- data/lib/simple_firebase.rb +7 -0
- metadata +47 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d3bab677f2372dc43677600d540a57a68495c166
|
4
|
+
data.tar.gz: 0b434e0135ef4fce4ce2e4ab0e84cb41b8cf7d1f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: afd7785893bfbbbd0c71fe6a7875d3a51f9c950872539383502762d881033844e41f4f874c03712448c4cf3dce229231ed8ab2001877404308c2065fcda6d78f
|
7
|
+
data.tar.gz: f7557669d9a2559e1e8605aee4dd2fa831d88aeda4a67852656e0ffec360f63e0ef893aade93df7f786e9fcf3790175f0438664f7199011299a7507170920bd7
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'net/http'
|
3
|
+
require 'simple_firebase/response'
|
4
|
+
require 'simple_firebase/exceptions/firebase_error'
|
5
|
+
|
6
|
+
module SimpleFirebase
|
7
|
+
class Client
|
8
|
+
DEFAULT_PAGE_SIZE = 1000
|
9
|
+
|
10
|
+
def initialize(uri, key)
|
11
|
+
@uri = uri
|
12
|
+
@key = key
|
13
|
+
end
|
14
|
+
|
15
|
+
def fetch_single(resource, key, value)
|
16
|
+
fetch(resource, key, value, 1).values.first
|
17
|
+
end
|
18
|
+
|
19
|
+
def fetch(resource, key, value, page_size)
|
20
|
+
uri = construct_uri(resource, key, value, page_size)
|
21
|
+
|
22
|
+
r = SimpleFirebase::Response.new(Net::HTTP.get_response(uri))
|
23
|
+
|
24
|
+
raise SimpleFirebase::Exceptions::FirebaseError r.body unless r.success?
|
25
|
+
|
26
|
+
r.json_body
|
27
|
+
end
|
28
|
+
|
29
|
+
def uri; @uri; end
|
30
|
+
def key; @key; end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def construct_uri(resource, order_by, start_at, page_size)
|
35
|
+
q = { auth: @key, limitToFirst: page_size || DEFAULT_PAGE_SIZE }
|
36
|
+
q[:orderBy] = '"' + order_by + '"' if order_by
|
37
|
+
q[:startAt] = '"' + start_at.to_s + '"'
|
38
|
+
|
39
|
+
uri = URI("#{@uri}#{resource}.json")
|
40
|
+
uri.query = URI.encode_www_form q
|
41
|
+
|
42
|
+
uri
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module SimpleFirebase
|
4
|
+
class Response
|
5
|
+
def initialize(http_response)
|
6
|
+
@http_response = http_response
|
7
|
+
end
|
8
|
+
|
9
|
+
def success?
|
10
|
+
@http_response.code.to_i >= 200 && @http_response.code.to_i < 300
|
11
|
+
end
|
12
|
+
|
13
|
+
def json_body
|
14
|
+
JSON.parse(@http_response.body || "null")
|
15
|
+
end
|
16
|
+
|
17
|
+
def body
|
18
|
+
@http_response.body
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simple_firebase
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Istisiki Cardoso
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-10-23 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple ruby library for fetching firebase resources.
|
14
|
+
email: czimon@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/simple_firebase.rb
|
20
|
+
- lib/simple_firebase/client.rb
|
21
|
+
- lib/simple_firebase/exceptions/firebase_error.rb
|
22
|
+
- lib/simple_firebase/response.rb
|
23
|
+
homepage: http://rubygems.org/gems/simple_firebase
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements: []
|
42
|
+
rubyforge_project:
|
43
|
+
rubygems_version: 2.6.13
|
44
|
+
signing_key:
|
45
|
+
specification_version: 4
|
46
|
+
summary: A simple ruby library for fetching firebase resources.
|
47
|
+
test_files: []
|