uniqush-rb 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d1a0b6a6482a754562f8d75a406cc551a902020
4
- data.tar.gz: ca5754d6b5b442d15035bed6e445799e4543bd9d
3
+ metadata.gz: f708c4f51493c8cba5a1159c3d4b2cf2a983e999
4
+ data.tar.gz: 5da4f9470d6f6e3c66cc0033a9e43a503f13ec50
5
5
  SHA512:
6
- metadata.gz: faeafcacc8407243b86d016d52b5ee7a2e2a037e216adb168192c3e48af9cde48c94ffd6bee3247e2e4773ac8fbf2541e994f6b8313c3f168b50784f1b376e91
7
- data.tar.gz: fd06cf89f0c5286af3d19343ccdd07feed3940c3bb838977e12c30dfe46c34ed4976db25ba6509c68141ffdc63096b633b4655084c5d2dfaa3474ac9086c2df8
6
+ metadata.gz: b64ccaffeadcefa168634dea00de7b0b67a9ad73a208276a8a7e1f3b347606ddcb352aa43282b2cbecb5f68c3faad470d385bbd1b44a36c0876743fdd0ae4467
7
+ data.tar.gz: 5909e315dac60a9f147b81143f413dea277cea16886bb9838aa6fde6fae120f6000d1d7296d186f1a6100e89b4965f19fd1282c6e0e2f22d3f451016dc74806c
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
@@ -0,0 +1,34 @@
1
+ require "rest-client"
2
+
3
+ module Uniqush
4
+ class RestfulClient
5
+ ENDPOINTS = {
6
+ version: [:get, "version"],
7
+ stop: [:post, "stop"],
8
+ add_service: [:post, "push_service_providers"],
9
+ remove_service: [:delete, "push_service_providers"],
10
+ subscribe_device: [:post, "subscribers"],
11
+ unsubscribe_device: [:delete, "subscribers"],
12
+ push: [:post, "push"]
13
+ }.freeze
14
+
15
+ def initialize(base_url)
16
+ @client = rest_client(base_url)
17
+ end
18
+
19
+ ENDPOINTS.each do |method, (http_method, url)|
20
+ define_method method do |params = {}, extras = {}|
21
+ if [:post, :put, :patch].include?(http_method)
22
+ args = [params.to_json, extras]
23
+ else
24
+ args = [{params: params}.merge(extras)]
25
+ end
26
+ @client[url].send(http_method, *args)
27
+ end
28
+ end
29
+
30
+ def rest_client(url)
31
+ RestClient::Resource.new(url)
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module Uniqush
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/uniqush.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "uniqush/version"
2
2
  require "uniqush/client"
3
+ require "uniqush/restful_client"
3
4
 
4
5
  module Uniqush
5
- # Your code goes here...
6
6
  end
data/spec/spec_helper.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  require "webmock/rspec"
2
2
  require "uniqush"
3
+ require "./spec/support"
data/spec/support.rb ADDED
@@ -0,0 +1,16 @@
1
+ RSpec::Matchers.define(:request) do |method, url|
2
+ match do |action|
3
+ @stub = stub_request(method, url)
4
+ @stub = @stub.with(@with) unless @with.nil?
5
+ action.call
6
+ expect(@stub).to have_been_requested
7
+ end
8
+
9
+ chain(:with) do |options|
10
+ @with = options
11
+ end
12
+
13
+ def supports_block_expectations?
14
+ true
15
+ end
16
+ end
@@ -5,23 +5,6 @@ describe Uniqush::Client do
5
5
  let(:client) { described_class.new(base_url) }
6
6
  let(:a_hash) { {foo: "bar", baz: "bam"} }
7
7
 
8
- RSpec::Matchers.define(:request) do |method, url|
9
- match do |action|
10
- @stub = stub_request(method, url)
11
- @stub = @stub.with(@with) unless @with.nil?
12
- action.call
13
- expect(@stub).to have_been_requested
14
- end
15
-
16
- chain(:with) do |options|
17
- @with = options
18
- end
19
-
20
- def supports_block_expectations?
21
- true
22
- end
23
- end
24
-
25
8
  describe "services" do
26
9
  it "adds service" do
27
10
  expect { client.add_service(a_hash) }.
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+
3
+ describe Uniqush::RestfulClient do
4
+ let(:base_url) { "http://yourinstall.com" }
5
+ let(:client) { described_class.new(base_url) }
6
+ let(:a_hash) { {foo: "bar", baz: "bam"} }
7
+
8
+ describe "services" do
9
+ it "adds service" do
10
+ expect { client.add_service(a_hash) }.
11
+ to request(:post, "#{base_url}/push_service_providers").with(body: a_hash.to_json)
12
+ end
13
+ end
14
+
15
+ describe "subscriptions" do
16
+ it "subscribes" do
17
+ expect { client.subscribe_device(a_hash) }.
18
+ to request(:post, "#{base_url}/subscribers").with(body: a_hash.to_json)
19
+ end
20
+ end
21
+
22
+ describe "pushing" do
23
+ it "pushes" do
24
+ expect { client.push(a_hash) }.
25
+ to request(:post, "#{base_url}/push").with(body: a_hash.to_json)
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uniqush-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafael Bandeira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-24 00:00:00.000000000 Z
11
+ date: 2014-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -88,6 +88,7 @@ executables: []
88
88
  extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
+ - ".gitignore"
91
92
  - Gemfile
92
93
  - Gemfile.lock
93
94
  - LICENSE.txt
@@ -95,9 +96,12 @@ files:
95
96
  - Rakefile
96
97
  - lib/uniqush.rb
97
98
  - lib/uniqush/client.rb
99
+ - lib/uniqush/restful_client.rb
98
100
  - lib/uniqush/version.rb
99
101
  - spec/spec_helper.rb
102
+ - spec/support.rb
100
103
  - spec/uniqush/client_spec.rb
104
+ - spec/uniqush/restul_client_spec.rb
101
105
  - uniqush-rb.gemspec
102
106
  homepage: https://github.com/rafaelbandeira3/uniqush-rb
103
107
  licenses:
@@ -125,5 +129,7 @@ specification_version: 4
125
129
  summary: Client for uniqush-push
126
130
  test_files:
127
131
  - spec/spec_helper.rb
132
+ - spec/support.rb
128
133
  - spec/uniqush/client_spec.rb
134
+ - spec/uniqush/restul_client_spec.rb
129
135
  has_rdoc: