grape-app 0.6.4 → 0.7.1

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
  SHA256:
3
- metadata.gz: ceb5d9f75dd6d5db403dce33d2a5d3e1c6aca71848a04a37ed99f8fde0f037ed
4
- data.tar.gz: ae1ae575667dae62ec3139c3c91d3a396f32fb821885fdf0f0ee30c50db9ff1d
3
+ metadata.gz: b57e351adc50118035370d237ef50414ce15c5937ddac3304b724932c9a8cda9
4
+ data.tar.gz: 36dfd3eac4d65e5264feb16240f565120c40ee964866eb57755b358f75b1a942
5
5
  SHA512:
6
- metadata.gz: 72273165dfaf50b2004c47a4e73ff7c6f64ded19e8ec8d34ef0efd578a3f9846bd409e3f9b227d834b30bc1fd1fbccb4767f53545388476db69fefd5813629c9
7
- data.tar.gz: 1c4bc4ea19dda75930bf9ba6e63aa04e2b39462497488ddce45e25219d503af872aea37d0a7447f2a20f5a12bb04a5991454747438b1d8eb76f40ea983d80c02
6
+ metadata.gz: a8d09f18885b43fa835eaa37adb3b33b0f064b5665dde1cdd2bcc278ea87aca4f99784b4f734abb8e8ce9bdc30def55c40ff33663ff884036475c8f6d7ca1207
7
+ data.tar.gz: 9ff549eb0e0d16eca3caa2a42ed80834436e8ba0252835f25e7891e5baa7eddff72544cf68706b2225839064c57c28650f53bcdb598efcbb818ae43bdd13c6e9
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grape-app (0.6.4)
4
+ grape-app (0.7.1)
5
5
  activesupport
6
6
  grape (>= 1.2.0)
7
7
  grape-entity
8
8
  rack-cors
9
9
  rack-ssl-enforcer
10
10
  thor
11
+ zeitwerk
11
12
 
12
13
  GEM
13
14
  remote: https://rubygems.org/
@@ -37,7 +38,7 @@ GEM
37
38
  thread_safe (~> 0.3, >= 0.3.1)
38
39
  diff-lcs (1.3)
39
40
  equalizer (0.0.11)
40
- grape (1.2.2)
41
+ grape (1.2.3)
41
42
  activesupport
42
43
  builder
43
44
  mustermann-grape (~> 1.0.0)
@@ -47,17 +48,17 @@ GEM
47
48
  grape-entity (0.7.1)
48
49
  activesupport (>= 4.0)
49
50
  multi_json (>= 1.3.2)
50
- i18n (1.4.0)
51
+ i18n (1.5.3)
51
52
  concurrent-ruby (~> 1.0)
52
53
  ice_nine (0.11.2)
53
- jaro_winkler (1.5.1)
54
+ jaro_winkler (1.5.2)
54
55
  minitest (5.11.3)
55
56
  multi_json (1.13.1)
56
57
  mustermann (1.0.3)
57
58
  mustermann-grape (1.0.0)
58
59
  mustermann (~> 1.0.0)
59
- parallel (1.12.1)
60
- parser (2.5.3.0)
60
+ parallel (1.13.0)
61
+ parser (2.6.0.0)
61
62
  ast (~> 2.4.0)
62
63
  powerpack (0.1.2)
63
64
  rack (2.0.6)
@@ -82,7 +83,7 @@ GEM
82
83
  diff-lcs (>= 1.2.0, < 2.0)
83
84
  rspec-support (~> 3.8.0)
84
85
  rspec-support (3.8.0)
85
- rubocop (0.62.0)
86
+ rubocop (0.63.1)
86
87
  jaro_winkler (~> 1.5.1)
87
88
  parallel (~> 1.10)
88
89
  parser (>= 2.5, != 2.5.1.1)
@@ -102,6 +103,7 @@ GEM
102
103
  coercible (~> 1.0)
103
104
  descendants_tracker (~> 0.0, >= 0.0.3)
104
105
  equalizer (~> 0.0, >= 0.0.9)
106
+ zeitwerk (1.0.0.beta2)
105
107
 
106
108
  PLATFORMS
107
109
  ruby
@@ -1,6 +1,6 @@
1
- Gem::Specification.new do |s| # rubocop:disable Metrics/BlockLength
1
+ Gem::Specification.new do |s|
2
2
  s.name = 'grape-app'
3
- s.version = '0.6.4'
3
+ s.version = '0.7.1'
4
4
  s.authors = ['Black Square Media Ltd']
5
5
  s.email = ['info@blacksquaremedia.com']
6
6
  s.summary = %(Stanalone Grape API apps)
@@ -20,6 +20,7 @@ Gem::Specification.new do |s| # rubocop:disable Metrics/BlockLength
20
20
  s.add_dependency 'rack-cors'
21
21
  s.add_dependency 'rack-ssl-enforcer'
22
22
  s.add_dependency 'thor'
23
+ s.add_dependency 'zeitwerk'
23
24
 
24
25
  s.add_development_dependency 'activerecord'
25
26
  s.add_development_dependency 'bundler'
@@ -3,10 +3,10 @@ require 'pathname'
3
3
  require 'grape'
4
4
  require 'active_support/string_inquirer'
5
5
  require 'active_support/configurable'
6
- require 'active_support/inflector/methods'
7
6
  require 'active_support/core_ext/time/zones'
8
7
  require 'rack/cors'
9
8
  require 'rack/ssl-enforcer'
9
+ require 'zeitwerk'
10
10
 
11
11
  class Grape::App < Grape::API::Instance
12
12
  class << self
@@ -20,8 +20,10 @@ class Grape::App < Grape::API::Instance
20
20
 
21
21
  # Update load path
22
22
  $LOAD_PATH.push self.root.join('lib').to_s
23
- $LOAD_PATH.push self.root.join('app').to_s
24
- $LOAD_PATH.push self.root.join('app', 'models').to_s
23
+
24
+ # Push dirs to loader
25
+ push_dir? self.root.join('app')
26
+ push_dir? self.root.join('app', 'models')
25
27
 
26
28
  # Load initializers
27
29
  require 'grape/app/initializers/pre'
@@ -29,8 +31,10 @@ class Grape::App < Grape::API::Instance
29
31
  require_all 'config', 'initializers'
30
32
  require 'grape/app/initializers/post'
31
33
 
34
+ # Setup loader
35
+ loader.setup
36
+
32
37
  # Load app
33
- require_one 'app', 'models'
34
38
  require_one 'app', 'api'
35
39
  end
36
40
 
@@ -58,9 +62,10 @@ class Grape::App < Grape::API::Instance
58
62
  @env ||= ActiveSupport::StringInquirer.new(ENV['GRAPE_ENV'] || ENV['RACK_ENV'] || 'development')
59
63
  end
60
64
 
61
- def autoload(paths)
62
- paths.each do |path|
63
- Object.autoload ActiveSupport::Inflector.classify(path), path
65
+ # @return [Zeitwerk::Loader] loader
66
+ def loader
67
+ @loader ||= Zeitwerk::Loader.new.tap do |l|
68
+ l.inflector = Grape::App::Inflector.new
64
69
  end
65
70
  end
66
71
 
@@ -79,6 +84,10 @@ class Grape::App < Grape::API::Instance
79
84
 
80
85
  private
81
86
 
87
+ def push_dir?(dir)
88
+ loader.push_dir(dir) if dir.exist?
89
+ end
90
+
82
91
  def require_all(*args)
83
92
  args += ['**', '*.rb']
84
93
  Dir[root.join(*args).to_s].sort.each {|f| require f }
@@ -88,9 +97,9 @@ class Grape::App < Grape::API::Instance
88
97
  path = root.join(*args).to_s
89
98
  require path if File.exist?("#{path}.rb")
90
99
  end
91
-
92
100
  end
93
101
  end
94
102
 
95
103
  require 'grape/app/configuration'
96
104
  require 'grape/app/helpers'
105
+ require 'grape/app/inflector'
@@ -0,0 +1,13 @@
1
+ require 'zeitwerk'
2
+ require 'active_support/inflector'
3
+
4
+ class Grape::App::Inflector < Zeitwerk::Inflector
5
+ def camelize(basename, _abspath)
6
+ case basename
7
+ when 'api'
8
+ 'API'
9
+ else
10
+ ActiveSupport::Inflector.camelize(basename)
11
+ end
12
+ end
13
+ end
@@ -10,7 +10,7 @@ ActiveRecord::Tasks::DatabaseTasks.tap do |config|
10
10
  end
11
11
  end
12
12
 
13
- namespace :db do # rubocop:disable Metrics/BlockLength
13
+ namespace :db do
14
14
 
15
15
  Rake::Task['load_config'].clear
16
16
 
@@ -1,8 +1,4 @@
1
1
  module API
2
- extend ActiveSupport::Autoload
3
-
4
- # Autoload API components
5
- autoload :V1
6
2
  end
7
3
 
8
4
  # Mount root API to app
@@ -1,8 +1,4 @@
1
1
  module API
2
- extend ActiveSupport::Autoload
3
-
4
- # Autoload API components
5
- autoload :V1
6
2
  end
7
3
 
8
4
  # Mount root API to app
@@ -0,0 +1,5 @@
1
+ class API::Posts < Grape::API::Instance
2
+ get '/posts' do
3
+ []
4
+ end
5
+ end
@@ -13,4 +13,6 @@ class API::V1 < Grape::API::Instance
13
13
  get '/failing' do
14
14
  raise MyLib::BadRequest, 'bad request'
15
15
  end
16
+
17
+ mount API::Posts
16
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Black Square Media Ltd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-03 00:00:00.000000000 Z
11
+ date: 2019-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: zeitwerk
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: activerecord
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +232,7 @@ files:
218
232
  - lib/grape/app/helpers.rb
219
233
  - lib/grape/app/helpers/params.rb
220
234
  - lib/grape/app/helpers/respond_with.rb
235
+ - lib/grape/app/inflector.rb
221
236
  - lib/grape/app/initializers/post.rb
222
237
  - lib/grape/app/initializers/pre.rb
223
238
  - lib/grape/app/tasks.rb
@@ -227,7 +242,6 @@ files:
227
242
  - lib/grape/app/templates/Rakefile
228
243
  - lib/grape/app/templates/app/api.rb
229
244
  - lib/grape/app/templates/app/api/v1.rb
230
- - lib/grape/app/templates/app/models.rb
231
245
  - lib/grape/app/templates/config.ru
232
246
  - lib/grape/app/templates/config/environment.rb
233
247
  - lib/grape/app/templates/config/environments/development.rb
@@ -241,6 +255,7 @@ files:
241
255
  - spec/grape/app_spec.rb
242
256
  - spec/scenario/Gemfile
243
257
  - spec/scenario/app/api.rb
258
+ - spec/scenario/app/api/posts.rb
244
259
  - spec/scenario/app/api/v1.rb
245
260
  - spec/scenario/config/database.yml
246
261
  - spec/scenario/config/environments/test.rb
@@ -274,6 +289,7 @@ test_files:
274
289
  - spec/grape/app_spec.rb
275
290
  - spec/scenario/Gemfile
276
291
  - spec/scenario/app/api.rb
292
+ - spec/scenario/app/api/posts.rb
277
293
  - spec/scenario/app/api/v1.rb
278
294
  - spec/scenario/config/database.yml
279
295
  - spec/scenario/config/environments/test.rb
@@ -1,4 +0,0 @@
1
- # Add your model names below
2
- Grape::App.autoload %w[
3
-
4
- ]