restafari 0.5 → 0.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/.gemspec +1 -1
- data/Gemfile +1 -1
- data/lib/restafari/action.rb +16 -4
- data/lib/restafari/version.rb +1 -1
- data/spec/restafari/action_spec.rb +10 -2
- data/spec/spec_helper.rb +1 -1
- metadata +104 -68
data/.gemspec
CHANGED
data/Gemfile
CHANGED
data/lib/restafari/action.rb
CHANGED
@@ -9,7 +9,10 @@ module Restafari
|
|
9
9
|
|
10
10
|
module ClassMethods
|
11
11
|
def action(name, *args)
|
12
|
+
|
12
13
|
case args.length
|
14
|
+
when 0
|
15
|
+
path = "/#{name.to_s}"
|
13
16
|
when 1
|
14
17
|
if args[0].is_a? String
|
15
18
|
path = args[0]
|
@@ -24,15 +27,24 @@ module Restafari
|
|
24
27
|
|
25
28
|
default_params ||= {}
|
26
29
|
|
27
|
-
define_singleton_method(name)
|
28
|
-
execute!(path, default_params.merge(params))
|
29
|
-
|
30
|
+
define_singleton_method(name) do |params={}|
|
31
|
+
execute!(path, default_params.merge(params)) do |method, url, path, params|
|
32
|
+
send_using_faraday(method, url, path, params)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
define_singleton_method("#{name}_url") do |params={}|
|
37
|
+
Restafari.config.run_before_request_hook(default_params.merge(params))
|
38
|
+
conn = Faraday.new(url: Restafari.config.url, params: params)
|
39
|
+
conn.build_url(path)
|
40
|
+
end
|
41
|
+
|
30
42
|
end
|
31
43
|
|
32
44
|
private
|
33
45
|
def execute!(path, params)
|
34
46
|
conn = Faraday.new(url: Restafari.config.url)
|
35
|
-
Restafari.config.run_before_request_hook(
|
47
|
+
Restafari.config.run_before_request_hook(params)
|
36
48
|
result = conn.send(Restafari.config.http_method, path, params)
|
37
49
|
Restafari.config.run_after_response_hook(result)
|
38
50
|
Restafari::Response.new(result)
|
data/lib/restafari/version.rb
CHANGED
@@ -7,7 +7,7 @@ describe Restafari::Action do
|
|
7
7
|
action :some_method, { b: 1 }
|
8
8
|
end
|
9
9
|
|
10
|
-
SomeAction.should_receive(:execute!).with(
|
10
|
+
SomeAction.should_receive(:execute!).with("/some_method", { b: 1 }).once
|
11
11
|
SomeAction.some_method()
|
12
12
|
end
|
13
13
|
|
@@ -27,7 +27,7 @@ describe Restafari::Action do
|
|
27
27
|
action :some_method
|
28
28
|
end
|
29
29
|
|
30
|
-
Restafari.config.before_request do |
|
30
|
+
Restafari.config.before_request do |params|
|
31
31
|
params[:test] = true
|
32
32
|
end
|
33
33
|
|
@@ -51,4 +51,12 @@ describe Restafari::Action do
|
|
51
51
|
SomeAction.some_method()
|
52
52
|
end
|
53
53
|
|
54
|
+
it "should allow accessing the action url" do
|
55
|
+
class UrlTest
|
56
|
+
include Restafari::Action
|
57
|
+
action :url_method
|
58
|
+
end
|
59
|
+
UrlTest.url_method_url(rt:2).to_s.should eq "http://www.example.com/url_method?rt=2"
|
60
|
+
end
|
61
|
+
|
54
62
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -12,7 +12,7 @@ end
|
|
12
12
|
|
13
13
|
Restafari.config.base_url = "www.example.com"
|
14
14
|
WebMock::stub_request(:post, "http://#{Restafari.config.base_url}/").to_return(:status => 200, :body => "{}", :headers => {})
|
15
|
-
|
15
|
+
WebMock::stub_request(:post, "http://#{Restafari.config.base_url}/some_method").to_return(:status => 200, :body => "{}", :headers => {})
|
16
16
|
unless defined?(RM_HOME)
|
17
17
|
# this is here to allow teamcity to run with spork
|
18
18
|
RM_HOME=File.expand_path("~/BuildAgent/plugins/rake-runner")
|
metadata
CHANGED
@@ -1,89 +1,115 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: restafari
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 6
|
9
|
+
version: "0.6"
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Danni Friedland
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2012-07-15 00:00:00 Z
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
15
20
|
name: faraday
|
16
|
-
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
23
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 3
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
22
31
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
26
34
|
name: webmock
|
27
|
-
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
37
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
hash: 3
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
version: "0"
|
33
45
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
version_requirements: *id002
|
47
|
+
- !ruby/object:Gem::Dependency
|
37
48
|
name: spork
|
38
|
-
|
49
|
+
prerelease: false
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
51
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
hash: 3
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
44
59
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
60
|
+
version_requirements: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
48
62
|
name: rack-test
|
49
|
-
|
63
|
+
prerelease: false
|
64
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
hash: 3
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
55
73
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
74
|
+
version_requirements: *id004
|
75
|
+
- !ruby/object:Gem::Dependency
|
59
76
|
name: rspec
|
60
|
-
|
77
|
+
prerelease: false
|
78
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
79
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
hash: 3
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
version: "0"
|
66
87
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
88
|
+
version_requirements: *id005
|
89
|
+
- !ruby/object:Gem::Dependency
|
70
90
|
name: rake
|
71
|
-
|
91
|
+
prerelease: false
|
92
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
93
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 3
|
98
|
+
segments:
|
99
|
+
- 0
|
100
|
+
version: "0"
|
77
101
|
type: :development
|
78
|
-
|
79
|
-
version_requirements: *70155096116560
|
102
|
+
version_requirements: *id006
|
80
103
|
description: Helper class to work with the restful apis
|
81
|
-
email:
|
104
|
+
email:
|
82
105
|
- - dannifriedland@gmail.com
|
83
106
|
executables: []
|
107
|
+
|
84
108
|
extensions: []
|
109
|
+
|
85
110
|
extra_rdoc_files: []
|
86
|
-
|
111
|
+
|
112
|
+
files:
|
87
113
|
- .gemspec
|
88
114
|
- .gitignore
|
89
115
|
- Gemfile
|
@@ -100,26 +126,36 @@ files:
|
|
100
126
|
- spec/spec_helper.rb
|
101
127
|
homepage: https://github.com/TheGiftsProject/restafari
|
102
128
|
licenses: []
|
129
|
+
|
103
130
|
post_install_message:
|
104
131
|
rdoc_options: []
|
105
|
-
|
132
|
+
|
133
|
+
require_paths:
|
106
134
|
- lib
|
107
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
136
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
hash: 3
|
141
|
+
segments:
|
142
|
+
- 0
|
143
|
+
version: "0"
|
144
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
145
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
119
153
|
requirements: []
|
154
|
+
|
120
155
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.8.
|
156
|
+
rubygems_version: 1.8.13
|
122
157
|
signing_key:
|
123
158
|
specification_version: 3
|
124
159
|
summary: A DSL for consuming RESTful apis
|
125
160
|
test_files: []
|
161
|
+
|