grape-starter 1.2.1 → 1.2.6

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
  SHA256:
3
- metadata.gz: 27194b5d8b6336fb7a52abab9aaa16c67dcf4fcc58838236e0d2b23819c81c04
4
- data.tar.gz: 21d76fda0a48ec356fc70bc7c6e6d0079fb2aea84cbb79055946c7391ec3c091
3
+ metadata.gz: b0319aad1d8c7ee2391228d9406510f7154c20bc1499ad236747f3296bdd60e1
4
+ data.tar.gz: d7c5675719b83d4b00c1c6a79c18be5548cfa9c03e02d20d0951547d384a9add
5
5
  SHA512:
6
- metadata.gz: 8376fae30eb83f003ae3bd1013d8c07c67929434712a3939e0934609f4bd1db9f78823f592bed151e9978c4485b4d77949624e36498cce6314c978f2b06bcfb2
7
- data.tar.gz: 7ee89fd4f2e4b65fcab27499f843f093b9b46af84a12aa4fb26affb29a49e465cfd2e858f52a4824c785f77611a868f14974f82eaa66747a9dbdeee2b555eb11
6
+ metadata.gz: a9fd4c6a7b26fa0cbe7243d389446a2f7076e5fdc2ea2363d20283c10998bf8963544a86f7fa57cb1d77f169d2cda8a22e70d9726f3f685b30e07388f58a789c
7
+ data.tar.gz: eac255d57b207a70a02782f3ddcb3d4adddee53c794b9886a2cea4d00688910e25700af1fc5c456f7b382c201ebbff5585fe429498f305b00a0bca728a9b4c8a
@@ -0,0 +1,14 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+ day: "friday"
13
+ assignees:
14
+ - "LeFnord"
@@ -0,0 +1,21 @@
1
+ name: Ruby
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v1
12
+ - name: Set up Ruby 2.7
13
+ uses: actions/setup-ruby@v1
14
+ with:
15
+ ruby-version: 2.7.1
16
+ - name: Build and test with Rake
17
+ run: |
18
+ gem install bundler
19
+ bundle install --jobs 4 --retry 3
20
+ bundle exec rspec
21
+ bundle exec rubocop
data/.gitignore CHANGED
@@ -5,10 +5,8 @@
5
5
  .bundle
6
6
  log
7
7
  Gemfile.lock
8
- docker-compose.yml
9
8
  tmp/
10
9
  pkg/
11
10
  template/Gemfile.lock
12
11
  grape-starter.md
13
- .Ulysses-Group.plist
14
- .Ulysses-favorites.plist
12
+ tmp
data/.inch.yml CHANGED
@@ -5,3 +5,4 @@ files:
5
5
  - lib/starter/builder/templates/sequel.rb
6
6
  - lib/starter/builder/names.rb
7
7
  - lib/starter/rake/grape_tasks.rb
8
+ - template
@@ -5,24 +5,24 @@ AllCops:
5
5
  - '**/bin/**/*'
6
6
  - '**/tmp/**/*'
7
7
  - '**/script/**/*'
8
- # - '**/template/**/*'
9
8
  - '**/template/api/**'
10
9
  - grape-starter.gemspec
10
+ - template/spec/spec-helper.rb
11
11
  UseCache: true
12
- TargetRubyVersion: 2.6
12
+ TargetRubyVersion: 2.7
13
13
 
14
14
  Layout/IndentationWidth:
15
15
  Exclude:
16
16
  - 'lib/starter/builder/templates/files.rb'
17
17
  - 'lib/starter/builder/templates/endpoints.rb'
18
18
 
19
+ Layout/LineLength:
20
+ Max: 120
21
+
19
22
  Metrics/BlockLength:
20
23
  Exclude:
21
24
  - 'spec/**/*'
22
25
 
23
- Metrics/LineLength:
24
- Max: 120
25
-
26
26
  Metrics/AbcSize:
27
27
  Max: 20
28
28
 
@@ -38,7 +38,82 @@ Style/AsciiComments:
38
38
  Enabled: false
39
39
 
40
40
  Style/Documentation:
41
- Exclude:
42
- - 'template/**/*'
43
- - 'lib/**/*'
44
- - 'spec/**/*'
41
+ Enabled: false
42
+
43
+ # introduced in 0.88
44
+ Layout/EmptyLinesAroundAttributeAccessor:
45
+ Enabled: true
46
+ Layout/SpaceAroundMethodCallOperator:
47
+ Enabled: true
48
+ Lint/DeprecatedOpenSSLConstant:
49
+ Enabled: true
50
+ Lint/MixedRegexpCaptureTypes:
51
+ Enabled: true
52
+ Lint/RaiseException:
53
+ Enabled: true
54
+ Lint/StructNewOverride:
55
+ Enabled: true
56
+ Style/ExponentialNotation:
57
+ Enabled: true
58
+ Style/HashEachMethods:
59
+ Enabled: true
60
+ Style/HashTransformKeys:
61
+ Enabled: true
62
+ Style/HashTransformValues:
63
+ Enabled: true
64
+ Style/RedundantFetchBlock:
65
+ Enabled: true
66
+ Style/RedundantRegexpCharacterClass:
67
+ Enabled: true
68
+ Style/RedundantRegexpEscape:
69
+ Enabled: true
70
+ Style/SlicingWithRange:
71
+ Enabled: true
72
+
73
+ # introduced in 0.89
74
+ Lint/BinaryOperatorWithIdenticalOperands:
75
+ Enabled: true
76
+ Lint/DuplicateElsifCondition:
77
+ Enabled: true
78
+ Lint/DuplicateRescueException:
79
+ Enabled: true
80
+ Lint/EmptyConditionalBody:
81
+ Enabled: true
82
+ Lint/FloatComparison:
83
+ Enabled: true
84
+ Lint/MissingSuper:
85
+ Enabled: true
86
+ Lint/OutOfRangeRegexpRef:
87
+ Enabled: true
88
+ Lint/SelfAssignment:
89
+ Enabled: true
90
+ Lint/TopLevelReturnWithArgument:
91
+ Enabled: true
92
+ Lint/UnreachableLoop:
93
+ Enabled: true
94
+ Style/AccessorGrouping:
95
+ Enabled: false
96
+ Style/ArrayCoercion:
97
+ Enabled: true
98
+ Style/BisectedAttrAccessor:
99
+ Enabled: true
100
+ Style/CaseLikeIf:
101
+ Enabled: true
102
+ Style/ExplicitBlockArgument:
103
+ Enabled: true
104
+ Style/GlobalStdStream:
105
+ Enabled: true
106
+ Style/HashAsLastArrayItem:
107
+ Enabled: true
108
+ Style/HashLikeCase:
109
+ Enabled: true
110
+ Style/OptionalBooleanParameter:
111
+ Enabled: true
112
+ Style/RedundantAssignment:
113
+ Enabled: true
114
+ Style/RedundantFileExtensionInRequire:
115
+ Enabled: true
116
+ Style/SingleArgumentDig:
117
+ Enabled: true
118
+ Style/StringConcatenation:
119
+ Enabled: true
@@ -1,5 +1,5 @@
1
1
  language: ruby
2
-
2
+ os: linux
3
3
  sudo: false
4
4
 
5
5
  before_install:
@@ -7,13 +7,13 @@ before_install:
7
7
 
8
8
  rvm:
9
9
  - ruby-head
10
- - 2.6.1
11
- - 2.5.3
12
- - 2.4.5
10
+ - 2.7.0
11
+ - 2.6.5
12
+ - 2.5.7
13
13
 
14
- matrix:
14
+ jobs:
15
15
  fast_finish: true
16
16
 
17
17
  allow_failures:
18
- - rvm: ruby-head
19
- - rvm: 2.4.5
18
+ - rvm:
19
+ - ruby-head
@@ -1,12 +1,23 @@
1
1
  ### NEXT
2
2
 
3
- - contributions
3
+ - Fixes gems for sequel. [LeFnord](https://github.com/LeFnord)
4
+ - Minor template improvements. [LeFnord](https://github.com/LeFnord)
4
5
 
5
- ### ### v1.2.1 / 2019-02-24
6
+ ### v1.2.3 / 2019-12-15
6
7
 
7
- - [!17](https://github.com/LeFnord/grape-starter/pull/17) - fix script/server shebang for ubuntu - [rawongithub](https://github.com/rawongithub)
8
+ - Removes require pry. [LeFnord](LeFnord) closes [!21](https://github.com/LeFnord/grape-starter/issues/21)
9
+ - [#22](https://github.com/LeFnord/grape-starter/pull/22) - accomodate activerecord 6.0 (#22) [Ignacio Carrera](https://github.com/nachokb)
8
10
 
9
- ### ### v1.2.0 / 2019-02-24
11
+ ### v1.2.2 / 2019-02-28
12
+
13
+ - Fixes loading of `aplication` instead of `environment` in `config.ru`
14
+ - [#19](https://github.com/LeFnord/grape-starter/pull/19) - Adds a module under lib as namespace. [LeFnord](https://github.com/LeFnord)
15
+
16
+ ### v1.2.1 / 2019-02-24
17
+
18
+ - [#17](https://github.com/LeFnord/grape-starter/pull/17) - Fix script/server shebang for ubuntu. [rawongithub](https://github.com/rawongithub)
19
+
20
+ ### v1.2.0 / 2019-02-24
10
21
 
11
22
  - Code improvements, now `environment`, `application` and `boot` are used in a more expected way.
12
23
 
@@ -18,69 +29,6 @@
18
29
  - prepare release 1.0.2
19
30
  - Cleans up travis ci.
20
31
 
21
- ### 1.0.1
22
- - [00993](https://github.com/LeFnord/grape-starter/commit/6fef3812fd587ea61c29b9eacde1fb856ad00993) - adds a rudimentary Dockerfile as starting point
23
-
24
- ### 1.0.0
25
-
26
- - [67a5f](https://github.com/LeFnord/grape-starter/commit/b1f32801844ed9a98bc4d5f7c938451ef7667a5f) - supports creating a migration file
27
- - [de26b](https://github.com/LeFnord/grape-starter/commit/22ad2170176b9602cff2239a7d0469c823cde26b) - ci adoptions
28
- - [7ad69](https://github.com/LeFnord/grape-starter/commit/925fa5fb161c8cc26c96834e185d8299a207ad69) - spec improvements
29
-
30
- ### 0.8.7
31
-
32
- - [c7cb2](https://github.com/LeFnord/grape-starter/commit/4be5bd9b7c06611e096d6eaa23d7168136bc7cb2) - updates dependencies; makes rubocop happy
33
- - [d9c6f](https://github.com/LeFnord/grape-starter/commit/2f97247767c3e76c4c33da50eec2ad160bed9c6f) - minor dependencies updates
34
-
35
- ### 0.8.6
36
-
37
- - [362c9](https://github.com/LeFnord/grape-starter/commit/56035384befacb877e89e8a04f7bc62c9e7362c9) - fixes a sequel configuration bug with sqlite3
38
- - [21892](https://github.com/LeFnord/grape-starter/commit/4e249978af71abba35e00b0d4e85ec6ffaa21892) - upgrades minimum ruby version to 2.3
39
-
40
- ### 0.8.5
41
-
42
- - [cbea8](https://github.com/LeFnord/grape-starter/commit/fa5edb5dc7e0883ff099e297e9cbd5bd5ebcbea8) - DRYs up template code; passes rubocop 0.51.0
43
-
44
- - [6bbe7](https://github.com/LeFnord/grape-starter/commit/a224b5d8dfa001cb1e8dec3b1a1e28fc9826bbe7) - avoids overriding of dev db by running specs; fixes syntox error
45
-
46
- ### 0.8.4
47
-
48
- - [d8e13](https://github.com/LeFnord/grape-starter/commit/1f5faef958799704163b7db25db07c569cad8e13) -
49
- fixes error on configuration
50
-
51
- - [6baba](https://github.com/LeFnord/grape-starter/commit/e00433dee97509e71c1685a0da9134ce2a66baba) -
52
- minor re-working of Rakefile and initializer templates
53
-
54
- ### 0.8.3
55
-
56
- - [3fe13](https://github.com/LeFnord/grape-starter/commit/3fe134c6ce0666dfd86165b5d2c1a219a4629862) - improves sequel rake tasks
57
-
58
- ### 0.8.2
59
-
60
- - [48458…](https://github.com/LeFnord/grape-starter/commit/48458938a341660453052660448a058aee0f8e81) - handles Sequel deprecation warning
61
-
62
- ### 0.8.1
63
-
64
- - [6b16c…](https://github.com/LeFnord/grape-starter/commit/6b16c0bf38e4cad8d486e805269157dcbaefbb64) - removes default ORM value, minor corrections
65
-
66
- ### 0.8.0
67
-
68
- - [#15](https://github.com/LeFnord/grape-starter/pull/15), [2af09…](https://github.com/LeFnord/grape-starter/commit/2af09dddf97f756e96c80c745ee68aad5ab4ccc3) **breaking change** prefix option on create is optional, no default
69
- - [#12](https://github.com/LeFnord/grape-starter/pull/12) - Add base configuration for ActiveRecord - ([@terry90](https://github.com/terry90))
70
-
71
- ### 0.7.0
72
-
73
- - [212e6…](https://github.com/LeFnord/grape-starter/commit/212e6245e10598efe286143dac39f46134c58c54) - makes mounting of doc more secure
74
- - [f3bb6…](https://github.com/LeFnord/grape-starter/commit/f3bb63fdee79df4552316524b1ac3adaebab811a) - adds orm option so that the `add` resource command can optional use configured ORM
75
- - [af138…](https://github.com/LeFnord/grape-starter/commit/af1388ae6479b81646c56ac55f856ea275dc9817) - resource respects configured orm
76
- - [5ac74…](https://github.com/LeFnord/grape-starter/commit/5ac747a7fb44d97eedbeba1e7a11e475846d7743) - improve README
77
- - [eb33c…](https://github.com/LeFnord/grape-starter/commit/eb33c910c623b34db54ccb64ee59af4c639029e4) - adds base storing of configuration
78
- - [751aa…](https://github.com/LeFnord/grape-starter/commit/751aa8ae929bed0ff66ac9830468279238bec252) - adding option to add Sequel support
79
- - [354e6…](https://github.com/LeFnord/grape-starter/commit/354e63abd77751fe0f3a1b405bb49ab754ab1522) - re-organizing of template files
80
- - [6e33e…](https://github.com/LeFnord/grape-starter/commit/6e33e8137aa293eef66913c50010c53d284a0d8d) - Add awesome_print dependency ([@terry90](https://github.com/terry90))
81
-
82
- ### 0.6.0
32
+ ### before
83
33
 
84
- **breaking changes** renames all api stuff under lib to models (includes, of course, the namespace):
85
- - `lib/api.rb` -> `lib/models.rb`
86
- - `lib/api/` -> `lib/models/`
34
+ many things done
data/Gemfile CHANGED
@@ -5,12 +5,12 @@ source 'http://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  group :development, :test do
8
- gem 'grape', '~> 1.0'
8
+ gem 'grape', '~> 1.4'
9
9
  gem 'pry', platforms: [:mri]
10
10
  gem 'pry-byebug', platforms: [:mri]
11
11
  gem 'rack-cors', require: false
12
12
  gem 'rack-test', require: false
13
- gem 'rake', '~> 12.0'
13
+ gem 'rake', '~> 13.0'
14
14
  gem 'rspec', '~> 3.8'
15
15
  gem 'rspec-command'
16
16
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
5
 
6
- require 'pry'
7
6
  require 'gli'
8
7
  require 'starter'
9
8
 
@@ -22,10 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.required_ruby_version = '>= 2.4'
25
+ spec.required_ruby_version = '>= 2.5'
26
26
 
27
- spec.add_dependency 'gli', '~> 2.18'
28
- spec.add_dependency 'activesupport', '~> 5'
29
- spec.add_dependency 'rubocop', '~> 0.64'
30
- spec.add_dependency 'awesome_print', '~> 1.7'
27
+ spec.add_dependency 'gli', '~> 2.19'
28
+ spec.add_dependency 'activesupport', '~> 6.0'
29
+ spec.add_dependency 'rubocop', '~> 0.89'
30
+ spec.add_dependency 'awesome_print', '~> 1.8'
31
31
  end
@@ -18,13 +18,15 @@ module Starter
18
18
 
19
19
  class << self
20
20
  attr_reader :prefix, :resource, :set, :force, :entity, :destination, :orm
21
+
21
22
  #
22
23
  # public methods
23
24
  #
24
25
  #
25
26
  # would be called from new command
26
27
  #
27
- # name - A String as project name
28
+ # name - A String as project name,
29
+ # it will also be the namespace in the lib folder
28
30
  # source - A String which provides the template path
29
31
  # destination - A String which provides the new project path
30
32
  # options - A Hash to provide some optional arguments (default: {})
@@ -41,13 +43,15 @@ module Starter
41
43
  replace_static(File.join(config[:file]), config[:pattern])
42
44
  end
43
45
 
46
+ add_namespace_with_version
47
+
48
+ Orms.build(name, destination, options[:orm]) if options[:orm]
49
+
44
50
  Starter::Config.save(
45
51
  dest: destination,
46
52
  content: { prefix: prefix, orm: options[:orm].to_s }
47
53
  )
48
54
 
49
- Orms.build(destination, options[:orm]) if options[:orm]
50
-
51
55
  self
52
56
  end
53
57
 
@@ -55,6 +59,7 @@ module Starter
55
59
  #
56
60
  # resource - A String as name
57
61
  # options - A Hash to provide some optional arguments (default: {})
62
+ # :resource - the name of the resource to create
58
63
  # :set – Whitespace separated list of http verbs
59
64
  # (default: nil, possible: post get put patch delete)
60
65
  # :force - A Boolean, if given existent files should be overwriten (default: false)
@@ -82,8 +87,8 @@ module Starter
82
87
 
83
88
  file_list.map { |x| send("#{x}_name") }.each do |file_to_remove|
84
89
  FileUtils.rm file_to_remove
85
- rescue StandardError => error
86
- $stdout.puts error.to_s
90
+ rescue StandardError => e
91
+ $stdout.puts e.to_s
87
92
  end
88
93
 
89
94
  remove_mount_point
@@ -113,12 +118,19 @@ module Starter
113
118
  ]
114
119
  end
115
120
 
121
+ #
122
+ # creates a new file in lib folder as namespace, includind the version
123
+ def add_namespace_with_version
124
+ new_lib = File.join(destination, 'lib', base_file_name)
125
+ FileFoo.write_file(new_lib, base_namespace_file.strip_heredoc)
126
+ end
127
+
116
128
  #
117
129
  # replace something in static files
118
130
  def replace_static(file, replacement)
119
- server_file = File.join(destination, file)
131
+ file_path = File.join(destination, file)
120
132
 
121
- FileFoo.call!(server_file) { |content| content.gsub!('{{{grape-starter}}}', replacement.to_s) }
133
+ FileFoo.call!(file_path) { |content| content.gsub!('{{{grape-starter}}}', replacement.to_s) }
122
134
  end
123
135
 
124
136
  # #add! a new resource releated helper methods
@@ -24,9 +24,11 @@ module Starter
24
24
  end
25
25
  end
26
26
 
27
+ # rubocop:disable Style/StringConcatenation
27
28
  def base_file_name
28
29
  @resource.tr('/', '-').downcase + '.rb'
29
30
  end
31
+ # rubocop:enable Style/StringConcatenation
30
32
 
31
33
  def base_spec_name
32
34
  base_file_name.gsub(/.rb$/, '_spec.rb')
@@ -3,10 +3,12 @@
3
3
  module Starter
4
4
  class Orms
5
5
  class << self
6
- def build(dest, orm)
6
+ def build(name, dest, orm)
7
7
  load_orm(orm: orm)
8
8
  return if @orm.nil?
9
9
 
10
+ @name = name
11
+
10
12
  if @orm == 'ar' || @orm == 'activerecord'
11
13
  # Fixes pooling
12
14
  add_middleware(dest, 'ActiveRecord::Rack::ConnectionManagement')
@@ -35,21 +37,21 @@ module Starter
35
37
  encoding: unicode
36
38
  timeout: 5000
37
39
  user: postgres
38
- database: name_development
40
+ database: #{@name}_development
39
41
 
40
42
  test:
41
43
  adapter: #{adapter}
42
44
  encoding: unicode
43
45
  timeout: 5000
44
46
  user: postgres
45
- database: name_test
47
+ database: #{@name}_test
46
48
 
47
49
  production:
48
50
  adapter: #{adapter}
49
51
  encoding: unicode
50
52
  timeout: 5000
51
53
  user: postgres
52
- database: name_production
54
+ database: #{@name}_production
53
55
  FILE
54
56
  end
55
57
 
@@ -9,6 +9,8 @@ module Starter
9
9
 
10
10
  def initializer
11
11
  <<-FILE.strip_heredoc
12
+ # frozen_string_literal: true
13
+
12
14
  require 'yaml'
13
15
  require 'erb'
14
16
  require 'active_record'
@@ -71,14 +73,14 @@ module Starter
71
73
  gem 'standalone_migrations'
72
74
 
73
75
  # DB stuff
74
- gem 'activerecord', '~> 5.2'
76
+ gem 'activerecord', '>= 6'
75
77
  gem 'pg'
76
78
  FILE
77
79
  end
78
80
 
79
81
  def migration(klass_name, resource)
80
82
  <<-FILE.strip_heredoc
81
- class Create#{klass_name} < ActiveRecord::Migration[5.2]
83
+ class Create#{klass_name} < ActiveRecord::Migration[6.0]
82
84
  def change
83
85
  create_table :#{resource} do |t|
84
86
 
@@ -29,7 +29,9 @@ module Starter
29
29
  # POST
30
30
  def post
31
31
  "
32
- desc 'create #{resource.singularize}'
32
+ desc 'create #{resource.singularize}' do
33
+ tags %w[#{resource.singularize}]
34
+ end
33
35
  params do
34
36
  # TODO: specify the parameters
35
37
  end
@@ -41,8 +43,10 @@ module Starter
41
43
  # GET
42
44
  def get_all
43
45
  "
44
- desc 'get all of #{resource.pluralize}',
45
- is_array: true
46
+ desc 'get all of #{resource.pluralize}' do
47
+ is_array true
48
+ tags %w[#{resource.singularize}]
49
+ end
46
50
  get do
47
51
  # your code goes here
48
52
  end"
@@ -51,7 +55,9 @@ module Starter
51
55
  %w[get put patch delete].each do |verb|
52
56
  define_method(:"#{verb}_one") do
53
57
  "
54
- desc '#{verb} #{resource.singularize}'
58
+ desc '#{verb} #{resource.singularize}' do
59
+ tags %w[#{resource.singularize}]
60
+ end
55
61
  #{verb} do
56
62
  # your code goes here
57
63
  end"
@@ -61,7 +67,9 @@ module Starter
61
67
  %w[get put patch delete].each do |verb|
62
68
  define_method(:"#{verb}_specific") do
63
69
  "
64
- desc '#{verb} specific #{resource.singularize}'
70
+ desc '#{verb} specific #{resource.singularize}' do
71
+ tags %w[#{resource.singularize}]
72
+ end
65
73
  params do
66
74
  requires :id
67
75
  end
@@ -36,6 +36,16 @@ module Starter
36
36
  end
37
37
 
38
38
  # LIB template for resource
39
+ def base_namespace_file
40
+ <<-FILE.strip_heredoc
41
+ # frozen_string_literal: true
42
+
43
+ module #{klass_name}
44
+ VERSION = '0.1.0'
45
+ end
46
+ FILE
47
+ end
48
+
39
49
  def lib_file
40
50
  <<-FILE.strip_heredoc
41
51
  # frozen_string_literal: true
@@ -83,7 +83,7 @@ module Starter
83
83
  <<-FILE.strip_heredoc
84
84
  # DB stack
85
85
  gem 'sequel'
86
- gem 'sqlite3'
86
+ gem 'pg'
87
87
  FILE
88
88
  end
89
89
 
@@ -52,16 +52,14 @@ module Starter
52
52
  def build_path(route)
53
53
  path = route.path
54
54
 
55
- path.sub!(/\(\.\w+?\)$/, '')
56
- path.sub!('(.:format)', '')
55
+ path = path.sub(/\(\.\w+?\)$/, '')
56
+ path = path.sub('(.:format)', '')
57
57
 
58
58
  if route.version
59
- path.sub!(':version', route.version.to_s)
59
+ path.sub(':version', route.version.to_s)
60
60
  else
61
- path.sub!('/:version', '')
61
+ path.sub('/:version', '')
62
62
  end
63
-
64
- path
65
63
  end
66
64
 
67
65
  def app
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Starter
4
- VERSION = '1.2.1'
4
+ VERSION = '1.2.6'
5
5
  end
@@ -1,5 +1,3 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
1
  AllCops:
4
2
  Exclude:
5
3
  - '**/tmp/**/*'
@@ -7,16 +5,100 @@ AllCops:
7
5
  - Rakefile
8
6
  - Gemfile
9
7
  UseCache: true
10
- TargetRubyVersion: 2.6
8
+ TargetRubyVersion: 2.7
11
9
 
12
- Metrics/LineLength:
10
+ Layout/LineLength:
13
11
  Max: 120
14
12
 
15
13
  Metrics/AbcSize:
16
14
  Max: 20
17
15
 
16
+ Metrics/BlockLength:
17
+ Exclude:
18
+ - 'api/endpoints/**/*'
18
19
  Metrics/MethodLength:
19
20
  Max: 20
20
21
 
21
22
  Style/AsciiComments:
22
23
  Enabled: false
24
+
25
+ Style/Documentation:
26
+ Enabled: false
27
+
28
+ # introduced in 0.88
29
+ Layout/EmptyLinesAroundAttributeAccessor:
30
+ Enabled: true
31
+ Layout/SpaceAroundMethodCallOperator:
32
+ Enabled: true
33
+ Lint/DeprecatedOpenSSLConstant:
34
+ Enabled: true
35
+ Lint/MixedRegexpCaptureTypes:
36
+ Enabled: true
37
+ Lint/RaiseException:
38
+ Enabled: true
39
+ Lint/StructNewOverride:
40
+ Enabled: true
41
+ Style/ExponentialNotation:
42
+ Enabled: true
43
+ Style/HashEachMethods:
44
+ Enabled: true
45
+ Style/HashTransformKeys:
46
+ Enabled: true
47
+ Style/HashTransformValues:
48
+ Enabled: true
49
+ Style/RedundantFetchBlock:
50
+ Enabled: true
51
+ Style/RedundantRegexpCharacterClass:
52
+ Enabled: true
53
+ Style/RedundantRegexpEscape:
54
+ Enabled: true
55
+ Style/SlicingWithRange:
56
+ Enabled: true
57
+
58
+ # introduced in 0.89
59
+ Lint/BinaryOperatorWithIdenticalOperands:
60
+ Enabled: true
61
+ Lint/DuplicateElsifCondition:
62
+ Enabled: true
63
+ Lint/DuplicateRescueException:
64
+ Enabled: true
65
+ Lint/EmptyConditionalBody:
66
+ Enabled: true
67
+ Lint/FloatComparison:
68
+ Enabled: true
69
+ Lint/MissingSuper:
70
+ Enabled: true
71
+ Lint/OutOfRangeRegexpRef:
72
+ Enabled: true
73
+ Lint/SelfAssignment:
74
+ Enabled: true
75
+ Lint/TopLevelReturnWithArgument:
76
+ Enabled: true
77
+ Lint/UnreachableLoop:
78
+ Enabled: true
79
+ Style/AccessorGrouping:
80
+ Enabled: false
81
+ Style/ArrayCoercion:
82
+ Enabled: true
83
+ Style/BisectedAttrAccessor:
84
+ Enabled: true
85
+ Style/CaseLikeIf:
86
+ Enabled: true
87
+ Style/ExplicitBlockArgument:
88
+ Enabled: true
89
+ Style/GlobalStdStream:
90
+ Enabled: true
91
+ Style/HashAsLastArrayItem:
92
+ Enabled: true
93
+ Style/HashLikeCase:
94
+ Enabled: true
95
+ Style/OptionalBooleanParameter:
96
+ Enabled: true
97
+ Style/RedundantAssignment:
98
+ Enabled: true
99
+ Style/RedundantFileExtensionInRequire:
100
+ Enabled: true
101
+ Style/SingleArgumentDig:
102
+ Enabled: true
103
+ Style/StringConcatenation:
104
+ Enabled: true
@@ -20,5 +20,5 @@ group :development, :test do
20
20
  gem 'rack-test'
21
21
  gem 'rake'
22
22
  gem 'rspec'
23
- gem 'rubocop', '~> 0.65'
23
+ gem 'rubocop', '~> 0.88'
24
24
  end
@@ -6,9 +6,10 @@ module Api
6
6
  module Endpoints
7
7
  class Root < Grape::API
8
8
  namespace :root do
9
- desc 'Exposes all routes',
10
- success: Entities::Route,
11
- is_array: true
9
+ desc 'Exposes all routes' do
10
+ success Entities::Route
11
+ is_array true
12
+ end
12
13
  get do
13
14
  api_routes = Starter::Rake::GrapeTasks.new(::Api::Base).api_routes
14
15
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  require 'rack/cors'
4
- require_relative 'config/environment'
4
+ require_relative 'config/application'
5
5
 
6
6
  use Rack::CommonLogger
7
7
 
@@ -9,18 +9,18 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
9
9
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'api'))
10
10
  $LOAD_PATH.unshift(File.dirname(__FILE__))
11
11
 
12
- Dir[File.expand_path('../config/initializers/*.rb', __dir__)].each do |initializer|
12
+ Dir[File.expand_path('../config/initializers/*.rb', __dir__)].sort.each do |initializer|
13
13
  require initializer
14
14
  end
15
15
 
16
- Dir[File.expand_path('../lib/**/*.rb', __dir__)].each do |lib|
16
+ Dir[File.expand_path('../lib/**/*.rb', __dir__)].sort.each do |lib|
17
17
  require lib
18
18
  end
19
19
 
20
- Dir[File.expand_path('../api/entities/*.rb', __dir__)].each do |entity|
20
+ Dir[File.expand_path('../api/entities/*.rb', __dir__)].sort.each do |entity|
21
21
  require entity
22
22
  end
23
23
 
24
- Dir[File.expand_path('../api/endpoints/*.rb', __dir__)].each do |endpoint|
24
+ Dir[File.expand_path('../api/endpoints/*.rb', __dir__)].sort.each do |endpoint|
25
25
  require endpoint
26
26
  end
File without changes
@@ -6,8 +6,7 @@ require 'rack/test'
6
6
  require File.expand_path('../config/application', __dir__)
7
7
 
8
8
  grape_starter_gem = Gem::Specification.find_by_name('grape-starter').gem_dir
9
-
10
- Dir[grape_starter_gem + '/lib/starter/rspec/**/*.rb'].each { |f| require f }
9
+ Dir["#{grape_starter_gem}/lib/starter/rspec/**/*.rb"].sort.each { |f| require f }
11
10
 
12
11
  RSpec.configure do |config|
13
12
  include Rack::Test::Methods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-starter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - LeFnord
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-24 00:00:00.000000000 Z
11
+ date: 2020-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.18'
19
+ version: '2.19'
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: '2.18'
26
+ version: '2.19'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5'
33
+ version: '6.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5'
40
+ version: '6.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.64'
47
+ version: '0.89'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.64'
54
+ version: '0.89'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: awesome_print
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.7'
61
+ version: '1.8'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.7'
68
+ version: '1.8'
69
69
  description: CLI to create a API skeleton based on Grape and Rack
70
70
  email:
71
71
  - pscholz.le@gmail.com
@@ -74,6 +74,8 @@ executables:
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".github/dependabot.yml"
78
+ - ".github/workflows/ruby.yml"
77
79
  - ".gitignore"
78
80
  - ".inch.yml"
79
81
  - ".rspec"
@@ -104,7 +106,6 @@ files:
104
106
  - lib/starter/version.rb
105
107
  - template/.gitignore
106
108
  - template/.rubocop.yml
107
- - template/.rubocop_todo.yml
108
109
  - template/Dockerfile
109
110
  - template/Gemfile
110
111
  - template/LICENSE
@@ -128,7 +129,7 @@ files:
128
129
  - template/script/stop
129
130
  - template/script/test
130
131
  - template/script/update
131
- - template/spec/lib/models/version_spec.rb
132
+ - template/spec/lib/models/.keep
132
133
  - template/spec/requests/documentation_spec.rb
133
134
  - template/spec/requests/root_spec.rb
134
135
  - template/spec/spec_helper.rb
@@ -136,7 +137,7 @@ homepage: https://github.com/LeFnord/grape-starter
136
137
  licenses:
137
138
  - MIT
138
139
  metadata: {}
139
- post_install_message:
140
+ post_install_message:
140
141
  rdoc_options: []
141
142
  require_paths:
142
143
  - lib
@@ -144,15 +145,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
145
  requirements:
145
146
  - - ">="
146
147
  - !ruby/object:Gem::Version
147
- version: '2.4'
148
+ version: '2.5'
148
149
  required_rubygems_version: !ruby/object:Gem::Requirement
149
150
  requirements:
150
151
  - - ">="
151
152
  - !ruby/object:Gem::Version
152
153
  version: '0'
153
154
  requirements: []
154
- rubygems_version: 3.0.2
155
- signing_key:
155
+ rubygems_version: 3.1.4
156
+ signing_key:
156
157
  specification_version: 4
157
158
  summary: Creates a Grape Rack skeleton
158
159
  test_files: []
@@ -1,18 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2016-10-18 20:40:59 +0200 using RuboCop version 0.44.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
11
- # URISchemes: http, https
12
-
13
- # Offense count: 6
14
- Style/Documentation:
15
- Exclude:
16
- - 'spec/**/*'
17
- - 'api/**/*'
18
- - 'lib/**/*'
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Models do
6
- it 'has a version number' do
7
- expect(Models::VERSION).not_to be nil
8
- end
9
- end