flame 4.0.0 → 4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b164f4b1817723648efb5412dc308265aaa30af
4
- data.tar.gz: dc130470827a1bb8f1c22689c605381aa97ee78d
3
+ metadata.gz: 255a8d94f1326b67225cdd4b19f9f7e98de75bdd
4
+ data.tar.gz: 14d93ff6ae287e137c8711de646c38443583f333
5
5
  SHA512:
6
- metadata.gz: 2a482215bfd58d3ca783ac1c904f171d5e09f5a2cd42245b6324bf433ffb8611827602e551099076939969fe07b23ae0defb1be6a1c68d18708a270b4b97e3f4
7
- data.tar.gz: 5afe0a7dcd19b8ee8eb9d674211f456ea0232932fd40bc0e24f86837dce011d81216c9ecaba9ab84bd4f5cc263a1c813efd1be6a28ceba7febb60dda3ce3341e
6
+ metadata.gz: 9c4546180307af412902b9e1444bf36109c9071dcdf9cabaf828e43f2aba8c41bdbf99ea5ec5dc64e7be7647ab11204a7d76f9382d2868cc3b8f20d4f48c9215
7
+ data.tar.gz: d6c1a14007b6c072a2ad736237c13e90386c9e7397b5ba2471b7eb61f2a9761353ae06f00ec41245307ea44dcb662fffac654a3b10c3bf603413e7be4bc14251
data/lib/flame/cookies.rb CHANGED
@@ -1,27 +1,29 @@
1
1
  module Flame
2
- ## Helper class for cookies
3
- class Cookies
4
- def initialize(request_cookies, response)
5
- @request_cookies = request_cookies
6
- @response = response
7
- end
2
+ class Dispatcher
3
+ ## Helper class for cookies
4
+ class Cookies
5
+ def initialize(request_cookies, response)
6
+ @request_cookies = request_cookies
7
+ @response = response
8
+ end
8
9
 
9
- ## Get request cookies
10
- ## @param key [String, Symbol] name of cookie
11
- def [](key)
12
- @request_cookies[key.to_s]
13
- end
10
+ ## Get request cookies
11
+ ## @param key [String, Symbol] name of cookie
12
+ def [](key)
13
+ @request_cookies[key.to_s]
14
+ end
14
15
 
15
- ## Set (or delete) cookies for response
16
- ## @param key [String, Symbol] name of cookie
17
- ## @param new_value [Object, nil] value of cookie
18
- ## @example Set new value to `cat` cookie
19
- ## cookies['cat'] = 'nice cat'
20
- ## @example Delete `cat` cookie
21
- ## cookies['cat'] = nil
22
- def []=(key, new_value)
23
- return @response.delete_cookie(key.to_s, path: '/') if new_value.nil?
24
- @response.set_cookie(key.to_s, value: new_value, path: '/')
16
+ ## Set (or delete) cookies for response
17
+ ## @param key [String, Symbol] name of cookie
18
+ ## @param new_value [Object, nil] value of cookie
19
+ ## @example Set new value to `cat` cookie
20
+ ## cookies['cat'] = 'nice cat'
21
+ ## @example Delete `cat` cookie
22
+ ## cookies['cat'] = nil
23
+ def []=(key, new_value)
24
+ return @response.delete_cookie(key.to_s, path: '/') if new_value.nil?
25
+ @response.set_cookie(key.to_s, value: new_value, path: '/')
26
+ end
25
27
  end
26
28
  end
27
29
  end
data/lib/flame/errors.rb CHANGED
@@ -1,93 +1,95 @@
1
1
  module Flame
2
- module RouterError
3
- ## Error for Flame::Router.compare_actions
4
- class ActionsError < StandardError
5
- def initialize(ctrl, extra_actions)
6
- @ctrl = ctrl
7
- @extra_actions = extra_actions
2
+ module Errors
3
+ module RouterError
4
+ ## Error for Flame::Router.compare_actions
5
+ class ActionsError < StandardError
6
+ def initialize(ctrl, extra_actions)
7
+ @ctrl = ctrl
8
+ @extra_actions = extra_actions
9
+ end
8
10
  end
9
- end
10
11
 
11
- ## Error if routes have more actions, than controller
12
- class ExtraRoutesActionsError < ActionsError
13
- def message
14
- "Controller '#{@ctrl}' has no methods" \
15
- " '#{@extra_actions.join(', ')}' from routes"
12
+ ## Error if routes have more actions, than controller
13
+ class ExtraRoutesActionsError < ActionsError
14
+ def message
15
+ "Controller '#{@ctrl}' has no methods" \
16
+ " '#{@extra_actions.join(', ')}' from routes"
17
+ end
16
18
  end
17
- end
18
19
 
19
- ## Error if controller has not assigned in routes actions
20
- class ExtraControllerActionsError < ActionsError
21
- def message
22
- "Routes for '#{@ctrl}' has no methods" \
23
- " '#{@extra_actions.join(', ')}'"
20
+ ## Error if controller has not assigned in routes actions
21
+ class ExtraControllerActionsError < ActionsError
22
+ def message
23
+ "Routes for '#{@ctrl}' has no methods" \
24
+ " '#{@extra_actions.join(', ')}'"
25
+ end
24
26
  end
25
- end
26
27
 
27
- ## Error for Flame::Router::RouteRefine.arguments_valid?
28
- class ArgumentsError < StandardError
29
- def initialize(ctrl, action, path, extra_args)
30
- @ctrl = ctrl
31
- @action = action
32
- @path = path
33
- @extra_args = extra_args
28
+ ## Error for Flame::Router::RouteRefine.arguments_valid?
29
+ class ArgumentsError < StandardError
30
+ def initialize(ctrl, action, path, extra_args)
31
+ @ctrl = ctrl
32
+ @action = action
33
+ @path = path
34
+ @extra_args = extra_args
35
+ end
34
36
  end
35
- end
36
37
 
37
- ## Error if path has more arguments, than controller's method
38
- class ExtraPathArgumentsError < ArgumentsError
39
- def message
40
- "Method '#{@action}' from controller '#{@ctrl}'" \
41
- " does not know arguments '#{@extra_args.join(', ')}'" \
42
- " from path '#{@path}'"
38
+ ## Error if path has more arguments, than controller's method
39
+ class ExtraPathArgumentsError < ArgumentsError
40
+ def message
41
+ "Method '#{@action}' from controller '#{@ctrl}'" \
42
+ " does not know arguments '#{@extra_args.join(', ')}'" \
43
+ " from path '#{@path}'"
44
+ end
43
45
  end
44
- end
45
46
 
46
- ## Error if path has no arguments, that controller's method required
47
- class ExtraActionArgumentsError < ArgumentsError
48
- def message
49
- "Path '#{@path}' does not contain required arguments" \
50
- " '#{@extra_args.join(', ')}' of method '#{@action}'" \
51
- " from controller '#{@ctrl}'"
47
+ ## Error if path has no arguments, that controller's method required
48
+ class ExtraActionArgumentsError < ArgumentsError
49
+ def message
50
+ "Path '#{@path}' does not contain required arguments" \
51
+ " '#{@extra_args.join(', ')}' of method '#{@action}'" \
52
+ " from controller '#{@ctrl}'"
53
+ end
52
54
  end
53
55
  end
54
- end
55
56
 
56
- ## Error for Flame::Router.find_path
57
- class RouteNotFoundError < StandardError
58
- def initialize(ctrl, method)
59
- @ctrl = ctrl
60
- @method = method
61
- end
57
+ ## Error for Flame::Router.find_path
58
+ class RouteNotFoundError < StandardError
59
+ def initialize(ctrl, method)
60
+ @ctrl = ctrl
61
+ @method = method
62
+ end
62
63
 
63
- def message
64
- "Route with controller '#{@ctrl}' and method '#{@method}'" \
65
- ' not found in application routes'
64
+ def message
65
+ "Route with controller '#{@ctrl}' and method '#{@method}'" \
66
+ ' not found in application routes'
67
+ end
66
68
  end
67
- end
68
69
 
69
- ## Error for Flame::Controller.path_to
70
- class ArgumentNotAssignedError < StandardError
71
- def initialize(path, path_part)
72
- @path = path
73
- @path_part = path_part
74
- end
70
+ ## Error for Flame::Controller.path_to
71
+ class ArgumentNotAssignedError < StandardError
72
+ def initialize(path, path_part)
73
+ @path = path
74
+ @path_part = path_part
75
+ end
75
76
 
76
- def message
77
- "Argument '#{@path_part}' for path '#{@path}' is not assigned"
77
+ def message
78
+ "Argument '#{@path_part}' for path '#{@path}' is not assigned"
79
+ end
78
80
  end
79
- end
80
81
 
81
- ## Error for Flame::Router.find_path
82
- class UnexpectedTypeOfHookError < StandardError
83
- def initialize(hook, route)
84
- @hook = hook
85
- @route = route
86
- end
82
+ ## Error for Flame::Router.find_path
83
+ class UnexpectedTypeOfHookError < StandardError
84
+ def initialize(hook, route)
85
+ @hook = hook
86
+ @route = route
87
+ end
87
88
 
88
- def message
89
- "Unexpected hook-block class '#{@hook.class}'" \
90
- " in route '#{@route}'"
89
+ def message
90
+ "Unexpected hook-block class '#{@hook.class}'" \
91
+ " in route '#{@route}'"
92
+ end
91
93
  end
92
94
  end
93
95
  end
data/lib/flame/route.rb CHANGED
@@ -1,101 +1,103 @@
1
1
  module Flame
2
- ## Class for Route in Router.routes
3
- class Route
4
- attr_reader :attributes
2
+ class Router
3
+ ## Class for Route in Router.routes
4
+ class Route
5
+ attr_reader :attributes
5
6
 
6
- def initialize(attrs = {})
7
- @attributes = attrs.merge(
8
- ## Split path to parts (Array of String)
9
- path_parts: attrs[:path].to_s.split('/').reject(&:empty?).freeze
10
- )
11
- end
7
+ def initialize(attrs = {})
8
+ @attributes = attrs.merge(
9
+ ## Split path to parts (Array of String)
10
+ path_parts: attrs[:path].to_s.split('/').reject(&:empty?).freeze
11
+ )
12
+ end
12
13
 
13
- ## Get the attribute of route
14
- ## @param key [Symbol] name of attribute
15
- def [](key)
16
- @attributes[key]
17
- end
14
+ ## Get the attribute of route
15
+ ## @param key [Symbol] name of attribute
16
+ def [](key)
17
+ @attributes[key]
18
+ end
18
19
 
19
- ## Set the attribute of route
20
- ## @param key [Symbol] name of attribute
21
- ## @param value [Object] value of attribute
22
- def []=(key, value)
23
- @attributes[key] = value
24
- end
20
+ ## Set the attribute of route
21
+ ## @param key [Symbol] name of attribute
22
+ ## @param value [Object] value of attribute
23
+ def []=(key, value)
24
+ @attributes[key] = value
25
+ end
25
26
 
26
- ## Compare attributes for `Router.find_route`
27
- ## @param attrs [Hash] Hash of attributes for comparing
28
- def compare_attributes(attrs)
29
- attrs.each do |name, value|
30
- next true if compare_attribute(name, value)
31
- break false
27
+ ## Compare attributes for `Router.find_route`
28
+ ## @param attrs [Hash] Hash of attributes for comparing
29
+ def compare_attributes(attrs)
30
+ attrs.each do |name, value|
31
+ next true if compare_attribute(name, value)
32
+ break false
33
+ end
32
34
  end
33
- end
34
35
 
35
- ## Assign arguments to path for `Controller.path_to`
36
- ## @param args [Hash] arguments for assigning
37
- def assign_arguments(args = {})
38
- self[:path_parts]
39
- .map { |path_part| assign_argument(path_part, args) }
40
- .unshift('').join('/').gsub(%r{\/{2,}}, '/')
41
- end
36
+ ## Assign arguments to path for `Controller.path_to`
37
+ ## @param args [Hash] arguments for assigning
38
+ def assign_arguments(args = {})
39
+ self[:path_parts]
40
+ .map { |path_part| assign_argument(path_part, args) }
41
+ .unshift('').join('/').gsub(%r{\/{2,}}, '/')
42
+ end
42
43
 
43
- ## Extract arguments from request_parts for `execute`
44
- ## @param request_parts [Array] parts of the request (Array of String)
45
- def arguments(request_parts)
46
- self[:path_parts].each_with_index.with_object({}) do |(path_part, i), args|
47
- request_part = request_parts[i]
48
- path_part_opt = path_part[1] == '?'
49
- next args unless path_part[0] == ':'
50
- break args if path_part_opt && request_part.nil?
51
- args[
52
- path_part[(path_part_opt ? 2 : 1)..-1].to_sym
53
- ] = URI.decode(request_part)
44
+ ## Extract arguments from request_parts for `execute`
45
+ ## @param request_parts [Array] parts of the request (Array of String)
46
+ def arguments(request_parts)
47
+ self[:path_parts].each_with_index.with_object({}) do |(path_part, i), args|
48
+ request_part = request_parts[i]
49
+ path_part_opt = path_part[1] == '?'
50
+ next args unless path_part[0] == ':'
51
+ break args if path_part_opt && request_part.nil?
52
+ args[
53
+ path_part[(path_part_opt ? 2 : 1)..-1].to_sym
54
+ ] = URI.decode(request_part)
55
+ end
54
56
  end
55
- end
56
57
 
57
- ## Helpers for `compare_attributes`
58
- def compare_attribute(name, value)
59
- case name
60
- when :method
61
- compare_method(value)
62
- when :path_parts
63
- compare_path_parts(value)
64
- else
65
- self[name] == value
58
+ ## Helpers for `compare_attributes`
59
+ def compare_attribute(name, value)
60
+ case name
61
+ when :method
62
+ compare_method(value)
63
+ when :path_parts
64
+ compare_path_parts(value)
65
+ else
66
+ self[name] == value
67
+ end
66
68
  end
67
- end
68
69
 
69
- def compare_method(request_method)
70
- self[:method].upcase.to_sym == request_method.upcase.to_sym
71
- end
70
+ def compare_method(request_method)
71
+ self[:method].upcase.to_sym == request_method.upcase.to_sym
72
+ end
72
73
 
73
- def compare_path_parts(request_parts)
74
- # p route_path
75
- req_path_parts = self[:path_parts].select { |part| part[1] != '?' }
76
- return false if request_parts.count < req_path_parts.count
77
- # compare_parts(request_parts, self[:path_parts])
78
- request_parts.each_with_index do |request_part, i|
79
- path_part = self[:path_parts][i]
80
- # p request_part, path_part
81
- break false unless path_part
82
- next if path_part[0] == ':'
83
- break false unless request_part == path_part
74
+ def compare_path_parts(request_parts)
75
+ # p route_path
76
+ req_path_parts = self[:path_parts].select { |part| part[1] != '?' }
77
+ return false if request_parts.count < req_path_parts.count
78
+ # compare_parts(request_parts, self[:path_parts])
79
+ request_parts.each_with_index do |request_part, i|
80
+ path_part = self[:path_parts][i]
81
+ # p request_part, path_part
82
+ break false unless path_part
83
+ next if path_part[0] == ':'
84
+ break false unless request_part == path_part
85
+ end
84
86
  end
85
- end
86
87
 
87
- ## Helpers for `assign_arguments`
88
- def assign_argument(path_part, args = {})
89
- ## Not argument
90
- return path_part unless path_part[0] == ':'
91
- ## Not required argument
92
- return args[path_part[2..-1].to_sym] if path_part[1] == '?'
93
- ## Required argument
94
- param = args[path_part[1..-1].to_sym]
95
- ## Required argument is nil
96
- fail ArgumentNotAssignedError.new(self[:path], path_part) if param.nil?
97
- ## All is ok
98
- param
88
+ ## Helpers for `assign_arguments`
89
+ def assign_argument(path_part, args = {})
90
+ ## Not argument
91
+ return path_part unless path_part[0] == ':'
92
+ ## Not required argument
93
+ return args[path_part[2..-1].to_sym] if path_part[1] == '?'
94
+ ## Required argument
95
+ param = args[path_part[1..-1].to_sym]
96
+ ## Required argument is nil
97
+ fail ArgumentNotAssignedError.new(self[:path], path_part) if param.nil?
98
+ ## All is ok
99
+ param
100
+ end
99
101
  end
100
102
  end
101
103
  end
data/lib/flame/router.rb CHANGED
@@ -20,7 +20,9 @@ module Flame
20
20
 
21
21
  ## Add routes from controller to glob array
22
22
  route_refine = RouteRefine.new(self, ctrl, path, block)
23
- concat_routes(route_refine) if ActionsValidator.new(route_refine).valid?
23
+ if Validators::ActionsValidator.new(route_refine).valid?
24
+ concat_routes(route_refine)
25
+ end
24
26
  end
25
27
 
26
28
  ## Find route by any attributes
@@ -65,9 +67,9 @@ module Flame
65
67
  @rest_routes ||= [
66
68
  { method: :GET, path: '/', action: :index },
67
69
  { method: :POST, path: '/', action: :create },
68
- { method: :GET, path: '/', action: :show },
69
- { method: :PUT, path: '/', action: :update },
70
- { method: :DELETE, path: '/', action: :delete }
70
+ { method: :GET, path: '/:id', action: :show },
71
+ { method: :PUT, path: '/:id', action: :update },
72
+ { method: :DELETE, path: '/:id', action: :delete }
71
73
  ]
72
74
  end
73
75
 
@@ -97,7 +99,7 @@ module Flame
97
99
  action = path.to_sym
98
100
  path = "/#{path}"
99
101
  end
100
- ArgumentsValidator.new(@ctrl, path, action).valid?
102
+ Validators::ArgumentsValidator.new(@ctrl, path, action).valid?
101
103
  add_route(request_method, path, action)
102
104
  end
103
105
  end
@@ -1,91 +1,93 @@
1
1
  require_relative 'errors'
2
2
 
3
3
  module Flame
4
- ## Compare arguments from path and from controller's action
5
- class ArgumentsValidator
6
- def initialize(ctrl, path, action)
7
- @ctrl = ctrl
8
- @path = path
9
- @action = action
10
- end
4
+ module Validators
5
+ ## Compare arguments from path and from controller's action
6
+ class ArgumentsValidator
7
+ def initialize(ctrl, path, action)
8
+ @ctrl = ctrl
9
+ @path = path
10
+ @action = action
11
+ end
11
12
 
12
- def valid?
13
- ## Break path for ':arg' arguments
14
- @path_args = path_arguments(@path)
15
- ## Take all and required arguments from Controller#action
16
- @action_args = action_arguments(@action)
17
- ## Compare arguments from path and arguments from method
18
- no_extra_path_arguments? && no_extra_action_arguments?
19
- end
13
+ def valid?
14
+ ## Break path for ':arg' arguments
15
+ @path_args = path_arguments(@path)
16
+ ## Take all and required arguments from Controller#action
17
+ @action_args = action_arguments(@action)
18
+ ## Compare arguments from path and arguments from method
19
+ no_extra_path_arguments? && no_extra_action_arguments?
20
+ end
20
21
 
21
- private
22
+ private
22
23
 
23
- ## Split path to args array
24
- def path_arguments(path)
25
- args = path.split('/').select { |part| part[0] == ':' }
26
- args.map { |arg| arg[1..-1].to_sym }
27
- end
24
+ ## Split path to args array
25
+ def path_arguments(path)
26
+ args = path.split('/').select { |part| part[0] == ':' }
27
+ args.map { |arg| arg[1..-1].to_sym }
28
+ end
28
29
 
29
- ## Take args from controller's action
30
- def action_arguments(action)
31
- parameters = @ctrl.instance_method(action).parameters
32
- req_parameters = parameters.select { |par| par[0] == :req }
33
- {
34
- all: parameters.map { |par| par[1] },
35
- req: req_parameters.map { |par| par[1] }
36
- }
37
- end
30
+ ## Take args from controller's action
31
+ def action_arguments(action)
32
+ parameters = @ctrl.instance_method(action).parameters
33
+ req_parameters = parameters.select { |par| par[0] == :req }
34
+ {
35
+ all: parameters.map { |par| par[1] },
36
+ req: req_parameters.map { |par| par[1] }
37
+ }
38
+ end
38
39
 
39
- def no_extra_path_arguments?
40
- ## Subtraction action args from path args
41
- extra_path_args = @path_args - @action_args[:all]
42
- return true if extra_path_args.empty?
43
- fail RouterError::ExtraPathArgumentsError.new(
44
- @ctrl, @action, @path, extra_path_args
45
- )
46
- end
40
+ def no_extra_path_arguments?
41
+ ## Subtraction action args from path args
42
+ extra_path_args = @path_args - @action_args[:all]
43
+ return true if extra_path_args.empty?
44
+ fail Errors::RouterError::ExtraPathArgumentsError.new(
45
+ @ctrl, @action, @path, extra_path_args
46
+ )
47
+ end
47
48
 
48
- def no_extra_action_arguments?
49
- ## Subtraction path args from action required args
50
- extra_action_args = @action_args[:req] - @path_args
51
- return true if extra_action_args.empty?
52
- fail RouterError::ExtraActionArgumentsError.new(
53
- @ctrl, @action, @path, extra_action_args
54
- )
49
+ def no_extra_action_arguments?
50
+ ## Subtraction path args from action required args
51
+ extra_action_args = @action_args[:req] - @path_args
52
+ return true if extra_action_args.empty?
53
+ fail Errors::RouterError::ExtraActionArgumentsError.new(
54
+ @ctrl, @action, @path, extra_action_args
55
+ )
56
+ end
55
57
  end
56
- end
57
58
 
58
- ## Compare actions from routes and from controller
59
- class ActionsValidator
60
- def initialize(route_refine)
61
- @routes_actions = route_refine.routes.map { |route| route[:action] }
62
- @ctrl = route_refine.ctrl
63
- @ctrl_actions = {
64
- public: @ctrl.public_instance_methods(false),
65
- all: @ctrl.instance_methods + @ctrl.private_instance_methods
66
- }
67
- end
59
+ ## Compare actions from routes and from controller
60
+ class ActionsValidator
61
+ def initialize(route_refine)
62
+ @routes_actions = route_refine.routes.map { |route| route[:action] }
63
+ @ctrl = route_refine.ctrl
64
+ @ctrl_actions = {
65
+ public: @ctrl.public_instance_methods(false),
66
+ all: @ctrl.instance_methods + @ctrl.private_instance_methods
67
+ }
68
+ end
68
69
 
69
- def valid?
70
- no_extra_routes_actions? && no_extra_controller_actions?
71
- end
70
+ def valid?
71
+ no_extra_routes_actions? && no_extra_controller_actions?
72
+ end
72
73
 
73
- private
74
+ private
74
75
 
75
- def no_extra_routes_actions?
76
- extra_routes_actions = @routes_actions - @ctrl_actions[:public]
77
- return true if extra_routes_actions.empty?
78
- fail RouterError::ExtraRoutesActionsError.new(
79
- @ctrl, extra_routes_actions
80
- )
81
- end
76
+ def no_extra_routes_actions?
77
+ extra_routes_actions = @routes_actions - @ctrl_actions[:public]
78
+ return true if extra_routes_actions.empty?
79
+ fail Errors::RouterError::ExtraRoutesActionsError.new(
80
+ @ctrl, extra_routes_actions
81
+ )
82
+ end
82
83
 
83
- def no_extra_controller_actions?
84
- extra_ctrl_actions = @ctrl_actions[:public] - @routes_actions
85
- return true if extra_ctrl_actions.empty?
86
- fail RouterError::ExtraControllerActionsError.new(
87
- @ctrl, extra_ctrl_actions
88
- )
84
+ def no_extra_controller_actions?
85
+ extra_ctrl_actions = @ctrl_actions[:public] - @routes_actions
86
+ return true if extra_ctrl_actions.empty?
87
+ fail Errors::RouterError::ExtraControllerActionsError.new(
88
+ @ctrl, extra_ctrl_actions
89
+ )
90
+ end
89
91
  end
90
92
  end
91
93
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flame
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Popov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-29 00:00:00.000000000 Z
11
+ date: 2016-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -28,7 +28,7 @@ dependencies:
28
28
  name: tilt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.4'
34
34
  - - "<"
@@ -38,7 +38,7 @@ dependencies:
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">"
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.4'
44
44
  - - "<"