flame 4.7.2 → 4.7.4

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: ab488062e7501eb5290974a958bf6de4e5155082
4
- data.tar.gz: 1023f92030c825712fd8012cca03f549fe68ca66
3
+ metadata.gz: db65a3c8ddcc20b17eba7c861d4e3312c50c4de3
4
+ data.tar.gz: 0dedc0d40dd716a783d7f8902f72b7850de4413c
5
5
  SHA512:
6
- metadata.gz: 0d1e7d18113dcba5782f5911347e08b94c3676e2975256602ab103874c3cd333227e99669b438a40e305f9d15c02489cbfeeb7c66b621a72f8975a8eee83722f
7
- data.tar.gz: 655a14d5ec396973bb11384ca32214af292a37d1e051b0c8ba61fbced35ceb65fa84e2d2497cce9b85f43219674d45c3d8a84e96549f880e94d41b16367c9d2b
6
+ metadata.gz: 67a398ed323183b5d49750ed8f7220993b2dd607e6ce6a2d3004716eb1928b71a7cb18256d3f7dee063913447d1f8df3397751c85293934bd487302fc2090510
7
+ data.tar.gz: c357eeb4004523028079a6ef602449e0d92751fd408b83e5b9c3bc04ad6679e3b0cadd4744911dc5a4c5d85c02a501129a9e493ff0d9576ac3f77b7e50c6fc02
data/bin/flame CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'thor'
4
4
  require 'fileutils'
5
- require 'gorilla-patch/letters_case'
5
+ require 'gorilla-patch/inflections'
6
6
  require 'erb'
7
7
 
8
8
  ## CLI Application
@@ -25,7 +25,7 @@ class FlameCLI < Thor
25
25
  module New
26
26
  module_function
27
27
 
28
- using GorillaPatch::LettersCase
28
+ using GorillaPatch::Inflections
29
29
 
30
30
  def build(app_name)
31
31
  @app_name = app_name
@@ -6,6 +6,11 @@ module Flame
6
6
  ## Class initialize when Dispatcher found route with it
7
7
  ## For new request and response
8
8
  class Controller
9
+ ## Shortcut for not-inherited public methods: actions
10
+ def self.actions
11
+ public_instance_methods(false)
12
+ end
13
+
9
14
  ## Initialize the controller for request execution
10
15
  ## @param dispatcher [Flame::Dispatcher] dispatcher object
11
16
  def initialize(dispatcher)
@@ -91,6 +96,11 @@ module Flame
91
96
  @dispatcher.send(m, *args, &block)
92
97
  end
93
98
 
99
+ ## Respond to Dispatcher methods
100
+ def respond_to_missing?(m, *)
101
+ @dispatcher.respond_to?(m) || super
102
+ end
103
+
94
104
  private
95
105
 
96
106
  def add_controller_class(args)
@@ -99,7 +109,7 @@ module Flame
99
109
  end
100
110
 
101
111
  class << self
102
- using GorillaPatch::LettersCase
112
+ using GorillaPatch::Inflections
103
113
 
104
114
  ## Default root path of the controller for requests
105
115
  def default_path
@@ -133,7 +143,7 @@ module Flame
133
143
  end
134
144
 
135
145
  def define_parent_actions
136
- superclass.public_instance_methods(false).each do |public_method|
146
+ superclass.actions.each do |public_method|
137
147
  um = superclass.public_instance_method(public_method)
138
148
  define_method public_method, um
139
149
  end
@@ -26,9 +26,9 @@ module Flame
26
26
  def run!
27
27
  catch :halt do
28
28
  try_route ||
29
- try_static ||
30
- try_static(File.join(__dir__, '..', '..', 'public')) ||
31
- halt(404)
29
+ try_static ||
30
+ try_static(File.join(__dir__, '..', '..', 'public')) ||
31
+ halt(404)
32
32
  end
33
33
  response.write body
34
34
  response.finish
@@ -4,7 +4,7 @@ require 'tilt'
4
4
  require 'tilt/plain'
5
5
  require 'tilt/erb'
6
6
 
7
- require 'gorilla-patch/letters_case'
7
+ require 'gorilla-patch/inflections'
8
8
 
9
9
  module Flame
10
10
  ## Helper for render functionality
@@ -79,11 +79,12 @@ module Flame
79
79
 
80
80
  ## Find layout-files by path
81
81
  def find_layouts(path)
82
- find_files(path, layout_dirs).select { |file| Tilt[file] }
82
+ find_files(path, layout_dirs)
83
+ .select { |file| Tilt[file] }
83
84
  .sort! { |a, b| b.split('/').size <=> a.split('/').size }
84
85
  end
85
86
 
86
- using GorillaPatch::LettersCase
87
+ using GorillaPatch::Inflections
87
88
 
88
89
  ## Find possible directories for the controller
89
90
  def controller_dirs
@@ -20,9 +20,8 @@ module Flame
20
20
 
21
21
  ## Add routes from controller to glob array
22
22
  route_refine = RouteRefine.new(self, ctrl, path, block)
23
- if Validators::ActionsValidator.new(route_refine).valid?
24
- concat_routes(route_refine)
25
- end
23
+ return unless Validators::ActionsValidator.new(route_refine).valid?
24
+ concat_routes(route_refine)
26
25
  end
27
26
 
28
27
  ## Find route by any attributes
@@ -58,10 +57,6 @@ module Flame
58
57
  attr_accessor :rest_routes
59
58
  attr_reader :ctrl, :routes
60
59
 
61
- def self.http_methods
62
- [:GET, :POST, :PUT, :PATCH, :DELETE]
63
- end
64
-
65
60
  ## Defaults REST routes (methods, pathes, controllers actions)
66
61
  def rest_routes
67
62
  @rest_routes ||= [
@@ -81,7 +76,7 @@ module Flame
81
76
  execute(&block)
82
77
  end
83
78
 
84
- http_methods.each do |request_method|
79
+ %i(GET POST PUT PATCH DELETE).each do |request_method|
85
80
  ## Define refine methods for all HTTP methods
86
81
  ## @overload post(path, action)
87
82
  ## Execute action on requested path and HTTP method
@@ -115,7 +110,7 @@ module Flame
115
110
  ## to defaults pathes and HTTP methods
116
111
  def defaults
117
112
  rest
118
- @ctrl.public_instance_methods(false).each do |action|
113
+ @ctrl.actions.each do |action|
119
114
  next if find_route_index(action: action)
120
115
  send(:GET.downcase, action)
121
116
  end
@@ -125,8 +120,8 @@ module Flame
125
120
  def rest
126
121
  rest_routes.each do |rest_route|
127
122
  action = rest_route[:action]
128
- next unless @ctrl.public_instance_methods.include?(action) &&
129
- find_route_index(action: action).nil?
123
+ next if !@ctrl.actions.include?(action) ||
124
+ find_route_index(action: action)
130
125
  send(*rest_route.values.map(&:downcase), prefix: true)
131
126
  end
132
127
  end
@@ -19,9 +19,9 @@ module Flame
19
19
  halt 304 if static_cached?(file_time)
20
20
  content_type File.extname(file)
21
21
  response['Last-Modified'] = file_time.httpdate
22
- # 'Content-Disposition' => 'attachment;' \
23
- # "filename=\"#{File.basename(static_file)}\"",
24
- # 'Content-Length' => File.size?(static_file).to_s
22
+ # 'Content-Disposition' => 'attachment;' \
23
+ # "filename=\"#{File.basename(static_file)}\"",
24
+ # 'Content-Length' => File.size?(static_file).to_s
25
25
  halt 200, File.read(file)
26
26
  end
27
27
  end
@@ -65,10 +65,6 @@ module Flame
65
65
  def initialize(route_refine)
66
66
  @routes_actions = route_refine.routes.map(&:action)
67
67
  @ctrl = route_refine.ctrl
68
- @ctrl_actions = {
69
- public: @ctrl.public_instance_methods(false),
70
- all: @ctrl.instance_methods + @ctrl.private_instance_methods
71
- }
72
68
  end
73
69
 
74
70
  def valid?
@@ -78,7 +74,7 @@ module Flame
78
74
  private
79
75
 
80
76
  def no_extra_routes_actions?
81
- extra_routes_actions = @routes_actions - @ctrl_actions[:public]
77
+ extra_routes_actions = @routes_actions - @ctrl.actions
82
78
  return true if extra_routes_actions.empty?
83
79
  raise Errors::RouterError::ExtraRoutesActionsError.new(
84
80
  @ctrl, extra_routes_actions
@@ -86,7 +82,7 @@ module Flame
86
82
  end
87
83
 
88
84
  def no_extra_controller_actions?
89
- extra_ctrl_actions = @ctrl_actions[:public] - @routes_actions
85
+ extra_ctrl_actions = @ctrl.actions - @routes_actions
90
86
  return true if extra_ctrl_actions.empty?
91
87
  raise Errors::RouterError::ExtraControllerActionsError.new(
92
88
  @ctrl, extra_ctrl_actions
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Flame
4
- VERSION = '4.7.2'.freeze
4
+ VERSION = '4.7.4'.freeze
5
5
  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.7.2
4
+ version: 4.7.4
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-12-28 00:00:00.000000000 Z
11
+ date: 2017-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -50,20 +50,20 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1'
53
+ version: '2'
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 1.0.0
56
+ version: 2.0.0
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '1'
63
+ version: '2'
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: 1.0.0
66
+ version: 2.0.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: thor
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: rubocop
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
81
95
  description: Use controller's classes with instance methods as routing actions, mounting
82
96
  its in application class.
83
97
  email:
@@ -141,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
155
  version: '0'
142
156
  requirements: []
143
157
  rubyforge_project:
144
- rubygems_version: 2.5.2
158
+ rubygems_version: 2.6.8
145
159
  signing_key:
146
160
  specification_version: 4
147
161
  summary: Web-framework, based on MVC-pattern