rails-formation 0.0.0.6 → 0.0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rails-formation/version.rb +1 -1
- data/lib/rails_formation.rb +16 -85
- data/rails-formation.gemspec +0 -3
- metadata +2 -64
- data/lib/rails-formation/formatters/controller.rb +0 -42
- data/lib/rails-formation/formatters/factories/column.rb +0 -63
- data/lib/rails-formation/formatters/factories/default_value.rb +0 -27
- data/lib/rails-formation/formatters/factories/value.rb +0 -78
- data/lib/rails-formation/formatters/factory.rb +0 -38
- data/lib/rails-formation/formatters/migration.rb +0 -56
- data/lib/rails-formation/formatters/migrations/column.rb +0 -33
- data/lib/rails-formation/formatters/migrations/index.rb +0 -30
- data/lib/rails-formation/formatters/migrations/options.rb +0 -19
- data/lib/rails-formation/formatters/model.rb +0 -49
- data/lib/rails-formation/formatters/models/association.rb +0 -37
- data/lib/rails-formation/formatters/models/validation.rb +0 -41
- data/lib/rails-formation/formatters/models/validations/base.rb +0 -62
- data/lib/rails-formation/formatters/models/validations/comparsion.rb +0 -31
- data/lib/rails-formation/formatters/models/validations/confirmation.rb +0 -19
- data/lib/rails-formation/formatters/models/validations/exclusion.rb +0 -25
- data/lib/rails-formation/formatters/models/validations/format.rb +0 -31
- data/lib/rails-formation/formatters/models/validations/inclusion.rb +0 -25
- data/lib/rails-formation/formatters/models/validations/length.rb +0 -58
- data/lib/rails-formation/formatters/models/validations/numericality.rb +0 -59
- data/lib/rails-formation/formatters/models/validations/presence.rb +0 -19
- data/lib/rails-formation/formatters/models/validations/uniqueness.rb +0 -58
- data/lib/rails-formation/formatters/route.rb +0 -28
- data/lib/rails-formation/formatters/routes/resource.rb +0 -73
- data/lib/rails-formation/formatters/rubygem.rb +0 -24
- data/lib/rails-formation/formatters/rubygems/gem.rb +0 -56
- data/lib/rails-formation/formatters/seed.rb +0 -30
- data/lib/rails-formation/formatters/seeds/row.rb +0 -19
- data/lib/rails-formation/templates/controller.rb.tt +0 -20
- data/lib/rails-formation/templates/factory.rb.tt +0 -10
- data/lib/rails-formation/templates/migration.rb.tt +0 -16
- data/lib/rails-formation/templates/model.rb.tt +0 -12
- data/lib/rails-formation/templates/routes.rb.tt +0 -24
- data/lib/rails-formation/templates/seeds.rb.tt +0 -3
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
class Association
|
7
|
-
def initialize(config)
|
8
|
-
@config = config
|
9
|
-
end
|
10
|
-
|
11
|
-
def to_s
|
12
|
-
base_def = "#{relation} :#{destination}"
|
13
|
-
|
14
|
-
return base_def if options.size.zero?
|
15
|
-
|
16
|
-
options_def = options.map { |option| option.values.join(': ') }.join(', ')
|
17
|
-
|
18
|
-
"#{base_def}, #{options_def}"
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def relation
|
24
|
-
@config.fetch('type')
|
25
|
-
end
|
26
|
-
|
27
|
-
def destination
|
28
|
-
@config.fetch('destination')
|
29
|
-
end
|
30
|
-
|
31
|
-
def options
|
32
|
-
@config.fetch('options', [])
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'validations/base'
|
4
|
-
require_relative 'validations/presence'
|
5
|
-
require_relative 'validations/uniqueness'
|
6
|
-
require_relative 'validations/length'
|
7
|
-
require_relative 'validations/inclusion'
|
8
|
-
require_relative 'validations/exclusion'
|
9
|
-
require_relative 'validations/confirmation'
|
10
|
-
require_relative 'validations/format'
|
11
|
-
require_relative 'validations/numericality'
|
12
|
-
require_relative 'validations/comparsion'
|
13
|
-
|
14
|
-
module RailsFormation
|
15
|
-
module Formatters
|
16
|
-
module Models
|
17
|
-
class Validation
|
18
|
-
MAPPINGS = {
|
19
|
-
'presence' => ::RailsFormation::Formatters::Models::Validations::Presence,
|
20
|
-
'uniqueness' => ::RailsFormation::Formatters::Models::Validations::Uniqueness,
|
21
|
-
'length' => ::RailsFormation::Formatters::Models::Validations::Length,
|
22
|
-
'inclusion' => ::RailsFormation::Formatters::Models::Validations::Inclusion,
|
23
|
-
'exclusion' => ::RailsFormation::Formatters::Models::Validations::Exclusion,
|
24
|
-
'confirmation' => ::RailsFormation::Formatters::Models::Validations::Confirmation,
|
25
|
-
'format' => ::RailsFormation::Formatters::Models::Validations::Format,
|
26
|
-
'numericality' => ::RailsFormation::Formatters::Models::Validations::Numericality,
|
27
|
-
'comparsion' => ::RailsFormation::Formatters::Models::Validations::Comparsion
|
28
|
-
}.freeze
|
29
|
-
|
30
|
-
def initialize(config)
|
31
|
-
@config = config
|
32
|
-
end
|
33
|
-
|
34
|
-
def to_s
|
35
|
-
klass = MAPPINGS[@config.fetch('name')]
|
36
|
-
klass.new(@config).to_s
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Base
|
8
|
-
def initialize(config)
|
9
|
-
@config = config
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def allow_blank_option
|
15
|
-
return unless @config.fetch('allow_blank')
|
16
|
-
|
17
|
-
'allow_blank: true'
|
18
|
-
end
|
19
|
-
|
20
|
-
def allow_nil_option
|
21
|
-
return unless @config.fetch('allow_nil')
|
22
|
-
|
23
|
-
'allow_nil: true'
|
24
|
-
end
|
25
|
-
|
26
|
-
def message_option
|
27
|
-
return if @config.fetch('message').nil? || @config.fetch('message').empty?
|
28
|
-
|
29
|
-
"message: '#{@config.fetch('message')}'"
|
30
|
-
end
|
31
|
-
|
32
|
-
def on_option
|
33
|
-
return if @config.fetch('on_create') && @config.fetch('on_update')
|
34
|
-
|
35
|
-
if @config.fetch('on_create')
|
36
|
-
'on: :create'
|
37
|
-
elsif @config.fetch('on_update')
|
38
|
-
'on: :update'
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def column_name
|
43
|
-
@config.fetch('column')
|
44
|
-
end
|
45
|
-
|
46
|
-
def base_options
|
47
|
-
[
|
48
|
-
allow_blank_option,
|
49
|
-
allow_nil_option,
|
50
|
-
message_option,
|
51
|
-
on_option
|
52
|
-
].compact
|
53
|
-
end
|
54
|
-
|
55
|
-
def validation_options
|
56
|
-
@config.fetch('options', {})
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Comparsion < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, comparsion: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
value = if validation_options['comparsion_value_type'] == 'column_value'
|
20
|
-
":#{validation_options['comparsion_value']}"
|
21
|
-
else
|
22
|
-
validation_options['comparsion_value']
|
23
|
-
end
|
24
|
-
|
25
|
-
["#{validation_options['comparsion_operator']}: #{value}"]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Confirmation < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
if base_options.any?
|
10
|
-
"validates :#{column_name}, confirmation: { #{base_options.join(', ')} }"
|
11
|
-
else
|
12
|
-
"validates :#{column_name}, confirmation: true"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Exclusion < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, exclusion: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
["in: #{validation_options['in']}"]
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Format < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, format: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
options = []
|
20
|
-
|
21
|
-
options << "with: #{validation_options['format_value']}" if validation_options['format_matcher'] == 'with'
|
22
|
-
|
23
|
-
options << "without: #{validation_options['format_value']}" if validation_options['format_matcher'] == 'without'
|
24
|
-
|
25
|
-
options
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Inclusion < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, inclusion: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
["in: #{validation_options['in']}"]
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Length < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, length: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
options = []
|
20
|
-
|
21
|
-
options << "is: #{validation_options['length_value']}" if exact_length?
|
22
|
-
|
23
|
-
options << "minimum: #{validation_options['length_min_value']}" if min_length?
|
24
|
-
|
25
|
-
options << "maximum: #{validation_options['length_max_value']}" if max_length?
|
26
|
-
|
27
|
-
options << "in: #{validation_options['length_min_value']}..#{validation_options['length_max_value']}" if range_length?
|
28
|
-
|
29
|
-
options
|
30
|
-
end
|
31
|
-
|
32
|
-
def exact_length?
|
33
|
-
validation_options['length_operator_type'] == 'value' &&
|
34
|
-
!validation_options['length_value'].nil?
|
35
|
-
end
|
36
|
-
|
37
|
-
def min_length?
|
38
|
-
validation_options['length_operator_type'] == 'range' &&
|
39
|
-
validation_options['length_max_value'].to_i.zero? &&
|
40
|
-
validation_options['length_min_value'].to_i.positive?
|
41
|
-
end
|
42
|
-
|
43
|
-
def max_length?
|
44
|
-
validation_options['length_operator_type'] == 'range' &&
|
45
|
-
validation_options['length_min_value'].to_i.zero? &&
|
46
|
-
validation_options['length_max_value'].to_i.positive?
|
47
|
-
end
|
48
|
-
|
49
|
-
def range_length?
|
50
|
-
validation_options['length_operator_type'] == 'range' &&
|
51
|
-
validation_options['length_min_value'].to_i.positive? &&
|
52
|
-
validation_options['length_max_value'].to_i.positive?
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Numericality < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
"validates :#{column_name}, numericality: { #{extra_options.join(', ')} }"
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def extra_options
|
15
|
-
base_options | extra_validation_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def extra_validation_options
|
19
|
-
options = []
|
20
|
-
|
21
|
-
if validation_options['numericality_operator'] == 'greater_than'
|
22
|
-
options << "greater_than: #{validation_options['numericality_value']}"
|
23
|
-
end
|
24
|
-
|
25
|
-
options << 'only_integer: true' if validation_options['numericality_operator'] == 'only_integer'
|
26
|
-
|
27
|
-
if validation_options['numericality_operator'] == 'greater_than_or_equal_to'
|
28
|
-
options << "greater_than_or_equal_to: #{validation_options['numericality_value']}"
|
29
|
-
end
|
30
|
-
|
31
|
-
if validation_options['numericality_operator'] == 'equal_to'
|
32
|
-
options << "equal_to: #{validation_options['numericality_value']}"
|
33
|
-
end
|
34
|
-
|
35
|
-
if validation_options['numericality_operator'] == 'less_than'
|
36
|
-
options << "less_than: #{validation_options['numericality_value']}"
|
37
|
-
end
|
38
|
-
|
39
|
-
if validation_options['numericality_operator'] == 'less_than_or_equal_to'
|
40
|
-
options << "less_than_or_equal_to: #{validation_options['numericality_value']}"
|
41
|
-
end
|
42
|
-
|
43
|
-
if validation_options['numericality_operator'] == 'other_than'
|
44
|
-
options << "other_than: #{validation_options['numericality_value']}"
|
45
|
-
end
|
46
|
-
|
47
|
-
options << "in: #{validation_options['numericality_value']}" if validation_options['numericality_operator'] == 'in'
|
48
|
-
|
49
|
-
options << 'odd: true' if validation_options['numericality_operator'] == 'odd'
|
50
|
-
|
51
|
-
options << 'even: true' if validation_options['numericality_operator'] == 'even'
|
52
|
-
|
53
|
-
options
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Presence < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
if base_options.any?
|
10
|
-
"validates :#{column_name}, presence: { #{base_options.join(', ')} }"
|
11
|
-
else
|
12
|
-
"validates :#{column_name}, presence: true"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Models
|
6
|
-
module Validations
|
7
|
-
class Uniqueness < RailsFormation::Formatters::Models::Validations::Base
|
8
|
-
def to_s
|
9
|
-
if extra_options.any?
|
10
|
-
"validates :#{column_name}, uniqueness: { #{extra_options.join(', ')} }"
|
11
|
-
else
|
12
|
-
"validates :#{column_name}, uniqueness: true"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def extra_options
|
19
|
-
base_options | extra_validation_options
|
20
|
-
end
|
21
|
-
|
22
|
-
def extra_validation_options
|
23
|
-
options = []
|
24
|
-
|
25
|
-
options << 'case_sensitive: false' unless case_sensitive?
|
26
|
-
|
27
|
-
options << scope unless blank_scope?
|
28
|
-
|
29
|
-
options
|
30
|
-
end
|
31
|
-
|
32
|
-
def case_sensitive?
|
33
|
-
validation_options['uniqueness_case_sensitive'].to_i == 1
|
34
|
-
end
|
35
|
-
|
36
|
-
def blank_scope?
|
37
|
-
validation_options['uniqueness_scope'].nil? ||
|
38
|
-
validation_options['uniqueness_scope'].reject(&:empty?).size.zero?
|
39
|
-
end
|
40
|
-
|
41
|
-
def scope
|
42
|
-
return [] if validation_options['uniqueness_scope'].nil?
|
43
|
-
|
44
|
-
sanitized_scope = validation_options['uniqueness_scope'].reject(&:empty?)
|
45
|
-
|
46
|
-
return [] if sanitized_scope.size.zero?
|
47
|
-
|
48
|
-
if sanitized_scope.size == 1
|
49
|
-
"scope: :#{sanitized_scope.first}"
|
50
|
-
else
|
51
|
-
"scope: [#{sanitized_scope.map { |s| ":#{s}" }.join(', ')}]"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'routes/resource'
|
4
|
-
|
5
|
-
module RailsFormation
|
6
|
-
module Formatters
|
7
|
-
class Route < Thor::Group
|
8
|
-
include Thor::Actions
|
9
|
-
|
10
|
-
argument :routes_configuration
|
11
|
-
argument :routes_path
|
12
|
-
|
13
|
-
def insert_routes
|
14
|
-
template('../templates/routes.rb.tt', routes_path)
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.source_root
|
18
|
-
__dir__
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def resources
|
24
|
-
routes_configuration.map { |config| ::RailsFormation::Formatters::Routes::Resource.new(config) }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Routes
|
6
|
-
class Resource
|
7
|
-
def initialize(config)
|
8
|
-
@config = config
|
9
|
-
end
|
10
|
-
|
11
|
-
def start_line
|
12
|
-
if actions_line.nil?
|
13
|
-
"resources :#{resource_name}"
|
14
|
-
else
|
15
|
-
"resources :#{resource_name}, #{actions_line}"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def additional_routes
|
20
|
-
mappings = {}
|
21
|
-
|
22
|
-
mappings['member'] = member_routes.map(&method(:build_route)) if member_routes.size.positive?
|
23
|
-
|
24
|
-
mappings['collection'] = collection_routes.map(&method(:build_route)) if collection_routes.size.positive?
|
25
|
-
|
26
|
-
mappings
|
27
|
-
end
|
28
|
-
|
29
|
-
def create_block?
|
30
|
-
member_routes.size.positive? || collection_routes.size.positive?
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def build_route(route)
|
36
|
-
"#{route['request']} :#{route['action']}"
|
37
|
-
end
|
38
|
-
|
39
|
-
def actions_line
|
40
|
-
return if actions.size == default_actions.size
|
41
|
-
|
42
|
-
if actions.size > 3
|
43
|
-
except_actions = (default_actions - actions).map { |action| ":#{action}" }
|
44
|
-
"except: [#{except_actions.join(', ')}]"
|
45
|
-
else
|
46
|
-
only_actions = actions.map { |action| ":#{action}" }
|
47
|
-
"only: [#{only_actions.join(', ')}]"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def resource_name
|
52
|
-
@config.fetch('resource')
|
53
|
-
end
|
54
|
-
|
55
|
-
def actions
|
56
|
-
@config.fetch('restful_actions')
|
57
|
-
end
|
58
|
-
|
59
|
-
def default_actions
|
60
|
-
%w[index show new create edit update destroy]
|
61
|
-
end
|
62
|
-
|
63
|
-
def member_routes
|
64
|
-
@config.fetch('additional_routes').fetch('member', [])
|
65
|
-
end
|
66
|
-
|
67
|
-
def collection_routes
|
68
|
-
@config.fetch('additional_routes').fetch('collection', [])
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'rubygems/gem'
|
4
|
-
|
5
|
-
module RailsFormation
|
6
|
-
module Formatters
|
7
|
-
class Rubygem < Thor::Group
|
8
|
-
include Thor::Actions
|
9
|
-
|
10
|
-
argument :gem
|
11
|
-
argument :gemfile_path
|
12
|
-
|
13
|
-
def apply_to_gemfile
|
14
|
-
gem_definition = ::RailsFormation::Formatters::Rubygems::Gem.new(gem, gemfile_path)
|
15
|
-
|
16
|
-
insert_into_file gemfile_path, gem_definition.to_s, gem_definition.options
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.source_root
|
20
|
-
__dir__
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsFormation
|
4
|
-
module Formatters
|
5
|
-
module Rubygems
|
6
|
-
class Gem
|
7
|
-
def initialize(config, gemfile_path)
|
8
|
-
@config = config
|
9
|
-
@gemfile_path = gemfile_path
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_s
|
13
|
-
if create_group?
|
14
|
-
"#{groups_def} #{base_definition}end"
|
15
|
-
elsif insert_after?
|
16
|
-
" #{base_definition}"
|
17
|
-
else
|
18
|
-
base_definition
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def insert_after?
|
23
|
-
!groups_def.nil?
|
24
|
-
end
|
25
|
-
|
26
|
-
def options
|
27
|
-
if !create_group? && insert_after?
|
28
|
-
{ after: groups_def }
|
29
|
-
else
|
30
|
-
{}
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def base_definition
|
37
|
-
"gem '#{@config['name']}', '#{@config['version']}'\n"
|
38
|
-
end
|
39
|
-
|
40
|
-
def create_group?
|
41
|
-
return false if groups_def.nil?
|
42
|
-
|
43
|
-
!File.read(@gemfile_path).include?(groups_def.gsub("\n", ''))
|
44
|
-
end
|
45
|
-
|
46
|
-
def groups_def
|
47
|
-
return if @config.fetch('groups', []).size.zero?
|
48
|
-
|
49
|
-
groups_def = @config['groups'].map { |name| ":#{name}" }.join(', ')
|
50
|
-
|
51
|
-
"group #{groups_def} do\n"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'seeds/row'
|
4
|
-
|
5
|
-
module RailsFormation
|
6
|
-
module Formatters
|
7
|
-
class Seed < Thor::Group
|
8
|
-
include Thor::Actions
|
9
|
-
|
10
|
-
argument :seeds_configuration
|
11
|
-
argument :seeds_path
|
12
|
-
|
13
|
-
def update_seeds
|
14
|
-
template('../templates/seeds.rb.tt', seeds_path)
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.source_root
|
18
|
-
__dir__
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def seeds
|
24
|
-
seeds_configuration.map do |config|
|
25
|
-
RailsFormation::Formatters::Seeds::Row.new(config).to_s
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|