rocketio 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 058d969c6b3f050392f25ce9be512029b10cf7cf
4
- data.tar.gz: fe12296fa46e09d621044bc15a926099daf0f85d
3
+ metadata.gz: e9540db8ccba375983a890602be457287f31f7e2
4
+ data.tar.gz: aeeba39bb33341e1c015c099040793df15e1b396
5
5
  SHA512:
6
- metadata.gz: 57ff44d810bc535f35cacc5fd09983e9fda1c2902296e14744ec56e7c59a80fa2229c3302ce2a27a0a24fc6a613a4063cc25510c70e124a77fa9286315d70acb
7
- data.tar.gz: 98a60d1d19ef24fa204796f607eefb9dea785a11af451ad5bceb6b60027709869f30a79d2402bee2e4521a02b27216340b3b99bf33b56a62c55c67e38881492e
6
+ metadata.gz: 135b3a8e35301383adf5b21ae1a3a80aa0639feb1d44d5cd96e82c4c4da453844890cffe4517aceb2b5642d664d9893bd8889c10d7d05a58026a4e7220c1544b
7
+ data.tar.gz: b526fcf90b86d59f0e1a3cf6cd847c1d752919ef4e27a6c9b4e85a741b06795e1a3b7ed2554dfbfe300d3e5b3014390e224840939008a00b2ebf155d37c31873
@@ -56,6 +56,7 @@ module RocketIO
56
56
  }
57
57
  invoke_after_filter
58
58
  }
59
+
59
60
  response.body ||= RocketIO::EMPTY_ARRAY
60
61
  response.body = [] if head? # dropping body on HEAD requests
61
62
  response.finish
@@ -122,32 +123,53 @@ module RocketIO
122
123
 
123
124
  class << Controller
124
125
 
125
- def inherit setup, opts = {}
126
- opts[:from] || raise(ArgumentError, ':from option is required')
127
- __send__(:"define_#{setup}_methods", opts[:from])
126
+ # only public non-inherited methods are included in public API directly.
127
+ def api
128
+ return [] if self == RocketIO::Controller
129
+ public_instance_methods(false).concat(inherited_api) - private_api
130
+ end
131
+
132
+ # inherited methods are excluded from public API
133
+ # but we still need a way to know what API methods was inherited
134
+ def inherited_api
135
+ @__inherited_api__
136
+ end
137
+
138
+ # used internally to keep a list of public methods
139
+ # that should be excluded from public API
140
+ def private_api
141
+ @__private_api__
142
+ end
143
+
144
+ # import some config from some controller
145
+ def import setup, from:
146
+ __send__(:"define_#{setup}_methods", from)
128
147
  end
129
148
 
130
149
  def inherited base
131
150
  # registering new controller
132
151
  RocketIO.controllers.push(base)
133
152
 
153
+ base.instance_variable_set(:@__private_api__, self.private_api.uniq)
154
+ base.instance_variable_set(:@__inherited_api__, self.api.freeze)
155
+
134
156
  # new controller inherits all setups from superclass
135
- base.inherit :before, from: self
136
- base.inherit :around, from: self
137
- base.inherit :after, from: self
157
+ base.import :before, from: self
158
+ base.import :around, from: self
159
+ base.import :after, from: self
138
160
 
139
- base.inherit :basic_auth, from: self
140
- base.inherit :digest_auth, from: self
141
- base.inherit :token_auth, from: self
161
+ base.import :basic_auth, from: self
162
+ base.import :digest_auth, from: self
163
+ base.import :token_auth, from: self
142
164
 
143
- base.inherit :error_handlers, from: self
144
- base.inherit :middleware, from: self
145
- base.inherit :sessions, from: self
165
+ base.import :error_handlers, from: self
166
+ base.import :middleware, from: self
167
+ base.import :sessions, from: self
146
168
 
147
- base.inherit :engine, from: self
148
- base.inherit :layout, from: self
149
- base.inherit :layouts, from: self
150
- base.inherit :templates, from: self
169
+ base.import :engine, from: self
170
+ base.import :layout, from: self
171
+ base.import :layouts, from: self
172
+ base.import :templates, from: self
151
173
 
152
174
  # removing superclass name from new controller name
153
175
  path = RocketIO.underscore(base.name.to_s.sub(self.name.to_s + '::', '').gsub('::', '/'))
@@ -279,11 +301,9 @@ module RocketIO
279
301
  def call env
280
302
  initialize_controller.call(env)
281
303
  end
282
-
283
- def api
284
- public_instance_methods(false)
285
- end
286
304
  end
305
+
306
+ Controller.instance_variable_set(:@__private_api__, [])
287
307
  end
288
308
 
289
309
  require 'rocketio/controller/authentication'
@@ -46,11 +46,11 @@ module RocketIO
46
46
  def self.define_basic_auth_methods source = self
47
47
  prompts = (source.instance_variable_get(:@__basic_auth__) || {}).each_with_object(allocate.basic_auth.dup) do |(rm,p),o|
48
48
  method = :"__basic_auth__#{rm}__"
49
- define_method(method, &p[:block])
49
+ private_api << define_method(method, &p[:block])
50
50
  o[rm] = p.merge(method: method).freeze
51
51
  end.freeze
52
52
  return if prompts.empty?
53
- define_method(:basic_auth) {prompts}
53
+ private_api << define_method(:basic_auth) {prompts}
54
54
  end
55
55
 
56
56
  def basic_auth; RocketIO::EMPTY_HASH end
@@ -109,18 +109,16 @@ module RocketIO
109
109
  def self.define_digest_auth_methods source = self
110
110
  prompts = (source.instance_variable_get(:@__digest_auth__) || {}).each_with_object(allocate.digest_auth.dup) do |(rm,p),o|
111
111
  method = :"__digest_auth__#{rm}__"
112
- define_method(method, &p[:block])
112
+ private_api << define_method(method, &p[:block])
113
113
  o[rm] = p.merge(method: method).freeze
114
114
  end.freeze
115
115
  return if prompts.empty?
116
- define_method(:digest_auth) {prompts}
116
+ private_api << define_method(:digest_auth) {prompts}
117
117
  end
118
118
 
119
119
  def digest_auth; RocketIO::EMPTY_HASH end
120
120
 
121
- def user?
122
- env[RocketIO::REMOTE_USER]
123
- end
121
+ def user?; env[RocketIO::REMOTE_USER] end
124
122
 
125
123
  # checks whether authentication is required and
126
124
  # send an authorization request if credentials not present or invalid
@@ -25,7 +25,7 @@ module RocketIO
25
25
  def self.define_token_auth_methods source = self
26
26
  prompts = allocate.token_auth.merge(source.instance_variable_get(:@__token_auth__) || {}).freeze
27
27
  return if prompts.empty?
28
- define_method(:token_auth) {prompts}
28
+ private_api << define_method(:token_auth) {prompts}
29
29
  end
30
30
 
31
31
  def token_auth; RocketIO::EMPTY_HASH end
@@ -43,11 +43,9 @@ module RocketIO
43
43
  def validate_token_auth &block
44
44
  RocketIO::TokenAuth.authenticate(env, &block)
45
45
  end
46
- alias valid_token_auth? validate_token_auth
47
46
 
48
47
  def request_token_auth realm = RocketIO::DEFAULT_TOKEN_AUTH_REALM
49
48
  RocketIO::TokenAuth.authentication_request(realm)
50
49
  end
51
- alias request_token_auth! request_token_auth
52
50
  end
53
51
  end
@@ -36,14 +36,14 @@ module RocketIO
36
36
  end
37
37
 
38
38
  def self.define_error_handlers_methods source = self
39
- handlers = (source.instance_variable_get(:@__error_handlers__) || {}).each_with_object({}) do |(code,proc),o|
39
+ handlers = (source.instance_variable_get(:@__error_handlers__) || {}).each_with_object({}) do |(code,block),o|
40
40
  o[code] = :"__#{code}_error_handler__"
41
- define_method(o[code], &proc)
41
+ private_api << define_method(o[code], &block)
42
42
  end
43
43
  handlers.update(allocate.error_handlers)
44
44
  return if handlers.empty?
45
45
  handlers.freeze
46
- define_method(:error_handlers) {handlers}
46
+ private_api << define_method(:error_handlers) {handlers}
47
47
  end
48
48
 
49
49
  def error_handlers; RocketIO::EMPTY_HASH end
@@ -73,14 +73,14 @@ module RocketIO
73
73
  end
74
74
 
75
75
  define_singleton_method define_methods do |source = self|
76
- filters = (source.instance_variable_get(var) || {}).each_with_object({}) do |(meth,proc),o|
76
+ filters = (source.instance_variable_get(var) || {}).each_with_object({}) do |(meth,block),o|
77
77
  o[meth] = :"__#{filter}_#{meth}__"
78
- define_method(o[meth], &proc)
78
+ private_api << define_method(o[meth], &block)
79
79
  end
80
80
  filters.update(allocate.__send__(filter))
81
81
  return unless filters.any?
82
82
  filters.freeze
83
- define_method(filter) {filters}
83
+ private_api << define_method(filter) {filters}
84
84
  end
85
85
  end
86
86
 
@@ -24,7 +24,7 @@ module RocketIO
24
24
  def self.define_middleware_methods source = self
25
25
  middleware = ((source.instance_variable_get(:@__middleware__) || []) + allocate.middleware).uniq.freeze
26
26
  return if middleware.empty?
27
- define_method(:middleware) {middleware}
27
+ private_api << define_method(:middleware) {middleware}
28
28
  end
29
29
 
30
30
  def middleware; RocketIO::EMPTY_ARRAY end
@@ -60,14 +60,14 @@ module RocketIO
60
60
  return unless engine = source.instance_variable_get(:@__engine__)
61
61
  if Proc === engine
62
62
  selfengine = allocate.engine
63
- define_method(:__rocketio_engine__, &engine)
64
- define_method(:engine) {
63
+ private_api << define_method(:__rocketio_engine__, &engine)
64
+ private_api << define_method(:engine) {
65
65
  engine, *engine_options = __rocketio_engine__
66
66
  return selfengine unless engine
67
67
  [RocketIO.engine_class(engine), engine_options.freeze].freeze
68
68
  }
69
69
  else
70
- define_method(:engine) {engine}
70
+ private_api << define_method(:engine) {engine}
71
71
  end
72
72
  end
73
73
 
@@ -17,7 +17,7 @@ module RocketIO
17
17
  def self.define_layout_methods source = self
18
18
  return unless source.instance_variables.include?(:@__layout__)
19
19
  layout = source.instance_variable_get(:@__layout__)
20
- define_method(:layout) {layout}
20
+ private_api << define_method(:layout) {layout}
21
21
  end
22
22
 
23
23
  # by default no layout used, so this method returns nil.
@@ -59,25 +59,25 @@ module RocketIO
59
59
  o[name] = :"__#{name}_layout__"
60
60
  if setup[:block]
61
61
  # block given, do not search for file, use returned value instead
62
- define_method(o[name], &setup[:block])
62
+ private_api << define_method(o[name], &setup[:block])
63
63
  elsif setup[:file]
64
64
  # file given, search the file in original controller dirname
65
- meth_name = :"__#{name}_layout_file__"
65
+ private_api << meth_name = :"__#{name}_layout_file__"
66
66
  meth_proc = setup[:file].is_a?(::Proc) ? setup[:file] : -> {setup[:file]}
67
- define_method(meth_name, &meth_proc)
68
- define_method o[name] do
67
+ private_api << define_method(meth_name, &meth_proc)
68
+ private_api << define_method(o[name]) {
69
69
  engine, * = resolve_engine
70
70
  read_template(find_template(setup[:root], __send__(meth_name), engine))
71
- end
71
+ }
72
72
  else
73
73
  # only name given, search for a file with same name in controller's dirname
74
- define_method o[name] do
74
+ private_api << define_method(o[name]) {
75
75
  engine, * = resolve_engine
76
76
  read_template(find_template(self.dirname, setup[:name], engine))
77
- end
77
+ }
78
78
  end
79
79
  end.freeze
80
- define_method(:layouts) {layouts}
80
+ private_api << define_method(:layouts) {layouts}
81
81
  end
82
82
 
83
83
  def layouts; RocketIO::EMPTY_HASH end
@@ -17,12 +17,12 @@ module RocketIO
17
17
  vars = source.instance_variable_get(:@__template_vars__).each_with_object(allocate.__template_vars__.dup) do |(name,value),o|
18
18
  o[name] = :"__#{name}_template_var__"
19
19
  if value.is_a?(Proc)
20
- define_method(o[name], &value)
20
+ private_api << define_method(o[name], &value)
21
21
  else
22
- define_method(o[name]) {value}
22
+ private_api << define_method(o[name]) {value}
23
23
  end
24
24
  end.freeze
25
- define_method(:__template_vars__) {vars}
25
+ private_api << define_method(:__template_vars__) {vars}
26
26
  end
27
27
 
28
28
  def __template_vars__; RocketIO::EMPTY_HASH end
@@ -57,25 +57,25 @@ module RocketIO
57
57
  o[name] = :"__#{name}_template__"
58
58
  if setup[:block]
59
59
  # block given, do not search for file, use returned value instead
60
- define_method(o[name], &setup[:block])
60
+ private_api << define_method(o[name], &setup[:block])
61
61
  elsif setup[:file]
62
62
  # file given, search the file in original controller dirname
63
- meth_name = :"__#{name}_template_file__"
63
+ private_api << meth_name = :"__#{name}_template_file__"
64
64
  meth_proc = setup[:file].is_a?(Proc) ? setup[:file] : -> {setup[:file]}
65
- define_method(meth_name, &meth_proc)
66
- define_method o[name] do
65
+ private_api << define_method(meth_name, &meth_proc)
66
+ private_api << define_method(o[name]) {
67
67
  engine, * = resolve_engine
68
68
  read_template(find_template(setup[:root], __send__(meth_name), engine))
69
- end
69
+ }
70
70
  else
71
71
  # only name given, search for a file with same name in controller's dirname
72
- define_method o[name] do
72
+ private_api << define_method(o[name]) {
73
73
  engine, * = resolve_engine
74
74
  read_template(find_template(self.dirname, setup[:name], engine))
75
- end
75
+ }
76
76
  end
77
77
  end.freeze
78
- define_method(:templates) {templates}
78
+ private_api << define_method(:templates) {templates}
79
79
  end
80
80
 
81
81
  def templates; RocketIO::EMPTY_HASH end
@@ -56,7 +56,7 @@ module RocketIO
56
56
  def self.define_sessions_methods source = self
57
57
  return unless source.instance_variables.include?(:@__sessions__)
58
58
  sessions = source.instance_variable_get(:@__sessions__)
59
- define_method(:sessions) {sessions}
59
+ private_api << define_method(:sessions) {sessions}
60
60
  end
61
61
 
62
62
  def sessions; end
@@ -1,3 +1,3 @@
1
1
  module RocketIO
2
- VERSION = '0.0.8'.freeze
2
+ VERSION = '0.1.0'.freeze
3
3
  end
data/rocketio.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.files = Dir['**/{*,.[a-z]*}'].reject {|e| e =~ /(gem|lock)\z/}
15
15
  spec.require_paths = ['lib']
16
16
 
17
- spec.required_ruby_version = '~> 2.0'
17
+ spec.required_ruby_version = '~> 2.2'
18
18
 
19
19
  spec.add_runtime_dependency 'rack', '~> 1.5'
20
20
  spec.add_runtime_dependency 'mustache', '~> 1'
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'bundler', '~> 1.7'
24
24
  spec.add_development_dependency 'rake', '~> 10.0'
25
25
  spec.add_development_dependency 'tokyo', '~> 0'
26
- spec.add_development_dependency 'rack-radar'
26
+ spec.add_development_dependency 'rack-radar', '~> 0'
27
27
  end
data/test/api_test.rb ADDED
@@ -0,0 +1,155 @@
1
+ require 'setup'
2
+
3
+ spec :api do
4
+
5
+ it 'should contain only public non-inherited methods' do
6
+ c = mock_controller {
7
+ basic_auth {}
8
+ digest_auth {}
9
+ token_auth {}
10
+ error(500) {}
11
+ before {}
12
+ around {}
13
+ after {}
14
+ use proc {}
15
+ sessions :cookies
16
+ engine :ERB
17
+ layout :main
18
+ define_layout(:main) {}
19
+ define_layout(:file, file: :file)
20
+ define_template(:main) {}
21
+ define_template(:file, file: :file)
22
+ define_template_var(:var) {}
23
+ }
24
+ assert(c.api).empty?
25
+ end
26
+
27
+
28
+ it 'should inherit api methods' do
29
+ a = mock_controller {
30
+ def x; end
31
+ }
32
+
33
+ b = mock_controller(a) {
34
+ def y; end
35
+ }
36
+
37
+ assert(b.api).include?(:x)
38
+ assert(b.api).include?(:y)
39
+ end
40
+
41
+
42
+ context :private_api do
43
+
44
+ it 'should contain auth methods' do
45
+ c = mock_controller {
46
+ basic_auth {}
47
+ digest_auth {}
48
+ token_auth {}
49
+ }
50
+ assert(c.private_api).include?(:basic_auth)
51
+ assert(c.private_api).include?(:__basic_auth__get__)
52
+
53
+ assert(c.private_api).include?(:digest_auth)
54
+ assert(c.private_api).include?(:__digest_auth__get__)
55
+
56
+ assert(c.private_api).include?(:token_auth)
57
+ end
58
+
59
+ it 'should contain error handler methods' do
60
+ c = mock_controller {
61
+ error(500) {}
62
+ }
63
+ assert(c.private_api).include?(:error_handlers)
64
+ assert(c.private_api).include?(:__404_error_handler__)
65
+ assert(c.private_api).include?(:__409_error_handler__)
66
+ assert(c.private_api).include?(:__501_error_handler__)
67
+ end
68
+
69
+ it 'should contain filters methods' do
70
+ c = mock_controller {
71
+ before {}
72
+ around {}
73
+ after {}
74
+ }
75
+ assert(c.private_api).include?(:before)
76
+ assert(c.private_api).include?(:'__before_*__')
77
+
78
+ assert(c.private_api).include?(:around)
79
+ assert(c.private_api).include?(:'__around_*__')
80
+
81
+ assert(c.private_api).include?(:after)
82
+ assert(c.private_api).include?(:'__after_*__')
83
+
84
+ end
85
+
86
+ it 'should contain middleware methods' do
87
+ c = mock_controller {
88
+ use proc {}
89
+ }
90
+ assert(c.private_api).include?(:middleware)
91
+ end
92
+
93
+ it 'should contain session methods' do
94
+ c = mock_controller {
95
+ sessions :cookies
96
+ }
97
+ assert(c.private_api).include?(:sessions)
98
+ end
99
+
100
+ context :render do
101
+
102
+ it 'should contain engine methods' do
103
+ c = mock_controller {
104
+ engine :ERB
105
+ }
106
+
107
+ assert(c.private_api).include?(:engine)
108
+ end
109
+
110
+ it 'should contain engine methods when engine defined as block' do
111
+ c = mock_controller {
112
+ engine {:ERB}
113
+ }
114
+
115
+ assert(c.private_api).include?(:engine)
116
+ assert(c.private_api).include?(:__rocketio_engine__)
117
+ end
118
+
119
+ it 'should contain layout methods' do
120
+ c = mock_controller {
121
+ layout :main
122
+ define_layout(:main) {}
123
+ define_layout(:file, file: :file)
124
+ }
125
+
126
+ assert(c.private_api).include?(:layout)
127
+ assert(c.private_api).include?(:layouts)
128
+ assert(c.private_api).include?(:__file_layout_file__)
129
+ assert(c.private_api).include?(:__file_layout__)
130
+ end
131
+
132
+ it 'should contain template methods' do
133
+ c = mock_controller {
134
+ define_template(:main) {}
135
+ define_template(:file, file: :file)
136
+ }
137
+
138
+ assert(c.private_api).include?(:templates)
139
+ assert(c.private_api).include?(:__file_template_file__)
140
+ assert(c.private_api).include?(:__file_template__)
141
+ end
142
+
143
+ it 'should contain template_var methods' do
144
+ c = mock_controller {
145
+ define_template_var(:var) {}
146
+ }
147
+
148
+ assert(c.private_api).include?(:__template_vars__)
149
+ assert(c.private_api).include?(:__var_template_var__)
150
+ end
151
+
152
+ end
153
+
154
+ end
155
+ end
@@ -38,7 +38,7 @@ spec :AuthenticationTest do
38
38
  basic_auth {|u,p| [u,p] == %w[x y]}
39
39
  }
40
40
  c = mock_controller(a) {
41
- inherit :basic_auth, from: b
41
+ import :basic_auth, from: b
42
42
  }
43
43
  app(c)
44
44
  get
@@ -53,7 +53,7 @@ spec :AuthenticationTest do
53
53
  basic_auth {|u,p| [u,p] == %w[u p]}
54
54
  }
55
55
  b = mock_controller {
56
- inherit :basic_auth, from: a
56
+ import :basic_auth, from: a
57
57
  }
58
58
  app(b)
59
59
  get
@@ -99,7 +99,7 @@ spec :AuthenticationTest do
99
99
  digest_auth {|u| {'x' => 'y'}[u]}
100
100
  }
101
101
  c = mock_controller(a) {
102
- inherit :digest_auth, from: b
102
+ import :digest_auth, from: b
103
103
  }
104
104
  app(b)
105
105
  get
@@ -114,7 +114,7 @@ spec :AuthenticationTest do
114
114
  digest_auth {|u| {'u' => 'p'}[u]}
115
115
  }
116
116
  b = mock_controller {
117
- inherit :digest_auth, from: a
117
+ import :digest_auth, from: a
118
118
  }
119
119
  app(b)
120
120
  get
@@ -38,7 +38,7 @@ spec :AuthorizationTest do
38
38
  token_auth {|t| t == 'y'}
39
39
  }
40
40
  c = mock_controller(a) {
41
- inherit :token_auth, from: b
41
+ import :token_auth, from: b
42
42
  }
43
43
  app(c)
44
44
  get
@@ -53,7 +53,7 @@ spec :AuthorizationTest do
53
53
  token_auth {|t| t == 'x'}
54
54
  }
55
55
  b = mock_controller {
56
- inherit :token_auth, from: a
56
+ import :token_auth, from: a
57
57
  }
58
58
  app(b)
59
59
  get
data/test/filters_test.rb CHANGED
@@ -26,9 +26,9 @@ spec :Filters do
26
26
  def get; end
27
27
  }
28
28
  b = mock_controller {
29
- inherit :before, from: a
30
- inherit :around, from: a
31
- inherit :after, from: a
29
+ import :before, from: a
30
+ import :around, from: a
31
+ import :after, from: a
32
32
  }
33
33
  app(b)
34
34
  get
@@ -49,9 +49,9 @@ spec :Filters do
49
49
  after(:get) {after << :b}
50
50
  }
51
51
  c = mock_controller(a) {
52
- inherit :before, from: b
53
- inherit :around, from: b
54
- inherit :after, from: b
52
+ import :before, from: b
53
+ import :around, from: b
54
+ import :after, from: b
55
55
  }
56
56
  app(c)
57
57
  get
@@ -73,9 +73,9 @@ spec :Filters do
73
73
  after(:post) {after_post << :b}
74
74
  }
75
75
  c = mock_controller(a) {
76
- inherit :before, from: b
77
- inherit :around, from: b
78
- inherit :after, from: b
76
+ import :before, from: b
77
+ import :around, from: b
78
+ import :after, from: b
79
79
  }
80
80
  app(c)
81
81
  get
@@ -29,7 +29,7 @@ spec :Middleware do
29
29
  }
30
30
  b = mock_controller {
31
31
  use(ware) { buff << 3 }
32
- inherit :middleware, from: a
32
+ import :middleware, from: a
33
33
  def get; end
34
34
  }
35
35
  app mock_app(b)
@@ -47,7 +47,7 @@ spec :Middleware do
47
47
  def get; end
48
48
  }
49
49
  c = mock_controller(a) {
50
- inherit :middleware, from: b
50
+ import :middleware, from: b
51
51
  def get; end
52
52
  }
53
53
  app mock_app(c)
@@ -28,7 +28,7 @@ spec :engine do
28
28
  engine :Turbo
29
29
  }
30
30
  c = mock_controller(a) {
31
- inherit :engine, from: b
31
+ import :engine, from: b
32
32
  }
33
33
  assert(c.initialize_controller.engine) == [:TurboTemplate, []]
34
34
  end
@@ -29,7 +29,7 @@ spec :Views do
29
29
  layout :baster
30
30
  }
31
31
  c = mock_controller(a) {
32
- inherit :layout, from: b
32
+ import :layout, from: b
33
33
  }
34
34
  assert(c.initialize_controller.layout) == :baster
35
35
  end
@@ -40,7 +40,7 @@ spec :layouts do
40
40
  define_layout(:x) {'b'}
41
41
  }
42
42
  c = mock_controller(a) {
43
- inherit :layouts, from: b
43
+ import :layouts, from: b
44
44
  }.initialize_controller
45
45
  assert(c.__send__ c.layouts[:x]) == 'b'
46
46
  end
@@ -53,7 +53,7 @@ spec :layouts do
53
53
  define_layout(:b) {'b'}
54
54
  }
55
55
  c = mock_controller(a) {
56
- inherit :layouts, from: b
56
+ import :layouts, from: b
57
57
  }.initialize_controller
58
58
  assert(c.__send__ c.layouts[:a]) == 'a'
59
59
  assert(c.__send__ c.layouts[:b]) == 'b'
@@ -65,7 +65,7 @@ spec :layouts do
65
65
  }
66
66
  b = mock_controller {
67
67
  define_layout(:x) {'b'}
68
- inherit :layouts, from: a
68
+ import :layouts, from: a
69
69
  }.initialize_controller
70
70
  assert(b.__send__ b.layouts[:x]) == 'a'
71
71
  end
@@ -76,7 +76,7 @@ spec :layouts do
76
76
  }
77
77
  b = mock_controller {
78
78
  define_layout(:b) {'b'}
79
- inherit :layouts, from: a
79
+ import :layouts, from: a
80
80
  }.initialize_controller
81
81
  assert(b.__send__ b.layouts[:a]) == 'a'
82
82
  assert(b.__send__ b.layouts[:b]) == 'b'
@@ -87,7 +87,7 @@ spec :layouts do
87
87
  define_layout(:x) {'a'}
88
88
  }
89
89
  b = mock_controller {
90
- inherit :layouts, from: a
90
+ import :layouts, from: a
91
91
  define_layout(:x) {'b'}
92
92
  }.initialize_controller
93
93
  assert(b.__send__ b.layouts[:x]) == 'b'
@@ -39,7 +39,7 @@ spec :template_vars do
39
39
  define_template_var(:a, 'b')
40
40
  }
41
41
  c = mock_controller(a) {
42
- inherit :template_vars, from: b
42
+ import :template_vars, from: b
43
43
  }.initialize_controller
44
44
  assert(c.template_vars[:a]) == 'b'
45
45
  end
@@ -52,7 +52,7 @@ spec :template_vars do
52
52
  define_template_var(:b, 'b')
53
53
  }
54
54
  c = mock_controller(a) {
55
- inherit :template_vars, from: b
55
+ import :template_vars, from: b
56
56
  }.initialize_controller
57
57
  assert(c.template_vars[:a]) == 'a'
58
58
  assert(c.template_vars[:b]) == 'b'
@@ -64,7 +64,7 @@ spec :template_vars do
64
64
  }
65
65
  b = mock_controller {
66
66
  define_template_var(:a, 'b')
67
- inherit :template_vars, from: a
67
+ import :template_vars, from: a
68
68
  }.initialize_controller
69
69
  assert(b.template_vars[:a]) == 'a'
70
70
  end
@@ -40,7 +40,7 @@ spec :templates do
40
40
  define_template(:x) {'b'}
41
41
  }
42
42
  c = mock_controller(a) {
43
- inherit :templates, from: b
43
+ import :templates, from: b
44
44
  }.initialize_controller
45
45
  assert(c.__send__ c.templates[:x]) == 'b'
46
46
  end
@@ -53,7 +53,7 @@ spec :templates do
53
53
  define_template(:b) {'b'}
54
54
  }
55
55
  c = mock_controller(a) {
56
- inherit :templates, from: b
56
+ import :templates, from: b
57
57
  }.initialize_controller
58
58
  assert(c.__send__ c.templates[:a]) == 'a'
59
59
  assert(c.__send__ c.templates[:b]) == 'b'
@@ -65,7 +65,7 @@ spec :templates do
65
65
  }
66
66
  b = mock_controller {
67
67
  define_template(:x) {'b'}
68
- inherit :templates, from: a
68
+ import :templates, from: a
69
69
  }.initialize_controller
70
70
  assert(b.__send__ b.templates[:x]) == 'a'
71
71
  end
@@ -76,7 +76,7 @@ spec :templates do
76
76
  }
77
77
  b = mock_controller {
78
78
  define_template(:b) {'b'}
79
- inherit :templates, from: a
79
+ import :templates, from: a
80
80
  }.initialize_controller
81
81
  assert(b.__send__ b.templates[:a]) == 'a'
82
82
  assert(b.__send__ b.templates[:b]) == 'b'
@@ -87,7 +87,7 @@ spec :templates do
87
87
  define_template(:x) {'a'}
88
88
  }
89
89
  b = mock_controller {
90
- inherit :templates, from: a
90
+ import :templates, from: a
91
91
  define_template(:x) {'b'}
92
92
  }.initialize_controller
93
93
  assert(b.__send__ b.templates[:x]) == 'b'
@@ -49,7 +49,7 @@ spec :Sessions do
49
49
  sessions :cookies
50
50
  }
51
51
  b = mock_controller(:b) {
52
- inherit :sessions, from: a
52
+ import :sessions, from: a
53
53
  def get(y); session[:x] = y end
54
54
  def post; session[:x] end
55
55
  }
@@ -84,7 +84,7 @@ spec :Sessions do
84
84
  def post; session[:x] end
85
85
  }
86
86
  c = mock_controller(a) {
87
- inherit :sessions, from: b
87
+ import :sessions, from: b
88
88
  def get(y); session[:x] = y end
89
89
  def post; session[:x] end
90
90
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Slee Woo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-27 00:00:00.000000000 Z
11
+ date: 2016-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -98,14 +98,14 @@ dependencies:
98
98
  name: rack-radar
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Simple, fast, scalable web framework for Ruby
@@ -155,6 +155,7 @@ files:
155
155
  - lib/rocketio/version.rb
156
156
  - rocketio.gemspec
157
157
  - test/aliases_test.rb
158
+ - test/api_test.rb
158
159
  - test/authentication_test.rb
159
160
  - test/authorization_test.rb
160
161
  - test/cache_control_test.rb
@@ -201,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
202
  requirements:
202
203
  - - "~>"
203
204
  - !ruby/object:Gem::Version
204
- version: '2.0'
205
+ version: '2.2'
205
206
  required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  requirements:
207
208
  - - ">="
@@ -212,5 +213,5 @@ rubyforge_project:
212
213
  rubygems_version: 2.5.1
213
214
  signing_key:
214
215
  specification_version: 4
215
- summary: '["rocketio-0.0.8", "Simple, fast, scalable web framework for Ruby"]'
216
+ summary: '["rocketio-0.1.0", "Simple, fast, scalable web framework for Ruby"]'
216
217
  test_files: []