usergrid_iron 0.0.1
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/.gitignore +18 -0
- data/.rspec +1 -0
- data/.rvmrc +2 -0
- data/Gemfile +4 -0
- data/LICENSE +13 -0
- data/README.md +133 -0
- data/Rakefile +7 -0
- data/bin/autospec +16 -0
- data/bin/htmldiff +16 -0
- data/bin/ldiff +16 -0
- data/bin/restclient +16 -0
- data/bin/rspec +16 -0
- data/lib/usergrid.rb +27 -0
- data/lib/usergrid/core/application.rb +70 -0
- data/lib/usergrid/core/collection.rb +71 -0
- data/lib/usergrid/core/entity.rb +59 -0
- data/lib/usergrid/core/management.rb +37 -0
- data/lib/usergrid/core/organization.rb +51 -0
- data/lib/usergrid/core/resource.rb +117 -0
- data/lib/usergrid/extensions/hash.rb +27 -0
- data/lib/usergrid/extensions/response.rb +64 -0
- data/lib/usergrid/version.rb +3 -0
- data/spec/spec_helper.rb +77 -0
- data/spec/spec_settings.yaml +12 -0
- data/spec/usergrid/core/application_spec.rb +271 -0
- data/spec/usergrid/core/collection_spec.rb +65 -0
- data/spec/usergrid/core/entity_spec.rb +45 -0
- data/spec/usergrid/core/management_spec.rb +36 -0
- data/spec/usergrid/core/organization_spec.rb +72 -0
- data/spec/usergrid/core/resource_spec.rb +47 -0
- data/spec/usergrid/extensions/hash_spec.rb +25 -0
- data/usergrid_iron.gemspec +25 -0
- metadata +178 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
describe Usergrid::Resource do
|
2
|
+
|
3
|
+
before :all do
|
4
|
+
@resource = Usergrid::Resource.new SPEC_SETTINGS[:api_url]
|
5
|
+
end
|
6
|
+
|
7
|
+
it "should succeed on status check" do
|
8
|
+
response = @resource['/status'].get
|
9
|
+
|
10
|
+
response.code.should eq 200
|
11
|
+
response.data.should be_a Hash
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should fail with a 400 when no auth given" do
|
15
|
+
expect { @resource['management'].get }.to raise_error(RestClient::BadRequest) { |exception|
|
16
|
+
exception.response.code.should eq 400
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should fail with a 401 when lacking auth" do
|
21
|
+
expect { @resource[app_endpoint].get }.to raise_error(RestClient::Unauthorized) { |exception|
|
22
|
+
exception.response.code.should eq 401
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should be able to login" do
|
27
|
+
resource = @resource['management']
|
28
|
+
response = resource.login SPEC_SETTINGS[:management][:username], SPEC_SETTINGS[:management][:password]
|
29
|
+
|
30
|
+
response.code.should eq 200
|
31
|
+
resource.auth_token.should_not be_nil
|
32
|
+
response.data['access_token'].should eq resource.auth_token
|
33
|
+
resource.options[:headers][:Authorization].should eq "Bearer #{resource.auth_token}"
|
34
|
+
resource.logged_in?.should be_true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should be able to log out" do
|
38
|
+
resource = @resource['management']
|
39
|
+
resource.login SPEC_SETTINGS[:management][:username], SPEC_SETTINGS[:management][:password]
|
40
|
+
resource.logged_in?.should be_true
|
41
|
+
|
42
|
+
resource.logout
|
43
|
+
resource.options[:headers][:Authorization].should be_nil
|
44
|
+
resource.logged_in?.should be_false
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative '../../../lib/usergrid/extensions/hash'
|
2
|
+
|
3
|
+
describe Hash do
|
4
|
+
|
5
|
+
it "should add dot notation recursively" do
|
6
|
+
h = { test1: 'test1', test2: { test2a: 'test2a' }, test3: [ { test3a: 'test3a' }] }
|
7
|
+
expect { h.test1 }.should raise_error
|
8
|
+
h.add_dot_notation!
|
9
|
+
h.test1.should eq 'test1'
|
10
|
+
h.test2.test2a.should eq 'test2a'
|
11
|
+
h.test3.first.test3a.should eq 'test3a'
|
12
|
+
h.test1 = 'testx'
|
13
|
+
h.test1.should eq 'testx'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should symbolize keys at top level" do
|
17
|
+
h = { 'test1' => 'test1', 'test2' => { 'test2a' => 'test2a' }, 'test3' => [ { 'test3a' => 'test3a' }] }
|
18
|
+
h['test1'].should eq 'test1'
|
19
|
+
h = h.symbolize_keys
|
20
|
+
h['test1'].should be_nil
|
21
|
+
h[:test1].should eq 'test1'
|
22
|
+
h[:test2][:test2a].should be_nil
|
23
|
+
h[:test3].first['test3a'].should eq 'test3a'
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/usergrid/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Scott Ganyo"]
|
6
|
+
gem.email = ["sganyo@apigee.com"]
|
7
|
+
gem.description = %q{Low-level gem to access Usergrid / Apigee App Services}
|
8
|
+
gem.summary = %q{Usergrid_iron enables simple, low-level Ruby access to Apigee's App Services
|
9
|
+
(aka Usergrid) REST API with minimal dependencies.}
|
10
|
+
gem.homepage = "https://github.com/scottganyo/usergrid_iron"
|
11
|
+
|
12
|
+
gem.files = `/usr/local/git/bin/git ls-files`.split($\)
|
13
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
+
gem.test_files = gem.files.grep(%r{^(spec|spec|features)/})
|
15
|
+
gem.name = "usergrid_iron"
|
16
|
+
gem.require_paths = ["lib"]
|
17
|
+
gem.version = Usergrid::VERSION
|
18
|
+
|
19
|
+
gem.add_dependency 'rest-client'
|
20
|
+
gem.add_dependency 'json_pure'
|
21
|
+
|
22
|
+
gem.add_development_dependency 'rake'
|
23
|
+
gem.add_development_dependency 'rspec'
|
24
|
+
gem.add_development_dependency 'simplecov'
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: usergrid_iron
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Scott Ganyo
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rest-client
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: json_pure
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
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
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
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
|
+
name: simplecov
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
description: Low-level gem to access Usergrid / Apigee App Services
|
95
|
+
email:
|
96
|
+
- sganyo@apigee.com
|
97
|
+
executables:
|
98
|
+
- autospec
|
99
|
+
- htmldiff
|
100
|
+
- ldiff
|
101
|
+
- restclient
|
102
|
+
- rspec
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- .gitignore
|
107
|
+
- .rspec
|
108
|
+
- .rvmrc
|
109
|
+
- Gemfile
|
110
|
+
- LICENSE
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- bin/autospec
|
114
|
+
- bin/htmldiff
|
115
|
+
- bin/ldiff
|
116
|
+
- bin/restclient
|
117
|
+
- bin/rspec
|
118
|
+
- lib/usergrid.rb
|
119
|
+
- lib/usergrid/core/application.rb
|
120
|
+
- lib/usergrid/core/collection.rb
|
121
|
+
- lib/usergrid/core/entity.rb
|
122
|
+
- lib/usergrid/core/management.rb
|
123
|
+
- lib/usergrid/core/organization.rb
|
124
|
+
- lib/usergrid/core/resource.rb
|
125
|
+
- lib/usergrid/extensions/hash.rb
|
126
|
+
- lib/usergrid/extensions/response.rb
|
127
|
+
- lib/usergrid/version.rb
|
128
|
+
- spec/spec_helper.rb
|
129
|
+
- spec/spec_settings.yaml
|
130
|
+
- spec/usergrid/core/application_spec.rb
|
131
|
+
- spec/usergrid/core/collection_spec.rb
|
132
|
+
- spec/usergrid/core/entity_spec.rb
|
133
|
+
- spec/usergrid/core/management_spec.rb
|
134
|
+
- spec/usergrid/core/organization_spec.rb
|
135
|
+
- spec/usergrid/core/resource_spec.rb
|
136
|
+
- spec/usergrid/extensions/hash_spec.rb
|
137
|
+
- usergrid_iron.gemspec
|
138
|
+
homepage: https://github.com/scottganyo/usergrid_iron
|
139
|
+
licenses: []
|
140
|
+
post_install_message:
|
141
|
+
rdoc_options: []
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
hash: -1597899148183039050
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
hash: -1597899148183039050
|
162
|
+
requirements: []
|
163
|
+
rubyforge_project:
|
164
|
+
rubygems_version: 1.8.24
|
165
|
+
signing_key:
|
166
|
+
specification_version: 3
|
167
|
+
summary: Usergrid_iron enables simple, low-level Ruby access to Apigee's App Services
|
168
|
+
(aka Usergrid) REST API with minimal dependencies.
|
169
|
+
test_files:
|
170
|
+
- spec/spec_helper.rb
|
171
|
+
- spec/spec_settings.yaml
|
172
|
+
- spec/usergrid/core/application_spec.rb
|
173
|
+
- spec/usergrid/core/collection_spec.rb
|
174
|
+
- spec/usergrid/core/entity_spec.rb
|
175
|
+
- spec/usergrid/core/management_spec.rb
|
176
|
+
- spec/usergrid/core/organization_spec.rb
|
177
|
+
- spec/usergrid/core/resource_spec.rb
|
178
|
+
- spec/usergrid/extensions/hash_spec.rb
|