grape-starter 1.6.1 → 1.6.2

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: 3f03aba0838fc7a1877d9628a5a0fcdd3a29eb16836c9c41b29950814c7e5e6b
4
- data.tar.gz: 64b0c86ecdcca53c866f275be224efe3937eb02dca2f299e4c7d416804c2a511
3
+ metadata.gz: a0e8dbdcdf0bc8ec707834a2a55a2c36826c316d82a45f7f8c219e1ec4361f37
4
+ data.tar.gz: 21d235ca4a99f447965c8cf9a765bfaabca150f74a493ee332fb60aa137ce7fd
5
5
  SHA512:
6
- metadata.gz: 68c307c7b2d86729422ff90cdde27b6a46a77c52a37b8759cbe885e6e3fa547bb7e07b04c48473cc7e7591ffc77fe8a705d7c85193f6f10f93e22d9749f3baf6
7
- data.tar.gz: 78dbcdbf71393a23687be2703ac207a13ad617c04148e0813e2a49df7e3241f8a1f6d32ba3c9b3dd4865e826ee358c242c9310da424a6e32b2e7b14697f91bf2
6
+ metadata.gz: c54cbaf4ce481b619e621c733a6b16bd1582761a297e4380de381773c837d3a0894a472f6e45bf451ad702fa5ca8fe1d0abcf8c067f31844d5eb75532cfec7cf
7
+ data.tar.gz: df826306d1964ed1f2a58f87353cfb03b6f86bb084b0cb70e14639b04748d18986e5d971be420efb12919b82a28042cf8e1147e0c938eb5a52c0ef4ed44694ae
@@ -34,5 +34,7 @@ jobs:
34
34
  with:
35
35
  ruby-version: ${{ matrix.ruby-version }}
36
36
  bundler-cache: true
37
+ - name: create tmp dir
38
+ run: mkdir tmp
37
39
  - name: Run rspec
38
40
  run: bundle exec rspec
data/lib/starter/build.rb CHANGED
@@ -2,13 +2,14 @@
2
2
 
3
3
  module Starter
4
4
  class Build
5
- extend Builder::Names
6
5
  extend Builder::BaseFile
7
6
  extend Templates::Files
8
7
  extend Templates::Endpoints
9
8
 
10
9
  class << self
11
- attr_reader :prefix, :resource, :set, :force, :entity, :destination, :orm
10
+ attr_reader :prefix, :resource, :entity,
11
+ :set, :force, :destination, :orm,
12
+ :naming
12
13
 
13
14
  #
14
15
  # public methods
@@ -27,6 +28,7 @@ module Starter
27
28
  @resource = name
28
29
  @destination = destination
29
30
  @prefix = options[:p] # can be nil
31
+ @naming = Starter::Builder::Names.new(@resource)
30
32
 
31
33
  FileUtils.copy_entry source, destination
32
34
 
@@ -62,8 +64,9 @@ module Starter
62
64
  @force = options[:force]
63
65
  @entity = options[:entity]
64
66
  @orm = options[:orm]
67
+ @naming = Starter::Builder::Names.new(@resource)
65
68
 
66
- Orms.add_migration(klass_name, resource.downcase) if @orm
69
+ Orms.add_migration(@naming.klass_name, resource.downcase) if @orm
67
70
  save_resource
68
71
  end
69
72
 
@@ -112,7 +115,7 @@ module Starter
112
115
  #
113
116
  # creates a new file in lib folder as namespace, includind the version
114
117
  def add_namespace_with_version
115
- new_lib = File.join(destination, 'lib', base_file_name)
118
+ new_lib = File.join(destination, 'lib', @naming.base_file_name)
116
119
  FileOps.write_file(new_lib, base_namespace_file.strip_heredoc)
117
120
  end
118
121
 
@@ -128,7 +131,7 @@ module Starter
128
131
  #
129
132
  # provides an array of endpoints for the new resource
130
133
  def endpoint_set
131
- crud_set = singular? ? singular_one : crud
134
+ crud_set = @naming.singular? ? singular_one : crud
132
135
  return crud_set if set.blank?
133
136
 
134
137
  crud_set.each_with_object([]) { |x, memo| set.map { |y| memo << x if x.to_s.start_with?(y) } }
@@ -138,7 +141,7 @@ module Starter
138
141
  # saves all resource related files
139
142
  def save_resource
140
143
  created_files = file_list.each_with_object([]) do |new_file, memo|
141
- memo << send("#{new_file}_name")
144
+ memo << @naming.send("#{new_file}_name")
142
145
  save_file(new_file)
143
146
  end
144
147
 
@@ -150,7 +153,7 @@ module Starter
150
153
  #
151
154
  # saves new resource files
152
155
  def save_file(new_file)
153
- new_file_name = send("#{new_file}_name")
156
+ new_file_name = @naming.send("#{new_file}_name")
154
157
  should_raise?(new_file_name)
155
158
  FileOps.write_file(new_file_name, send(new_file.strip_heredoc))
156
159
  end
@@ -5,24 +5,24 @@ module Starter
5
5
  module BaseFile
6
6
  # add it in api base
7
7
  def add_mount_point
8
- FileOps.call!(api_base_file_name) { |content| add_to_base(content) }
8
+ FileOps.call!(@naming.api_base_file_name) { |content| add_to_base(content) }
9
9
  end
10
10
 
11
11
  # adding mount point to base class
12
12
  def add_to_base(file)
13
13
  occurence = file.scan(/(\s+mount\s.*?\n)/).last.first
14
- replacement = occurence + mount_point
14
+ replacement = occurence + @naming.mount_point
15
15
  file.sub!(occurence, replacement)
16
16
  end
17
17
 
18
18
  # removes in api base
19
19
  def remove_mount_point
20
- FileOps.call!(api_base_file_name) { |content| remove_from_base(content) }
20
+ FileOps.call!(@naming.api_base_file_name) { |content| remove_from_base(content) }
21
21
  end
22
22
 
23
23
  # removes mount point from base class
24
24
  def remove_from_base(file)
25
- file.sub!(mount_point, '')
25
+ file.sub!(@naming.mount_point, '')
26
26
  end
27
27
 
28
28
  # parses out the prefix from base api file
@@ -2,51 +2,41 @@
2
2
 
3
3
  module Starter
4
4
  module Builder
5
- module Names
5
+ class Names
6
+ def initialize(resource)
7
+ @resource = resource
8
+ end
9
+
6
10
  def klass_name
7
11
  for_klass = prepare_klass
8
12
  singular? ? for_klass.classify : for_klass.classify.pluralize
9
13
  end
10
14
 
11
- def lib_klass_name
12
- return klass_name unless @orm
13
-
14
- case Starter::Config.read[:orm]
15
- when 'sequel'
16
- extend(Starter::Builder::Sequel)
17
- "#{klass_name} < #{model_klass}"
18
- when 'activerecord', 'ar'
19
- extend(Starter::Builder::ActiveRecord)
20
- "#{klass_name} < #{model_klass}"
21
- else
22
- klass_name
23
- end
24
- end
25
-
26
15
  # rubocop:disable Style/StringConcatenation
27
16
  def base_file_name
28
17
  @resource.tr('/', '-').downcase + '.rb'
29
18
  end
30
19
  # rubocop:enable Style/StringConcatenation
31
20
 
21
+ def api_base_file_name
22
+ File.join(Dir.getwd, 'api', 'base.rb')
23
+ end
24
+
32
25
  def base_spec_name
33
26
  base_file_name.gsub(/.rb$/, '_spec.rb')
34
27
  end
35
28
 
29
+ # entry in api/base.rb
36
30
  def mount_point
37
31
  " mount Endpoints::#{klass_name}\n"
38
32
  end
39
33
 
40
- def api_base_file_name
41
- File.join(Dir.getwd, 'api', 'base.rb')
42
- end
43
-
44
- # resource file
34
+ # endpoints file
45
35
  def api_file_name
46
36
  File.join(Dir.getwd, 'api', 'endpoints', base_file_name)
47
37
  end
48
38
 
49
- # resource file
39
+ # entities file
50
40
  def entity_file_name
51
41
  File.join(Dir.getwd, 'api', 'entities', base_file_name)
52
42
  end
@@ -56,6 +46,22 @@ module Starter
56
46
  File.join(Dir.getwd, 'lib', 'models', base_file_name)
57
47
  end
58
48
 
49
+ # model entry in lib file
50
+ def lib_klass_name
51
+ return klass_name unless @orm
52
+
53
+ case Starter::Config.read[:orm]
54
+ when 'sequel'
55
+ extend(Starter::Builder::Sequel)
56
+ "#{klass_name} < #{model_klass}"
57
+ when 'activerecord', 'ar'
58
+ extend(Starter::Builder::ActiveRecord)
59
+ "#{klass_name} < #{model_klass}"
60
+ else
61
+ klass_name
62
+ end
63
+ end
64
+
59
65
  # resource spec
60
66
  def api_spec_name
61
67
  File.join(Dir.getwd, 'spec', 'requests', base_spec_name)
@@ -66,15 +72,15 @@ module Starter
66
72
  File.join(Dir.getwd, 'spec', 'lib', 'models', base_spec_name)
67
73
  end
68
74
 
75
+ def singular?
76
+ @resource.singularize.inspect == @resource.inspect
77
+ end
78
+
69
79
  private
70
80
 
71
81
  def prepare_klass
72
82
  @resource.tr('-', '/')
73
83
  end
74
-
75
- def singular?
76
- @resource.singularize.inspect == @resource.inspect
77
- end
78
84
  end
79
85
  end
80
86
  end
@@ -10,7 +10,7 @@ module Starter
10
10
 
11
11
  module Api
12
12
  module Endpoints
13
- class #{klass_name} < Grape::API
13
+ class #{@naming.klass_name} < Grape::API
14
14
  namespace :#{resource.downcase} do
15
15
  #{endpoints}
16
16
  end
@@ -26,7 +26,7 @@ module Starter
26
26
 
27
27
  module Api
28
28
  module Entities
29
- class #{klass_name} < Grape::Entity
29
+ class #{@naming.klass_name} < Grape::Entity
30
30
  end
31
31
  end
32
32
  end
@@ -38,7 +38,7 @@ module Starter
38
38
  <<-FILE.strip_heredoc
39
39
  # frozen_string_literal: true
40
40
 
41
- module #{klass_name}
41
+ module #{@naming.klass_name}
42
42
  VERSION = '0.1.0'
43
43
  end
44
44
  FILE
@@ -49,7 +49,7 @@ module Starter
49
49
  # frozen_string_literal: true
50
50
 
51
51
  module Models
52
- class #{lib_klass_name}
52
+ class #{@naming.lib_klass_name}
53
53
  end
54
54
  end
55
55
  FILE
@@ -74,7 +74,7 @@ module Starter
74
74
 
75
75
  require 'spec_helper'
76
76
 
77
- RSpec.describe Models::#{klass_name} do
77
+ RSpec.describe Models::#{@naming.klass_name} do
78
78
  pending 'write specs'
79
79
  end
80
80
  FILE
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Starter
4
- VERSION = '1.6.1'
4
+ VERSION = '1.6.2'
5
5
  end
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.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - LeFnord
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-27 00:00:00.000000000 Z
11
+ date: 2023-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli