restpack_web 0.2.21 → 0.4.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.
@@ -1,5 +1,5 @@
1
1
  module RestPack
2
2
  module Web
3
- VERSION = "0.2.21"
3
+ VERSION = "0.4.1"
4
4
  end
5
- end
5
+ end
@@ -1,32 +1,31 @@
1
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'restpack_web/version'
5
5
 
6
- Gem::Specification.new do |gem|
7
- gem.name = "restpack_web"
8
- gem.version = RestPack::Web::VERSION
9
- gem.authors = ["Gavin Joyce"]
10
- gem.email = ["gavinjoyce@gmail.com"]
11
- gem.description = %q{Run a web application on RestPack}
12
- gem.summary = %q{Run a web application on RestPack}
13
- gem.homepage = "https://github.com/RestPack"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "restpack_web"
8
+ spec.version = RestPack::Web::VERSION
9
+ spec.authors = ["Gavin Joyce"]
10
+ spec.email = ["gavinjoyce@gmail.com"]
11
+ spec.description = %q{Rack middleware for your RestPack web apps}
12
+ spec.summary = %q{Rack middleware}
13
+ spec.homepage = "http://restpack.org/"
14
+ spec.license = "MIT"
14
15
 
15
- gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
19
20
 
20
- gem.add_dependency 'rack-auto-session-domain', '~> 0.1.1'
21
- gem.add_dependency 'restpack_core_client', '~> 0.2.6'
22
- gem.add_dependency 'public_suffix', '~> 1.3.0'
23
- gem.add_dependency 'yajl-ruby', '~> 1.1.0'
21
+ spec.add_dependency "restpack_gem"
22
+ spec.add_dependency "restpack_core_service"
23
+ spec.add_dependency "restpack_user_service"
24
+ spec.add_dependency "restpack_account_service"
25
+ spec.add_dependency "restpack_group_service"
24
26
 
25
- gem.add_development_dependency 'rake'
26
- gem.add_development_dependency 'rack'
27
- gem.add_development_dependency 'bump', '~> 0.4'
28
- gem.add_development_dependency 'minitest', '~> 4.7'
29
- gem.add_development_dependency 'rack-test', '~> 0.6'
30
- gem.add_development_dependency 'webmock', '~> 1.11'
31
- gem.add_development_dependency 'rest-client'
27
+ spec.add_development_dependency "bundler", "~> 1.3"
28
+ spec.add_development_dependency "rake"
29
+ spec.add_development_dependency "rspec"
30
+ spec.add_development_dependency "bump"
32
31
  end
metadata CHANGED
@@ -1,170 +1,142 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restpack_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.21
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Joyce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-02 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rack-auto-session-domain
14
+ name: restpack_gem
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.1
27
- - !ruby/object:Gem::Dependency
28
- name: restpack_core_client
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 0.2.6
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: 0.2.6
26
+ version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: public_suffix
28
+ name: restpack_core_service
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - ~>
31
+ - - '>='
46
32
  - !ruby/object:Gem::Version
47
- version: 1.3.0
33
+ version: '0'
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - ~>
38
+ - - '>='
53
39
  - !ruby/object:Gem::Version
54
- version: 1.3.0
40
+ version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: yajl-ruby
42
+ name: restpack_user_service
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ~>
45
+ - - '>='
60
46
  - !ruby/object:Gem::Version
61
- version: 1.1.0
47
+ version: '0'
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ~>
52
+ - - '>='
67
53
  - !ruby/object:Gem::Version
68
- version: 1.1.0
54
+ version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: rake
56
+ name: restpack_account_service
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ! '>='
59
+ - - '>='
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0'
76
- type: :development
62
+ type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ! '>='
66
+ - - '>='
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: rack
70
+ name: restpack_group_service
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ! '>='
73
+ - - '>='
88
74
  - !ruby/object:Gem::Version
89
75
  version: '0'
90
- type: :development
76
+ type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ! '>='
80
+ - - '>='
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: bump
84
+ name: bundler
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ~>
102
88
  - !ruby/object:Gem::Version
103
- version: '0.4'
89
+ version: '1.3'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - ~>
109
95
  - !ruby/object:Gem::Version
110
- version: '0.4'
96
+ version: '1.3'
111
97
  - !ruby/object:Gem::Dependency
112
- name: minitest
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
117
- version: '4.7'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- version: '4.7'
125
- - !ruby/object:Gem::Dependency
126
- name: rack-test
98
+ name: rake
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
- - - ~>
101
+ - - '>='
130
102
  - !ruby/object:Gem::Version
131
- version: '0.6'
103
+ version: '0'
132
104
  type: :development
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
- - - ~>
108
+ - - '>='
137
109
  - !ruby/object:Gem::Version
138
- version: '0.6'
110
+ version: '0'
139
111
  - !ruby/object:Gem::Dependency
140
- name: webmock
112
+ name: rspec
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
- - - ~>
115
+ - - '>='
144
116
  - !ruby/object:Gem::Version
145
- version: '1.11'
117
+ version: '0'
146
118
  type: :development
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
- - - ~>
122
+ - - '>='
151
123
  - !ruby/object:Gem::Version
152
- version: '1.11'
124
+ version: '0'
153
125
  - !ruby/object:Gem::Dependency
154
- name: rest-client
126
+ name: bump
155
127
  requirement: !ruby/object:Gem::Requirement
156
128
  requirements:
157
- - - ! '>='
129
+ - - '>='
158
130
  - !ruby/object:Gem::Version
159
131
  version: '0'
160
132
  type: :development
161
133
  prerelease: false
162
134
  version_requirements: !ruby/object:Gem::Requirement
163
135
  requirements:
164
- - - ! '>='
136
+ - - '>='
165
137
  - !ruby/object:Gem::Version
166
138
  version: '0'
167
- description: Run a web application on RestPack
139
+ description: Rack middleware for your RestPack web apps
168
140
  email:
169
141
  - gavinjoyce@gmail.com
170
142
  executables: []
@@ -173,26 +145,22 @@ extra_rdoc_files: []
173
145
  files:
174
146
  - .gitignore
175
147
  - Gemfile
176
- - LICENSE
148
+ - LICENSE.txt
177
149
  - README.md
178
150
  - Rakefile
179
151
  - lib/restpack_web.rb
180
- - lib/restpack_web/app.rb
152
+ - lib/restpack_web/configuration.rb
181
153
  - lib/restpack_web/context.rb
154
+ - lib/restpack_web/rack/domain.rb
155
+ - lib/restpack_web/rack/session.rb
156
+ - lib/restpack_web/rack/user.rb
182
157
  - lib/restpack_web/rails/controller.rb
183
158
  - lib/restpack_web/sinatra/app.rb
184
- - lib/restpack_web/test_support.rb
185
159
  - lib/restpack_web/version.rb
186
160
  - restpack_web.gemspec
187
- - spec/fixtures/channels.json
188
- - spec/fixtures/configurations_root.json
189
- - spec/fixtures/domains_search.json
190
- - spec/fixtures/users.json
191
- - spec/lib/restpack_web_spec.rb
192
- - spec/lib/test_support_spec.rb
193
- - spec/spec_helper.rb
194
- homepage: https://github.com/RestPack
195
- licenses: []
161
+ homepage: http://restpack.org/
162
+ licenses:
163
+ - MIT
196
164
  metadata: {}
197
165
  post_install_message:
198
166
  rdoc_options: []
@@ -200,25 +168,18 @@ require_paths:
200
168
  - lib
201
169
  required_ruby_version: !ruby/object:Gem::Requirement
202
170
  requirements:
203
- - - ! '>='
171
+ - - '>='
204
172
  - !ruby/object:Gem::Version
205
173
  version: '0'
206
174
  required_rubygems_version: !ruby/object:Gem::Requirement
207
175
  requirements:
208
- - - ! '>='
176
+ - - '>='
209
177
  - !ruby/object:Gem::Version
210
178
  version: '0'
211
179
  requirements: []
212
180
  rubyforge_project:
213
- rubygems_version: 2.0.3
181
+ rubygems_version: 2.0.7
214
182
  signing_key:
215
183
  specification_version: 4
216
- summary: Run a web application on RestPack
217
- test_files:
218
- - spec/fixtures/channels.json
219
- - spec/fixtures/configurations_root.json
220
- - spec/fixtures/domains_search.json
221
- - spec/fixtures/users.json
222
- - spec/lib/restpack_web_spec.rb
223
- - spec/lib/test_support_spec.rb
224
- - spec/spec_helper.rb
184
+ summary: Rack middleware
185
+ test_files: []
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
- -----------
3
-
4
- Copyright (c) 2013 Gavin Joyce and RestPack contributors
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy of
7
- this software and associated documentation files (the "Software"), to deal in
8
- the Software without restriction, including without limitation the rights to
9
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10
- of the Software, and to permit persons to whom the Software is furnished to do
11
- so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
@@ -1,55 +0,0 @@
1
- require 'restpack_core_client'
2
-
3
- module RestPack
4
- module Web
5
- class App
6
- def initialize(app, options = {})
7
- @app = app
8
-
9
- options[:core_domain] ||= ENV['RESTPACK_CORE_SERVICE']
10
- options[:access_key] ||= ENV['RESTPACK_ACCESS_KEY']
11
-
12
- raise "missing RestPack configuration" unless options[:core_domain] || options[:access_key]
13
-
14
- @core_cache = RestPack::Core::Client::Cache.create(options[:core_domain], options[:access_key])
15
- end
16
-
17
- def call(env)
18
- env[:restpack] ||= {}
19
-
20
- request = Rack::Request.new(env)
21
-
22
- domain = @core_cache.get_domain(request.host)
23
-
24
- env[:restpack][:request] = request
25
- env[:restpack][:host] = request.host
26
- env[:restpack][:channel] = domain.channel
27
- env[:restpack][:application] = domain.application
28
- env[:restpack][:domain] = domain
29
- env[:restpack][:configurations] = @core_cache.configurations
30
-
31
- add_user env
32
-
33
- @app.call(env)
34
- end
35
-
36
- private
37
-
38
- def add_user(env)
39
- return unless env['rack.session']
40
-
41
- user_id = env['rack.session'][:user_id]
42
-
43
- if user_id
44
- context = RestPack::Web::Context.new(env)
45
-
46
- user_service_domain = context.get_service_domain('restpack-user-service')
47
- json = RestClient.get("http://:#{ENV['RESTPACK_ACCESS_KEY']}@#{user_service_domain}/api/v1/users/#{user_id}.json")
48
- env[:restpack][:user] = Yajl::Parser.parse(json, :symbolize_keys => true)[:user]
49
- end
50
-
51
- env[:restpack][:user_id] = user_id
52
- end
53
- end
54
- end
55
- end
@@ -1,26 +0,0 @@
1
- require 'webmock'
2
- include WebMock::API
3
-
4
- module Rack
5
- module Test
6
- DEFAULT_HOST = 'sinatra.restpack-sample.org'
7
- end
8
- end
9
-
10
- module RestPack
11
- module Web
12
- class TestSupport
13
- def self.stub_restpack_web
14
- host = "http://:#{ENV['RESTPACK_ACCESS_KEY']}@#{ENV['RESTPACK_CORE_SERVICE']}/api/v1"
15
- stub_request(:get, "#{host}/configurations/root.json").to_return(:body => read_fixture('configurations_root'))
16
- stub_request(:get, "#{host}/domains/search.json?host=sinatra.restpack-sample.org").to_return(:body => read_fixture('domains_search'))
17
- stub_request(:get, "#{host}/channels/1.json").to_return(:body => read_fixture('channels'))
18
- end
19
-
20
- def self.read_fixture(name)
21
- file = File.open("#{File.expand_path('../../../spec/fixtures', __FILE__)}/#{name}.json")
22
- file.read
23
- end
24
- end
25
- end
26
- end