dry_generators_rails 0.3.0 → 0.4.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: af7577513c479773e534e928dc7ba205a53818a636f5692e807696aa2263e857
4
- data.tar.gz: 2bec7b106755a418747897be94268e8478ab97acb69fff37f663f1ab77120a34
3
+ metadata.gz: 83dce3a1768ef657b9feab5680b32c33041e380b40bfe87ab3b59f814705661d
4
+ data.tar.gz: 6c8ccb76d8cdd7058f32e2fa52af30663ae455025437fd0246906000741e90ac
5
5
  SHA512:
6
- metadata.gz: aac0cd6e0ffb23ea275c99e9264cf5de0b0d77de5bbb3eb5790344c520feca62898c05fb05ab9f55fa4063b8573ed72c36d746ab28c66a7ecfdc5f15e692312c
7
- data.tar.gz: 6d931f04ca9fc9cab5aed22cbd37d232161936f566ee14b44c946ec3cc5dd6285862251ff298a8c66dd45f41466fd0698f00deb40ef58ce6793c5cd513241dbb
6
+ metadata.gz: 479fcad4c31a7a9f685e16be697640b2e002ef3a632f2db39e81f519ebea15852cd66cf1bbef341d6a32c5e1f822f9e3182609940818bea4582418e737f59cee
7
+ data.tar.gz: ae494ad3d792f64f152ee55f0f48ce4514ea68d28bf16edce498d29a599877efc428181d87536ef2f6ff360d6b30002c8b8fb104408e66a2c2b02b75d87454a8
data/README.md CHANGED
@@ -8,6 +8,8 @@ eventually die.
8
8
  ## Available Generators
9
9
 
10
10
  - dry:validation
11
+ - dry:struct
12
+ - dry:monad
11
13
 
12
14
  ## Usage
13
15
  `rails g dry:validation User`
@@ -1,3 +1,3 @@
1
1
  module DryGeneratorsRails
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -7,6 +7,7 @@ module Dry
7
7
 
8
8
  VALIDATIONS_PATH = File.join(DRY_PATH, 'validations').freeze
9
9
  STRUCTS_PATH = File.join(DRY_PATH, 'structs').freeze
10
+ MONADS_PATH = File.join(DRY_PATH, 'monads').freeze
10
11
  end
11
12
  end
12
13
  end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Generates a dry-monad class.
3
+
4
+ Example:
5
+ rails generate monad Thing
6
+
7
+ This will create:
8
+ app/dry/monads/thing.rb
@@ -0,0 +1,39 @@
1
+ require 'generators/dry'
2
+
3
+ module Dry
4
+ module Generators
5
+ class MonadGenerator < 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_monad
18
+ path = File.join(MONADS_PATH, "#{@name}.rb")
19
+ template 'monad_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, 'monads')
25
+ path = File.join(spec_path, "#{@name}_spec.rb")
26
+ template 'monad_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, 'monads')
33
+ path = File.join(test_path, "#{@name}_test.rb")
34
+ template 'monad_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,15 @@
1
+ require 'dry/monads'
2
+
3
+ module Monads
4
+ class <%= @class_name %>
5
+ include Dry::Monads[:result]
6
+
7
+ def call(params)
8
+ if true
9
+ Success('I am a success')
10
+ else
11
+ Failure('I am a failure')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ require 'test_helper'
2
+
3
+ class <%= "#{@class_name}Test" %> < Minitest::Test
4
+ # do something important here...
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry_generators_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Turknett
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: dry-monads
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
75
89
  description: Generate dry-rb classes for Rails applications
76
90
  email:
77
91
  - johnturknett@gmail.com
@@ -86,6 +100,11 @@ files:
86
100
  - lib/dry_generators_rails/railtie.rb
87
101
  - lib/dry_generators_rails/version.rb
88
102
  - lib/generators/dry.rb
103
+ - lib/generators/dry/monad/USAGE
104
+ - lib/generators/dry/monad/monad_generator.rb
105
+ - lib/generators/dry/monad/templates/monad_spec_template.rb
106
+ - lib/generators/dry/monad/templates/monad_template.rb
107
+ - lib/generators/dry/monad/templates/monad_test_template.rb
89
108
  - lib/generators/dry/struct/USAGE
90
109
  - lib/generators/dry/struct/struct_generator.rb
91
110
  - lib/generators/dry/struct/templates/struct_spec_template.rb