ey_services_api 0.3.5 → 0.3.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.
- data/README.md +15 -5
- data/fake/ey_services_fake.gemspec +1 -0
- data/fake/lib/ey_services_fake/mock_backend.rb +42 -5
- data/fake/lib/ey_services_fake/reacharound_awsm.rb +4 -0
- data/fake/lib/ey_services_fake/version.rb +1 -1
- data/lib/ey_services_api.rb +1 -0
- data/lib/ey_services_api/service.rb +1 -0
- data/lib/ey_services_api/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -20,6 +20,16 @@ EY::ServicesAPI.connection.register_service(
|
|
20
20
|
:vars => ["MY_SERVICE_API_KEY"] })
|
21
21
|
```
|
22
22
|
|
23
|
+
# Using this gem in your project
|
24
|
+
|
25
|
+
This codebase really contains 2 gems:
|
26
|
+
|
27
|
+
* ey_services_api is the Gem for communicating with services.engineyard.com. Include this in your Gemfile.
|
28
|
+
* ey_services_fake is a Gem for helping you to write tests with a working "Fake" in place of talking directly to services.engineyard.com. Include this in your Gemfile inside the "test" group.
|
29
|
+
|
30
|
+
For examples of using the gem in a sinatra app, and in tests see: https://github.com/engineyard/chronatog
|
31
|
+
|
32
|
+
|
23
33
|
## To run the tests
|
24
34
|
|
25
35
|
To run specs mocked:
|
@@ -36,11 +46,11 @@ To run against tresfiestas codebase: (internal only)
|
|
36
46
|
|
37
47
|
## Releasing
|
38
48
|
|
39
|
-
$ rvm use 1.8.7
|
40
|
-
$ gem install gem-release
|
41
|
-
$ gem bump
|
42
|
-
$ gem release
|
43
|
-
$ git push
|
49
|
+
$ rvm use 1.8.7
|
50
|
+
$ gem install gem-release
|
51
|
+
$ gem bump
|
52
|
+
$ gem release
|
53
|
+
$ git push
|
44
54
|
|
45
55
|
This should bump the versions of both ey_services_api and ey_services_fake. Push both to rubygems, and then push your version bump commits to github.
|
46
56
|
|
@@ -21,6 +21,43 @@ module EyServicesFake
|
|
21
21
|
new(actors)
|
22
22
|
end
|
23
23
|
|
24
|
+
def app_for(actor_name)
|
25
|
+
this = self
|
26
|
+
@apps ||= {}
|
27
|
+
@apps[actor_name] ||= Rack::Builder.new do
|
28
|
+
this.actors.each do |k, actor|
|
29
|
+
if actor.respond_to?(:extra_middlewares)
|
30
|
+
self.instance_eval(&actor.extra_middlewares)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
if ENV["REQUEST_DEBUG"]
|
34
|
+
require 'request_visualizer'
|
35
|
+
use RequestVisualizer do |str|
|
36
|
+
found = str
|
37
|
+
this.actors.each do |k, actor|
|
38
|
+
if str.match(actor.base_url)
|
39
|
+
found = k.to_s
|
40
|
+
end
|
41
|
+
end
|
42
|
+
found
|
43
|
+
end
|
44
|
+
end
|
45
|
+
run this.actors[actor_name].app
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def app
|
50
|
+
this = self
|
51
|
+
@app ||= Rack::Builder.new do
|
52
|
+
this.actors.each do |k, actor|
|
53
|
+
map "#{actor.base_url}/" do
|
54
|
+
run this.app_for(k)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
attr_reader :actors
|
24
61
|
def initialize(actors)
|
25
62
|
@actors = actors
|
26
63
|
end
|
@@ -38,8 +75,8 @@ module EyServicesFake
|
|
38
75
|
def awsm
|
39
76
|
awsm_hash = actor(:tresfiestas).find_awsm
|
40
77
|
unless awsm_hash
|
41
|
-
awsm_hash = actor(:tresfiestas).create_awsm(actor(:awsm).base_url,
|
42
|
-
actor(:awsm).setup(awsm_hash[:auth_id], awsm_hash[:auth_key], actor(:tresfiestas).base_url,
|
78
|
+
awsm_hash = actor(:tresfiestas).create_awsm(actor(:awsm).base_url, app_for(:awsm))
|
79
|
+
actor(:awsm).setup(awsm_hash[:auth_id], awsm_hash[:auth_key], actor(:tresfiestas).base_url, app_for(:tresfiestas))
|
43
80
|
end
|
44
81
|
awsm_hash
|
45
82
|
end
|
@@ -47,13 +84,13 @@ module EyServicesFake
|
|
47
84
|
def partner
|
48
85
|
partner_hash = actor(:tresfiestas).find_partner(sso_user)
|
49
86
|
unless partner_hash
|
50
|
-
partner_hash = actor(:tresfiestas).create_partner(sso_user, actor(:service_provider).base_url,
|
87
|
+
partner_hash = actor(:tresfiestas).create_partner(sso_user, actor(:service_provider).base_url, app_for(:service_provider))
|
51
88
|
@actors.values.each do |actor|
|
52
89
|
if actor.respond_to?(:service_provider_setup)
|
53
|
-
actor.service_provider_setup(partner_hash[:auth_id], partner_hash[:auth_key], actor(:service_provider).base_url,
|
90
|
+
actor.service_provider_setup(partner_hash[:auth_id], partner_hash[:auth_key], actor(:service_provider).base_url, app_for(:service_provider))
|
54
91
|
end
|
55
92
|
end
|
56
|
-
actor(:service_provider).setup(partner_hash[:auth_id], partner_hash[:auth_key], actor(:tresfiestas).base_url,
|
93
|
+
actor(:service_provider).setup(partner_hash[:auth_id], partner_hash[:auth_key], actor(:tresfiestas).base_url, app_for(:tresfiestas))
|
57
94
|
end
|
58
95
|
partner_hash
|
59
96
|
end
|
data/lib/ey_services_api.rb
CHANGED
@@ -26,6 +26,7 @@ module EY
|
|
26
26
|
|
27
27
|
def self.enable_mock!(service_provider, tresfiestas = nil, awsm = nil)
|
28
28
|
unless @mock_backend
|
29
|
+
#TODO: rescue load error and log the need to include ey_services_fake gem
|
29
30
|
require "ey_services_fake/mock_backend"
|
30
31
|
@mock_backend = EyServicesFake::MockBackend.setup!(
|
31
32
|
:awsm => awsm,
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ey_services_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 6
|
10
|
+
version: 0.3.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jacob & Thorben & David & mkb & Josh & Others
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-03-
|
18
|
+
date: 2012-03-16 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rspec
|