dry_generators_rails 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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