vidibus-resource 0.3.9 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -43,6 +43,13 @@ module Vidibus::Resource
43
43
  save
44
44
  end
45
45
 
46
+ # Updates given resource consumer.
47
+ def refresh_resource_consumer(service_uuid, realm_uuid)
48
+ if resource_consumers[realm_uuid] && resource_consumers[realm_uuid].include?(service_uuid)
49
+ update_resource_consumer(service_uuid, realm_uuid)
50
+ end
51
+ end
52
+
46
53
  # TODO: Get rid of this! It's only for the controller...
47
54
  def resource_provider?
48
55
  true
@@ -53,12 +60,8 @@ module Vidibus::Resource
53
60
  false
54
61
  end
55
62
 
56
- def resourceable_hash
57
- @resourceable_hash ||= attributes.except('resource_consumers', '_id')
58
- end
59
-
60
- def resourceable_hash_json
61
- @resourceable_hash_json ||= JSON.generate(resourceable_hash)
63
+ def resourceable_hash(service_uuid = nil, realm_uuid = nil)
64
+ attributes.except('resource_consumers', '_id')
62
65
  end
63
66
 
64
67
  private
@@ -84,8 +87,8 @@ module Vidibus::Resource
84
87
  if !force_consumer_update
85
88
  return unless changes.except('resource_consumers', 'updated_at').any?
86
89
  end
87
-
88
- self.resourceable_hash_checksum = Digest::MD5.hexdigest(resourceable_hash_json)
90
+ json = JSON.generate(resourceable_hash)
91
+ self.resourceable_hash_checksum = Digest::MD5.hexdigest(json)
89
92
  if resourceable_hash_checksum_changed?
90
93
  each_resource_consumer do |service_uuid, realm_uuid|
91
94
  update_resource_consumer(service_uuid, realm_uuid)
@@ -103,12 +106,12 @@ module Vidibus::Resource
103
106
 
104
107
  # Sends an API request to create the resource consumer.
105
108
  def create_resource_consumer(service_uuid, realm_uuid)
106
- resource_consumer_request(service_uuid, realm_uuid, :post, :body => {:resource => resourceable_hash_json})
109
+ resource_consumer_request(service_uuid, realm_uuid, :post)
107
110
  end
108
111
 
109
112
  # Sends an API request to update the resource consumer.
110
113
  def update_resource_consumer(service_uuid, realm_uuid)
111
- resource_consumer_request(service_uuid, realm_uuid, :put, :body => {:resource => resourceable_hash_json})
114
+ resource_consumer_request(service_uuid, realm_uuid, :put)
112
115
  end
113
116
 
114
117
  # Sends an API request to delete the resource consumer.
@@ -117,8 +120,15 @@ module Vidibus::Resource
117
120
  end
118
121
 
119
122
  def resource_consumer_request(service_uuid, realm_uuid, method, options = {})
123
+ if [:post, :put].include?(method)
124
+ hash = resourceable_hash(service_uuid, realm_uuid)
125
+ options[:body] = {
126
+ :resource => JSON.generate(hash)
127
+ }
128
+ end
120
129
  begin
121
- ::Service.discover(service_uuid, realm_uuid).delay.send(method, resource_uri, options)
130
+ ::Service.discover(service_uuid, realm_uuid).
131
+ delay.send(method, resource_uri, options)
122
132
  rescue => e
123
133
  raise(ServiceError, "Sending a #{method} request to the resource consumer #{service_uuid} within realm #{realm_uuid} failed!\n#{e.inspect}")
124
134
  end
@@ -1,5 +1,5 @@
1
1
  module Vidibus
2
2
  module Resource
3
- VERSION = '0.3.9'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,246 +1,232 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vidibus-resource
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.9
3
+ version: !ruby/object:Gem::Version
4
+ hash: 15
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Andre Pankratz
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-09-09 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: activesupport
16
- requirement: !ruby/object:Gem::Requirement
17
+
18
+ date: 2013-07-12 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
22
  none: false
18
- requirements:
23
+ requirements:
19
24
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '3'
25
+ - !ruby/object:Gem::Version
26
+ hash: 5
27
+ segments:
28
+ - 3
29
+ version: "3"
22
30
  type: :runtime
31
+ requirement: *id001
23
32
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
33
+ name: activesupport
34
+ - !ruby/object:Gem::Dependency
35
+ version_requirements: &id002 !ruby/object:Gem::Requirement
25
36
  none: false
26
- requirements:
37
+ requirements:
27
38
  - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '3'
30
- - !ruby/object:Gem::Dependency
39
+ - !ruby/object:Gem::Version
40
+ hash: 7
41
+ segments:
42
+ - 2
43
+ version: "2"
44
+ type: :runtime
45
+ requirement: *id002
46
+ prerelease: false
31
47
  name: mongoid
32
- requirement: !ruby/object:Gem::Requirement
48
+ - !ruby/object:Gem::Dependency
49
+ version_requirements: &id003 !ruby/object:Gem::Requirement
33
50
  none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '2'
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
38
58
  type: :runtime
59
+ requirement: *id003
39
60
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '2'
46
- - !ruby/object:Gem::Dependency
47
61
  name: json
48
- requirement: !ruby/object:Gem::Requirement
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: &id004 !ruby/object:Gem::Requirement
49
64
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ hash: 3
69
+ segments:
70
+ - 0
71
+ version: "0"
54
72
  type: :runtime
73
+ requirement: *id004
55
74
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
75
  name: vidibus-uuid
64
- requirement: !ruby/object:Gem::Requirement
76
+ - !ruby/object:Gem::Dependency
77
+ version_requirements: &id005 !ruby/object:Gem::Requirement
65
78
  none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
85
+ version: "0"
70
86
  type: :runtime
87
+ requirement: *id005
71
88
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
89
  name: vidibus-service
80
- requirement: !ruby/object:Gem::Requirement
90
+ - !ruby/object:Gem::Dependency
91
+ version_requirements: &id006 !ruby/object:Gem::Requirement
81
92
  none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
86
100
  type: :runtime
101
+ requirement: *id006
87
102
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
103
  name: vidibus-api
96
- requirement: !ruby/object:Gem::Requirement
104
+ - !ruby/object:Gem::Dependency
105
+ version_requirements: &id007 !ruby/object:Gem::Requirement
97
106
  none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ hash: 7
111
+ segments:
112
+ - 3
113
+ - 0
114
+ version: "3.0"
102
115
  type: :runtime
116
+ requirement: *id007
103
117
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
118
  name: delayed_job
112
- requirement: !ruby/object:Gem::Requirement
119
+ - !ruby/object:Gem::Dependency
120
+ version_requirements: &id008 !ruby/object:Gem::Requirement
113
121
  none: false
114
- requirements:
122
+ requirements:
115
123
  - - ~>
116
- - !ruby/object:Gem::Version
117
- version: '3.0'
124
+ - !ruby/object:Gem::Version
125
+ hash: 7
126
+ segments:
127
+ - 1
128
+ - 0
129
+ - 8
130
+ version: 1.0.8
118
131
  type: :runtime
132
+ requirement: *id008
119
133
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: '3.0'
126
- - !ruby/object:Gem::Dependency
127
134
  name: delayed_job_mongoid
128
- requirement: !ruby/object:Gem::Requirement
135
+ - !ruby/object:Gem::Dependency
136
+ version_requirements: &id009 !ruby/object:Gem::Requirement
129
137
  none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 1.0.8
134
- type: :runtime
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ hash: 23
142
+ segments:
143
+ - 1
144
+ - 0
145
+ - 0
146
+ version: 1.0.0
147
+ type: :development
148
+ requirement: *id009
135
149
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 1.0.8
142
- - !ruby/object:Gem::Dependency
143
150
  name: bundler
144
- requirement: !ruby/object:Gem::Requirement
151
+ - !ruby/object:Gem::Dependency
152
+ version_requirements: &id010 !ruby/object:Gem::Requirement
145
153
  none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: 1.0.0
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
150
161
  type: :development
162
+ requirement: *id010
151
163
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: 1.0.0
158
- - !ruby/object:Gem::Dependency
159
164
  name: rake
160
- requirement: !ruby/object:Gem::Requirement
165
+ - !ruby/object:Gem::Dependency
166
+ version_requirements: &id011 !ruby/object:Gem::Requirement
161
167
  none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
166
175
  type: :development
176
+ requirement: *id011
167
177
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- - !ruby/object:Gem::Dependency
175
178
  name: rdoc
176
- requirement: !ruby/object:Gem::Requirement
179
+ - !ruby/object:Gem::Dependency
180
+ version_requirements: &id012 !ruby/object:Gem::Requirement
177
181
  none: false
178
- requirements:
179
- - - ! '>='
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ hash: 3
186
+ segments:
187
+ - 0
188
+ version: "0"
182
189
  type: :development
190
+ requirement: *id012
183
191
  prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ! '>='
188
- - !ruby/object:Gem::Version
189
- version: '0'
190
- - !ruby/object:Gem::Dependency
191
192
  name: rspec
192
- requirement: !ruby/object:Gem::Requirement
193
+ - !ruby/object:Gem::Dependency
194
+ version_requirements: &id013 !ruby/object:Gem::Requirement
193
195
  none: false
194
- requirements:
195
- - - ! '>='
196
- - !ruby/object:Gem::Version
197
- version: '0'
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
202
+ version: "0"
198
203
  type: :development
204
+ requirement: *id013
199
205
  prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
- requirements:
203
- - - ! '>='
204
- - !ruby/object:Gem::Version
205
- version: '0'
206
- - !ruby/object:Gem::Dependency
207
206
  name: rr
208
- requirement: !ruby/object:Gem::Requirement
207
+ - !ruby/object:Gem::Dependency
208
+ version_requirements: &id014 !ruby/object:Gem::Requirement
209
209
  none: false
210
- requirements:
211
- - - ! '>='
212
- - !ruby/object:Gem::Version
213
- version: '0'
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ hash: 3
214
+ segments:
215
+ - 0
216
+ version: "0"
214
217
  type: :development
218
+ requirement: *id014
215
219
  prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
- requirements:
219
- - - ! '>='
220
- - !ruby/object:Gem::Version
221
- version: '0'
222
- - !ruby/object:Gem::Dependency
223
220
  name: webmock
224
- requirement: !ruby/object:Gem::Requirement
225
- none: false
226
- requirements:
227
- - - ! '>='
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
- requirements:
235
- - - ! '>='
236
- - !ruby/object:Gem::Version
237
- version: '0'
238
221
  description: Allows creation of proxy objects of remote resources on distributed applications.
239
222
  email: andre@vidibus.com
240
223
  executables: []
224
+
241
225
  extensions: []
226
+
242
227
  extra_rdoc_files: []
243
- files:
228
+
229
+ files:
244
230
  - lib/vidibus/resource/consumer/mongoid.rb
245
231
  - lib/vidibus/resource/provider/mongoid.rb
246
232
  - lib/vidibus/resource/version.rb
@@ -253,29 +239,38 @@ files:
253
239
  - Rakefile
254
240
  homepage: https://github.com/vidibus/vidibus-resource
255
241
  licenses: []
242
+
256
243
  post_install_message:
257
244
  rdoc_options: []
258
- require_paths:
245
+
246
+ require_paths:
259
247
  - lib
260
- required_ruby_version: !ruby/object:Gem::Requirement
248
+ required_ruby_version: !ruby/object:Gem::Requirement
261
249
  none: false
262
- requirements:
263
- - - ! '>='
264
- - !ruby/object:Gem::Version
265
- version: '0'
266
- segments:
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ hash: 3
254
+ segments:
267
255
  - 0
268
- hash: -3944202276768731047
269
- required_rubygems_version: !ruby/object:Gem::Requirement
256
+ version: "0"
257
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
258
  none: false
271
- requirements:
272
- - - ! '>='
273
- - !ruby/object:Gem::Version
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ hash: 23
263
+ segments:
264
+ - 1
265
+ - 3
266
+ - 6
274
267
  version: 1.3.6
275
268
  requirements: []
269
+
276
270
  rubyforge_project: vidibus-resource
277
271
  rubygems_version: 1.8.24
278
272
  signing_key:
279
273
  specification_version: 3
280
274
  summary: Provides handling of remote resources
281
275
  test_files: []
276
+