dry_generators_rails 0.2.0 → 0.3.0

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: 6593b9f69a17dd7af47bc3225caadcbf4b1b0ee51312a9159f744f8142d2683e
4
- data.tar.gz: 471f4f9f91415105b734325d733128a915c17acee89d8492d76ecf3841137a25
3
+ metadata.gz: af7577513c479773e534e928dc7ba205a53818a636f5692e807696aa2263e857
4
+ data.tar.gz: 2bec7b106755a418747897be94268e8478ab97acb69fff37f663f1ab77120a34
5
5
  SHA512:
6
- metadata.gz: 8f03ef6f6d013a19f718dd6d23d3c01bb154d648f0174f33d97e7f20865ffafa89ca6e2b092a7a8fa109ad9f45b43101a116c9f94b58636e063e69e3d83f0661
7
- data.tar.gz: b0665ad6d4ed5471d481ea7bddc09bd1e78076aaf53ca511c4df71a76e1fa6f6cb476f0642224e51743ce9284d5c37ca25352b77aa72e3120205761f105f9dfb
6
+ metadata.gz: aac0cd6e0ffb23ea275c99e9264cf5de0b0d77de5bbb3eb5790344c520feca62898c05fb05ab9f55fa4063b8573ed72c36d746ab28c66a7ecfdc5f15e692312c
7
+ data.tar.gz: 6d931f04ca9fc9cab5aed22cbd37d232161936f566ee14b44c946ec3cc5dd6285862251ff298a8c66dd45f41466fd0698f00deb40ef58ce6793c5cd513241dbb
@@ -1,3 +1,3 @@
1
1
  module DryGeneratorsRails
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -1,6 +1,12 @@
1
1
  module Dry
2
2
  module Generators
3
3
  class Base < Rails::Generators::NamedBase
4
+ DRY_PATH = File.join(Rails.root, 'app', 'dry').freeze
5
+ SPEC_PATH = File.join(Rails.root, 'spec', 'dry').freeze
6
+ TEST_PATH = File.join(Rails.root, 'test', 'dry').freeze
7
+
8
+ VALIDATIONS_PATH = File.join(DRY_PATH, 'validations').freeze
9
+ STRUCTS_PATH = File.join(DRY_PATH, 'structs').freeze
4
10
  end
5
11
  end
6
12
  end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Generates a dry-struct class.
3
+
4
+ Example:
5
+ rails generate struct Thing
6
+
7
+ This will create:
8
+ app/dry/structs/thing.rb
@@ -0,0 +1,39 @@
1
+ require 'generators/dry'
2
+
3
+ module Dry
4
+ module Generators
5
+ class StructGenerator < Base
6
+ source_root File.expand_path('templates', __dir__)
7
+
8
+ def check_requirements
9
+ raise 'NAME must be provided' unless file_name.present?
10
+ end
11
+
12
+ def set_instance_variables
13
+ @name = file_name.underscore
14
+ @class_name = "#{@name.camelize}"
15
+ end
16
+
17
+ def copy_struct
18
+ path = File.join(STRUCTS_PATH, "#{@name}.rb")
19
+ template 'struct_template.rb', path
20
+ end
21
+
22
+ def copy_spec
23
+ if Dir.exist? File.join(Rails.root, 'spec')
24
+ spec_path = File.join(SPEC_PATH, 'structs')
25
+ path = File.join(spec_path, "#{@name}_spec.rb")
26
+ template 'struct_spec_template.rb', path
27
+ end
28
+ end
29
+
30
+ def copy_test
31
+ if Dir.exist? File.join(Rails.root, 'test')
32
+ test_path = File.join(TEST_PATH, 'structs')
33
+ path = File.join(test_path, "#{@name}_test.rb")
34
+ template 'struct_test_template.rb', path
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,5 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.feature <%= @class_name %> do
4
+ pending "add some scenarios (or delete) #{__FILE__}"
5
+ end
@@ -0,0 +1,5 @@
1
+ module Structs
2
+ class <%= @class_name %> < Dry::Struct
3
+ # attribute :age, Types::Integer
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'test_helper'
2
+
3
+ class <%= "#{@class_name}Test" %> < Minitest::Test
4
+ # do something important here...
5
+ end
@@ -5,4 +5,4 @@ Example:
5
5
  rails generate validation Thing
6
6
 
7
7
  This will create:
8
- app/dry-validations/thing_validator.rb
8
+ app/dry/validations/thing.rb
@@ -1,5 +1,5 @@
1
- require 'rails_helper'
2
-
3
- RSpec.feature <%= file_name.camelize %> do
4
- pending "add some scenarios (or delete) #{__FILE__}"
5
- end
1
+ require 'rails_helper'
2
+
3
+ RSpec.feature Validations::<%= @class_name %> do
4
+ pending "add some scenarios (or delete) #{__FILE__}"
5
+ end
@@ -1,7 +1,9 @@
1
- class <%= file_name.camelize %> < Dry::Validation::Contract
2
- params do
3
- # required(:age).filled(:integer)
4
- end
1
+ module Validations
2
+ class <%= file_name.camelize %> < Dry::Validation::Contract
3
+ params do
4
+ # required(:age).filled(:integer)
5
+ end
5
6
 
6
- # rule(:age) { key.failure("must be greater than 18") if value < 18 }
7
+ # rule(:age) { key.failure("must be greater than 18") if value < 18 }
8
+ end
7
9
  end
@@ -1,5 +1,5 @@
1
- require 'test_helper'
2
-
3
- class <%= "#{file_name.camelize}Test" %> < Minitest::Test
4
- # do something important here...
5
- end
1
+ require 'test_helper'
2
+
3
+ class <%= "#{@class_name}Test" %> < Minitest::Test
4
+ # do something important here...
5
+ end
@@ -4,29 +4,34 @@ module Dry
4
4
  module Generators
5
5
  class ValidationGenerator < Base
6
6
  source_root File.expand_path('templates', __dir__)
7
- PATH = File.join(Rails.root, 'dry', 'validators').freeze
8
7
 
9
- def copy_validator
8
+ def check_requirements
10
9
  raise 'NAME must be provided' unless file_name.present?
11
- name = file_name.underscore
12
- template 'validation_template.rb', File.join(PATH, "#{name}_validator.rb")
10
+ end
11
+
12
+ def set_instance_variables
13
+ @name = file_name.underscore
14
+ @class_name = "#{@name.camelize}"
15
+ end
16
+
17
+ def copy_validator
18
+ path = File.join(VALIDATIONS_PATH, "#{@name}.rb")
19
+ template 'validation_template.rb', path
13
20
  end
14
21
 
15
22
  def copy_spec
16
23
  if Dir.exist? File.join(Rails.root, 'spec')
17
- name = file_name.underscore
18
- path = File.join(Rails.root, 'spec', 'dry', 'validators')
19
- spec_template = 'validation_spec_template.rb'
20
- template spec_template, File.join(path, "#{name}_validator_spec.rb")
24
+ spec_path = File.join(SPEC_PATH, 'validations')
25
+ path = File.join(spec_path, "#{@name}_spec.rb")
26
+ template 'validation_spec_template.rb', path
21
27
  end
22
28
  end
23
29
 
24
30
  def copy_test
25
31
  if Dir.exist? File.join(Rails.root, 'test')
26
- name = file_name.underscore
27
- path = File.join(Rails.root, 'test', 'dry', 'validators')
28
- test_template = 'validation_test_template.rb'
29
- template test_template, File.join(path, "#{name}_validator_test.rb")
32
+ test_path = File.join(TEST_PATH, 'validations')
33
+ path = File.join(test_path, "#{@name}_test.rb")
34
+ template 'validation_test_template.rb', path
30
35
  end
31
36
  end
32
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry_generators_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Turknett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-15 00:00:00.000000000 Z
11
+ date: 2020-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,6 +44,34 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: dry-validation
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: dry-struct
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
47
75
  description: Generate dry-rb classes for Rails applications
48
76
  email:
49
77
  - johnturknett@gmail.com
@@ -58,6 +86,11 @@ files:
58
86
  - lib/dry_generators_rails/railtie.rb
59
87
  - lib/dry_generators_rails/version.rb
60
88
  - lib/generators/dry.rb
89
+ - lib/generators/dry/struct/USAGE
90
+ - lib/generators/dry/struct/struct_generator.rb
91
+ - lib/generators/dry/struct/templates/struct_spec_template.rb
92
+ - lib/generators/dry/struct/templates/struct_template.rb
93
+ - lib/generators/dry/struct/templates/struct_test_template.rb
61
94
  - lib/generators/dry/validation/USAGE
62
95
  - lib/generators/dry/validation/templates/validation_spec_template.rb
63
96
  - lib/generators/dry/validation/templates/validation_template.rb