stormpath-sdk 0.3.0 → 0.4.0

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/CHANGES.md CHANGED
@@ -1,6 +1,23 @@
1
1
  stormpath-sdk-ruby Changelog
2
2
  ====================
3
3
 
4
+ Version 0.4.0
5
+ -------------
6
+
7
+ Released on October 26, 2012
8
+
9
+ - The Stormpath::Resource::GroupMembership class now extends the Stormpath::Resource::Resource class. It is no longer possible to call 'save' on an instance of this class.
10
+ - The 'create' method of the Stormpath::Resource::GroupMembership class is now a class method and receives an instance of Stormpath::DataStore::DataStore; it was renamed from 'create' to '_create'.
11
+ - The 'add_group' method implementation of the Stormpath::Resource::Account class was updated to reflect the previously mentioned changes.
12
+ - The 'add_account' method implementation of the Stormpath::Resource::Group class was updated to reflect the previously mentioned changes.
13
+ - The 'set_account' and 'set_group' methods were removed from the Stormpath::Resource::GroupMembership class.
14
+ - The 'get_account' method implementation of Stormpath::Authentication::AuthenticationResult changed to use the Account's fully qualified name.
15
+ - The 'build' method implementation of Stormpath::Client::ClientApplicationBuilder changed to use the Application's fully qualified name.
16
+ - The 'save', 'delete' and 'save_resource' methods implementations of Stormpath::DataStore::DataStore were changed to receive the Resource's fully qualified name in the 'assert_kind_of' method calls.
17
+ - The 'authenticate' method implementation of Stormpath::Authentication::BasicAuthenticator was changed to replace 'password' variable's Array to String conversion from 'to_s' to 'join'.
18
+ - The 'to_class_from_instance' method implementation was completely changed to use activesupport's 'constantize' method, and to enable caching of the already "constantized" values.
19
+
20
+
4
21
  Version 0.3.0
5
22
  -------------
6
23
 
data/lib/stormpath-sdk.rb CHANGED
@@ -6,6 +6,7 @@ require "open-uri"
6
6
  require "uri"
7
7
  require "uuidtools"
8
8
  require "yaml"
9
+ require "active_support"
9
10
 
10
11
  require "stormpath-sdk/version" unless defined? Stormpath::VERSION
11
12
  require "stormpath-sdk/util/assert"
@@ -22,7 +22,7 @@ module Stormpath
22
22
  ACCOUNT = "account"
23
23
 
24
24
  def get_account
25
- get_resource_property ACCOUNT, Account
25
+ get_resource_property ACCOUNT, Stormpath::Resource::Account
26
26
  end
27
27
 
28
28
  end
@@ -34,7 +34,7 @@ module Stormpath
34
34
  username = (username != nil) ? username : ''
35
35
 
36
36
  password = request.get_credentials
37
- pw_string = password.to_s
37
+ pw_string = password.join
38
38
 
39
39
  value = username + ':' + pw_string
40
40
 
@@ -295,7 +295,7 @@ module Stormpath
295
295
 
296
296
  client = build_client
297
297
 
298
- application = client.data_store.get_resource cleaned_href, Application
298
+ application = client.data_store.get_resource cleaned_href, Stormpath::Resource::Application
299
299
 
300
300
  ClientApplication.new client, application
301
301
 
@@ -319,7 +319,7 @@ module Stormpath
319
319
  parts = Array.new 3
320
320
 
321
321
  parts[0] = href[0..double_slash_index + 1] #up to and including the double slash
322
- parts[1] = href[double_slash_index + DOUBLE_SLASH.length..at_sign_index -1] #raw user info
322
+ parts[1] = href[double_slash_index + DOUBLE_SLASH.length..at_sign_index - 1] #raw user info
323
323
  parts[2] = href[at_sign_index + 1..href.length - 1] #after the @ character
324
324
 
325
325
  parts
@@ -70,7 +70,7 @@ module Stormpath
70
70
 
71
71
  def save resource, *clazz
72
72
  assert_not_nil resource, "resource argument cannot be null."
73
- assert_kind_of Resource, resource, "resource argument must be instance of Resource"
73
+ assert_kind_of Stormpath::Resource::Resource, resource, "resource argument must be instance of Stormpath::Resource::Resource"
74
74
 
75
75
  href = resource.get_href
76
76
  assert_true href.length > 0, "save may only be called on objects that have already been persisted (i.e. they have an existing href)."
@@ -93,7 +93,7 @@ module Stormpath
93
93
  def delete resource
94
94
 
95
95
  assert_not_nil resource, "resource argument cannot be null."
96
- assert_kind_of Resource, resource, "resource argument must be instance of Resource"
96
+ assert_kind_of Stormpath::Resource::Resource, resource, "resource argument must be instance of Stormpath::Resource::Resource"
97
97
 
98
98
  execute_request('delete', resource.get_href, nil)
99
99
 
@@ -148,7 +148,7 @@ module Stormpath
148
148
 
149
149
  assert_not_nil resource, "resource argument cannot be null."
150
150
  assert_not_nil return_type, "returnType class cannot be null."
151
- assert_kind_of Resource, resource, "resource argument must be instance of Resource"
151
+ assert_kind_of Stormpath::Resource::Resource, resource, "resource argument must be instance of Stormpath::Resource::Resource"
152
152
 
153
153
  q_href = href
154
154
 
@@ -37,6 +37,7 @@ module Stormpath
37
37
  SAUTHC1_SIGNATURE = "sauthc1Signature"
38
38
  DATE_FORMAT = "%Y%m%d"
39
39
  TIMESTAMP_FORMAT = "%Y%m%dT%H%M%SZ"
40
+ #noinspection RubyConstantNamingConvention
40
41
  NL = "\n"
41
42
 
42
43
  def sign_request request, api_key
@@ -109,8 +109,7 @@ module Stormpath
109
109
 
110
110
  def add_group group
111
111
 
112
- group_membership = data_store.instantiate GroupMembership, nil
113
- group_membership.create self, group
112
+ GroupMembership::_create self, group, data_store
114
113
 
115
114
  end
116
115
 
@@ -76,8 +76,7 @@ module Stormpath
76
76
 
77
77
  def add_account account
78
78
 
79
- group_membership = data_store.instantiate GroupMembership, nil
80
- group_membership.create account, self
79
+ GroupMembership::_create account, self, data_store
81
80
 
82
81
  end
83
82
 
@@ -17,7 +17,7 @@ module Stormpath
17
17
 
18
18
  module Resource
19
19
 
20
- class GroupMembership < InstanceResource
20
+ class GroupMembership < Resource
21
21
 
22
22
  ACCOUNT = "account"
23
23
  GROUP = "group"
@@ -26,19 +26,25 @@ module Stormpath
26
26
  get_resource_property ACCOUNT, Account
27
27
  end
28
28
 
29
- def set_account account
30
- set_property ACCOUNT, account
31
- end
32
-
33
29
  def get_group
34
30
  get_resource_property GROUP, Group
35
31
  end
36
32
 
37
- def set_group group
38
- set_property GROUP, group
33
+ def delete
34
+ data_store.delete self
39
35
  end
40
36
 
41
- def create account, group
37
+ #
38
+ # THIS IS NOT PART OF THE STORMPATH PUBLIC API. SDK end-users should not call it - it could be removed or
39
+ # changed at any time. It is publicly accessible only as an implementation technique to be used by other
40
+ # resource classes.
41
+ #
42
+ # @param account the account to associate with the group.
43
+ # @param group the group which will contain the account.
44
+ # @param data_store the datastore used to create the membership
45
+ # @return the created GroupMembership instance.
46
+ #
47
+ def self._create account, group, data_store
42
48
 
43
49
  #TODO: enable auto discovery
44
50
  href = "/groupMemberships"
@@ -59,10 +65,6 @@ module Stormpath
59
65
 
60
66
  end
61
67
 
62
- def delete
63
- data_store.delete self
64
- end
65
-
66
68
  end
67
69
 
68
70
  end
@@ -49,7 +49,7 @@ module Stormpath
49
49
 
50
50
  # Don't consider this resource materialized if it is only a reference. A reference is any object that
51
51
  # has only one 'href' property.
52
- href_only = @properties.size == 1 and @properties.has_key? HREF_PROP_NAME
52
+ href_only = (@properties.size == 1 and @properties.has_key? HREF_PROP_NAME)
53
53
  @materialized = !href_only
54
54
 
55
55
  else
@@ -19,12 +19,23 @@ module Stormpath
19
19
 
20
20
  module Utils
21
21
 
22
+ include ActiveSupport::Inflector
23
+ include Stormpath::Util::Assert
24
+
25
+ @@resources_hash = Hash.new
26
+
22
27
  def to_class_from_instance resource
23
28
 
24
- if resource.kind_of? Resource
25
- clazz = Kernel.const_get resource.class.name.split('::').last
29
+ assert_kind_of Resource, resource, "resource argument must be instance of Stormpath::Resource::Resource"
30
+
31
+ if !@@resources_hash.has_key? resource.class.name
32
+
33
+ @@resources_hash[resource.class.name] = constantize resource.class.name
34
+
26
35
  end
27
- clazz
36
+
37
+ @@resources_hash[resource.class.name]
38
+
28
39
  end
29
40
  end
30
41
  end
@@ -14,6 +14,6 @@
14
14
  # limitations under the License.
15
15
  #
16
16
  module Stormpath
17
- VERSION = '0.3.0'
18
- VERSION_DATE = '2012-08-31'
17
+ VERSION = '0.4.0'
18
+ VERSION_DATE = '2012-10-26'
19
19
  end
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency('multi_json', '>= 1.3.6')
19
19
  s.add_dependency('httpclient', '>= 2.2.5')
20
20
  s.add_dependency('uuidtools', '>= 2.1.3')
21
+ s.add_dependency('activesupport', '>= 3.2.8')
21
22
 
22
23
  s.add_development_dependency 'rake', '~> 0.9.2'
23
24
  s.add_development_dependency 'rspec-core', '~> 2.10.1'
@@ -7,9 +7,9 @@ describe "Client Application Builder Tests" do
7
7
  before(:all) do
8
8
  @client_file = 'test/client/client.yml'
9
9
  @client_remote_file = 'http://localhost:8081/client.yml'
10
- @application_href = 'http://localhost:8080/v1/applications/A0atUpZARYGApaN5f88O3A'
10
+ @application_href = 'http://localhost:8080/v1/applications/uGBNDZ7TRhm_tahanqvn9A'
11
11
  @http_prefix = 'http://'
12
- @app_href_without_http = '@localhost:8080/v1/applications/A0atUpZARYGApaN5f88O3A'
12
+ @app_href_without_http = '@localhost:8080/v1/applications/uGBNDZ7TRhm_tahanqvn9A'
13
13
  @client_builder = ClientBuilder.new.set_base_url 'http://localhost:8080/v1'
14
14
  @test_remote_file = false
15
15
  end
@@ -6,8 +6,7 @@ include Stormpath::Resource
6
6
  describe "READ Operations" do
7
7
 
8
8
  before(:all) do
9
- apiKey = ApiKey.new 'myApkiKeyId', 'myApkiKeySecret'
10
- @client = Client.new apiKey
9
+ @client = ClientBuilder.new.set_base_url('http://localhost:8080/v1').set_api_key_file_location(Dir.home + '/.stormpath/apiKey.yml').build
11
10
  @tenant = @client.current_tenant
12
11
  @data_store = @client.data_store
13
12
  end
@@ -62,7 +61,7 @@ describe "READ Operations" do
62
61
 
63
62
  it "application's properties must come complete'" do
64
63
 
65
- href = 'applications/fzyWJ5V_SDORGPk4fT2jhA'
64
+ href = 'applications/uGBNDZ7TRhm_tahanqvn9A'
66
65
  application = @data_store.get_resource href, Application
67
66
 
68
67
  application.should be_kind_of Application
@@ -72,14 +71,12 @@ describe "READ Operations" do
72
71
  description = application.get_description
73
72
  tenant = application.get_tenant
74
73
  accounts = application.get_accounts
75
- password_reset_tokens = application.get_password_reset_token
76
74
 
77
75
  name.should be_kind_of String
78
76
  status.should be_kind_of String
79
77
  description.should be_kind_of String
80
78
  tenant.should be_kind_of Tenant
81
79
  accounts.should be_kind_of AccountList
82
- password_reset_tokens.should be_kind_of PasswordResetToken
83
80
 
84
81
  accounts.each { |acc|
85
82
 
@@ -97,7 +94,7 @@ describe "READ Operations" do
97
94
 
98
95
  it "directory's properties must come complete'" do
99
96
 
100
- href = 'directories/wDTY5jppTLS2uZEAcqaL5A'
97
+ href = 'directories/jDd1xnMYTdqP-L-m6UD1Vg'
101
98
  directory = @data_store.get_resource href, Directory
102
99
 
103
100
  directory.should be_kind_of Directory
@@ -143,7 +140,7 @@ describe "READ Operations" do
143
140
 
144
141
  it "group's properties must come complete'" do
145
142
 
146
- href = 'groups/mCidbrAcSF-VpkNfOVvJkQ'
143
+ href = 'groups/E_D6HFfxSFmP0wIRvvvMUA'
147
144
  group = @data_store.get_resource href, Group
148
145
 
149
146
  group.should be_kind_of Group
@@ -178,7 +175,7 @@ describe "READ Operations" do
178
175
 
179
176
  it "account's properties must come complete'" do
180
177
 
181
- href = 'accounts/ije9hUEKTZ29YcGhdG5s2A'
178
+ href = 'accounts/AnUd9aE_RKq-v8QJfrjq0A'
182
179
  account = @data_store.get_resource href, Account
183
180
 
184
181
  account.should be_kind_of Account
@@ -203,7 +200,8 @@ describe "READ Operations" do
203
200
  surname.should be_kind_of String
204
201
  groups.should be_kind_of GroupList
205
202
  directory.should be_kind_of Directory
206
- email_verification_token.should be_kind_of EmailVerificationToken
203
+ # email_verification_token may not be present
204
+ #email_verification_token.should be_kind_of EmailVerificationToken
207
205
  group_memberships.should be_kind_of GroupMembershipList
208
206
 
209
207
  groups.each { |group|
@@ -239,7 +237,7 @@ describe "READ Operations" do
239
237
 
240
238
  it "dirty properties must be retained after materialization" do
241
239
 
242
- account = @data_store.instantiate Account, {'href' => 'accounts/gJH4bh6QQKK0awRmwD72Cg'}
240
+ account = @data_store.instantiate Account, {'href' => 'accounts/AnUd9aE_RKq-v8QJfrjq0A'}
243
241
 
244
242
  name = 'Name Before Materialization'
245
243
 
@@ -1,12 +1,13 @@
1
1
  require "stormpath-sdk"
2
2
 
3
+ include Stormpath::Client
4
+ include Stormpath::Resource
3
5
  include Stormpath::Authentication
4
6
 
5
7
  describe "WRITE Operations" do
6
8
 
7
9
  before(:all) do
8
- apiKey = ApiKey.new 'myApkiKeyId', 'myApkiKeySecret'
9
- @client = Client.new apiKey
10
+ @client = ClientBuilder.new.set_base_url('http://localhost:8080/v1').set_api_key_file_location(Dir.home + '/.stormpath/apiKey.yml').build
10
11
  @data_store = @client.data_store
11
12
  @create_account = false
12
13
  @update_account = false
@@ -27,7 +28,7 @@ describe "WRITE Operations" do
27
28
 
28
29
  it "application should be able to authenticate" do
29
30
 
30
- href = 'applications/A0atUpZARYGApaN5f88O3A'
31
+ href = 'applications/uGBNDZ7TRhm_tahanqvn9A'
31
32
  application = @data_store.get_resource href, Application
32
33
 
33
34
  result = application.authenticate_account UsernamePasswordRequest.new 'kentucky', 'super_P4ss'
@@ -41,7 +42,7 @@ describe "WRITE Operations" do
41
42
 
42
43
  begin
43
44
 
44
- href = 'applications/A0atUpZARYGApaN5f88O3A'
45
+ href = 'applications/uGBNDZ7TRhm_tahanqvn9A'
45
46
  application = @data_store.get_resource href, Application
46
47
  result = application.authenticate_account UsernamePasswordRequest.new 'kentucky', 'WRONG_PASS'
47
48
 
@@ -61,7 +62,7 @@ describe "WRITE Operations" do
61
62
 
62
63
  if (@create_account)
63
64
 
64
- href = 'directories/_oIg8zU5QWyiz22DcVYVLg'
65
+ href = 'directories/jDd1xnMYTdqP-L-m6UD1Vg'
65
66
  directory = @data_store.get_resource href, Directory
66
67
 
67
68
  account = @data_store.instantiate Account
@@ -83,7 +84,7 @@ describe "WRITE Operations" do
83
84
 
84
85
  if (@update_account)
85
86
 
86
- href = 'accounts/ije9hUEKTZ29YcGhdG5s2A'
87
+ href = 'accounts/RpB0hBFVSTmoLZTqHlwBRg'
87
88
  account = @data_store.get_resource href, Account
88
89
 
89
90
  mod_value = 'Modified at: ' + Time.now.to_s
@@ -214,7 +215,7 @@ describe "WRITE Operations" do
214
215
 
215
216
  if (@send_password_reset_email)
216
217
 
217
- href = 'applications/fzyWJ5V_SDORGPk4fT2jhA'
218
+ href = 'applications/uGBNDZ7TRhm_tahanqvn9A'
218
219
  application = @data_store.get_resource href, Application
219
220
 
220
221
  result = application.send_password_reset_email 'rubysdk@email.com'
@@ -318,10 +319,10 @@ describe "WRITE Operations" do
318
319
 
319
320
  if (@create_group_membership_from_account)
320
321
 
321
- group_href = 'groups/mCidbrAcSF-VpkNfOVvJkQ'
322
+ group_href = 'groups/0I5wmUILTvqHraXLERE9fw'
322
323
  group = @data_store.get_resource group_href, Group
323
324
 
324
- account_href = 'accounts/ije9hUEKTZ29YcGhdG5s2A'
325
+ account_href = 'accounts/RpB0hBFVSTmoLZTqHlwBRg'
325
326
  account = @data_store.get_resource account_href, Account
326
327
 
327
328
  account.add_group group
@@ -348,10 +349,10 @@ describe "WRITE Operations" do
348
349
 
349
350
  if (@create_group_membership_from_group)
350
351
 
351
- group_href = 'groups/mCidbrAcSF-VpkNfOVvJkQ'
352
+ group_href = 'groups/E_D6HFfxSFmP0wIRvvvMUA'
352
353
  group = @data_store.get_resource group_href, Group
353
354
 
354
- account_href = 'accounts/ije9hUEKTZ29YcGhdG5s2A'
355
+ account_href = 'accounts/RpB0hBFVSTmoLZTqHlwBRg'
355
356
  account = @data_store.get_resource account_href, Account
356
357
 
357
358
  group.add_account account
@@ -375,13 +376,12 @@ describe "WRITE Operations" do
375
376
 
376
377
  if (@update_group_membership_with_deletion)
377
378
 
378
- group_href = 'groups/mCidbrAcSF-VpkNfOVvJkQ'
379
+ group_href = 'groups/0I5wmUILTvqHraXLERE9fw'
379
380
  group = @data_store.get_resource group_href, Group
380
381
 
381
- account_href = 'accounts/ije9hUEKTZ29YcGhdG5s2A'
382
+ account_href = 'accounts/RpB0hBFVSTmoLZTqHlwBRg'
382
383
  account = @data_store.get_resource account_href, Account
383
384
 
384
- group_linked = false
385
385
  group_membership = nil
386
386
  account.get_group_memberships.each { |tmp_group_membership|
387
387
 
@@ -389,16 +389,18 @@ describe "WRITE Operations" do
389
389
  tmp_group = group_membership.get_group
390
390
 
391
391
  if (!tmp_group.nil? and tmp_group.get_href.include? group_href)
392
- group_linked = true
393
392
  break
394
393
  end
395
394
  }
396
395
 
397
- if (!group_linked)
398
- group_membership.delete
399
- group.add_account account
396
+ if (group_membership.nil?)
397
+ group_membership = account.add_group group
400
398
  end
401
399
 
400
+ group_membership.delete
401
+ group.add_account account
402
+
403
+
402
404
  account.get_group_memberships.each { |tmp_group_membership|
403
405
 
404
406
  tmp_group = tmp_group_membership.get_group
metadata CHANGED
@@ -1,143 +1,166 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stormpath-sdk
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 3
8
- - 0
9
- version: 0.3.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Elder Crisostomo
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-08-31 00:00:00 -07:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-10-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: multi_json
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 3
30
- - 6
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
31
21
  version: 1.3.6
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: httpclient
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 2
43
- - 2
44
- - 5
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.3.6
30
+ - !ruby/object:Gem::Dependency
31
+ name: httpclient
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
45
37
  version: 2.2.5
46
38
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.2.5
46
+ - !ruby/object:Gem::Dependency
49
47
  name: uuidtools
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.3
54
+ type: :runtime
50
55
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 2
57
- - 1
58
- - 3
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
59
61
  version: 2.1.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: activesupport
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 3.2.8
60
70
  type: :runtime
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: rake
64
71
  prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- requirements:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 3.2.8
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
67
83
  - - ~>
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- - 9
72
- - 2
84
+ - !ruby/object:Gem::Version
73
85
  version: 0.9.2
74
86
  type: :development
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
77
- name: rspec-core
78
87
  prerelease: false
79
- requirement: &id005 !ruby/object:Gem::Requirement
80
- requirements:
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.9.2
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec-core
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
81
99
  - - ~>
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 2
85
- - 10
86
- - 1
100
+ - !ruby/object:Gem::Version
87
101
  version: 2.10.1
88
102
  type: :development
89
- version_requirements: *id005
90
- - !ruby/object:Gem::Dependency
91
- name: rspec-expectations
92
103
  prerelease: false
93
- requirement: &id006 !ruby/object:Gem::Requirement
94
- requirements:
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 2.10.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec-expectations
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
95
115
  - - ~>
96
- - !ruby/object:Gem::Version
97
- segments:
98
- - 2
99
- - 10
100
- - 0
116
+ - !ruby/object:Gem::Version
101
117
  version: 2.10.0
102
118
  type: :development
103
- version_requirements: *id006
104
- - !ruby/object:Gem::Dependency
105
- name: rspec-mocks
106
119
  prerelease: false
107
- requirement: &id007 !ruby/object:Gem::Requirement
108
- requirements:
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 2.10.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec-mocks
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
109
131
  - - ~>
110
- - !ruby/object:Gem::Version
111
- segments:
112
- - 2
113
- - 10
114
- - 1
132
+ - !ruby/object:Gem::Version
115
133
  version: 2.10.1
116
134
  type: :development
117
- version_requirements: *id007
118
- - !ruby/object:Gem::Dependency
119
- name: rack
120
135
  prerelease: false
121
- requirement: &id008 !ruby/object:Gem::Requirement
122
- requirements:
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 2.10.1
142
+ - !ruby/object:Gem::Dependency
143
+ name: rack
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
123
147
  - - ~>
124
- - !ruby/object:Gem::Version
125
- segments:
126
- - 1
127
- - 4
128
- - 1
148
+ - !ruby/object:Gem::Version
129
149
  version: 1.4.1
130
150
  type: :development
131
- version_requirements: *id008
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 1.4.1
132
158
  description: Stormpath SDK used to interact with the Stormpath REST API
133
159
  email: elder@stormpath.com
134
160
  executables: []
135
-
136
161
  extensions: []
137
-
138
162
  extra_rdoc_files: []
139
-
140
- files:
163
+ files:
141
164
  - .gitignore
142
165
  - CHANGES.md
143
166
  - Gemfile
@@ -191,41 +214,36 @@ files:
191
214
  - test/client/write_spec.rb
192
215
  - test/resource/resource_spec.rb
193
216
  - test/resource/test_resource.rb
194
- has_rdoc: true
195
217
  homepage: https://github.com/stormpath/stormpath-sdk-ruby
196
218
  licenses: []
197
-
198
219
  post_install_message:
199
- rdoc_options:
220
+ rdoc_options:
200
221
  - --line-numbers
201
222
  - --inline-source
202
223
  - --title
203
224
  - stormpath-sdk
204
225
  - --main
205
- require_paths:
226
+ require_paths:
206
227
  - lib
207
- required_ruby_version: !ruby/object:Gem::Requirement
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- segments:
212
- - 0
213
- version: "0"
214
- required_rubygems_version: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - ">="
217
- - !ruby/object:Gem::Version
218
- segments:
219
- - 0
220
- version: "0"
228
+ required_ruby_version: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
221
240
  requirements: []
222
-
223
241
  rubyforge_project:
224
- rubygems_version: 1.3.6
242
+ rubygems_version: 1.8.24
225
243
  signing_key:
226
244
  specification_version: 3
227
245
  summary: Stormpath SDK
228
- test_files:
246
+ test_files:
229
247
  - test/client/client_application_builder_spec.rb
230
248
  - test/client/client_builder_spec.rb
231
249
  - test/client/read_spec.rb