lite-command 1.0.2 → 1.0.3

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: 436bbcd8024e3203b8d1fe3a9baa4d0d634c2668f0c2a479622ee68de4becdfb
4
- data.tar.gz: 7e1fad943b41eb36ac0a4dfbefe19ec214d2016ddde9d8456878ff7ef6870a81
3
+ metadata.gz: 1aa7ea6342f56811303cb6cc8a66b5e18111548090782212cafc3567c8dbd35a
4
+ data.tar.gz: 28a8b68ec9dd2977cda7f393e35e63833a3f41fbff27893d6b68e4579a3d18b4
5
5
  SHA512:
6
- metadata.gz: 56cf37475d6501782938bfcc064b07d2d2357bde6ac99654a854409ac9c422aa031cbcde908e86b9b2185faa405c750d27a4af5f27adead5350023c6638d0fe5
7
- data.tar.gz: c9f76b43944446aeb56b5be3c4eda67af0f48e088e66e32a85623d9ba791a506819f1867f6a02047240e93c9f0f8bd61613216e9d55f08a7b4071773d00b65e2
6
+ metadata.gz: 2c20e8692e9265e812aa384cdb85fff5fb1e1f6727478c1cbf3b665b2f1d23311d6cc9f173e2054f734a0eaf9d4df00d56433502bc8ae343357e8ecf8c54a0c1
7
+ data.tar.gz: 2852a4135fddb7c6aae80791f0cfda298c0abb04b82c44373f342733589fe363c19df52cd6361983ec402a5c93cf405639858d300ded85920ced6f6f89e0f44b
@@ -18,6 +18,8 @@ Metrics/BlockLength:
18
18
  Exclude:
19
19
  - 'spec/**/**/*'
20
20
  - '*.gemspec'
21
+ Naming/MemoizedInstanceVariableName:
22
+ Enabled: false
21
23
  RSpec/ExampleLength:
22
24
  Enabled: false
23
25
  RSpec/MultipleExpectations:
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.3] - 2019-09-02
10
+ ### Added
11
+ - Add rails generators
12
+
9
13
  ## [1.0.2] - 2019-08-12
10
14
  ### Changed
11
15
  - Renamed command method to execute
@@ -1,25 +1,75 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-command (1.0.2)
4
+ lite-command (1.0.3)
5
5
  lite-errors
6
6
  lite-memoize
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ actionpack (6.0.0)
12
+ actionview (= 6.0.0)
13
+ activesupport (= 6.0.0)
14
+ rack (~> 2.0)
15
+ rack-test (>= 0.6.3)
16
+ rails-dom-testing (~> 2.0)
17
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
+ actionview (6.0.0)
19
+ activesupport (= 6.0.0)
20
+ builder (~> 3.1)
21
+ erubi (~> 1.4)
22
+ rails-dom-testing (~> 2.0)
23
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
+ activesupport (6.0.0)
25
+ concurrent-ruby (~> 1.0, >= 1.0.2)
26
+ i18n (>= 0.7, < 2)
27
+ minitest (~> 5.1)
28
+ tzinfo (~> 1.1)
29
+ zeitwerk (~> 2.1, >= 2.1.8)
11
30
  ast (2.4.0)
31
+ builder (3.2.3)
12
32
  colorize (0.8.1)
33
+ concurrent-ruby (1.1.5)
34
+ crass (1.0.4)
13
35
  diff-lcs (1.3)
36
+ erubi (1.8.0)
14
37
  fasterer (0.6.0)
15
38
  colorize (~> 0.7)
16
39
  ruby_parser (>= 3.13.0)
40
+ generator_spec (0.9.4)
41
+ activesupport (>= 3.0.0)
42
+ railties (>= 3.0.0)
43
+ i18n (1.6.0)
44
+ concurrent-ruby (~> 1.0)
17
45
  jaro_winkler (1.5.3)
18
46
  lite-errors (1.0.1)
19
- lite-memoize (1.0.1)
47
+ lite-memoize (1.0.3)
48
+ loofah (2.2.3)
49
+ crass (~> 1.0.2)
50
+ nokogiri (>= 1.5.9)
51
+ method_source (0.9.2)
52
+ mini_portile2 (2.4.0)
53
+ minitest (5.11.3)
54
+ nokogiri (1.10.4)
55
+ mini_portile2 (~> 2.4.0)
20
56
  parallel (1.17.0)
21
- parser (2.6.3.0)
57
+ parser (2.6.4.0)
22
58
  ast (~> 2.4.0)
59
+ rack (2.0.7)
60
+ rack-test (1.1.0)
61
+ rack (>= 1.0, < 3)
62
+ rails-dom-testing (2.0.3)
63
+ activesupport (>= 4.2.0)
64
+ nokogiri (>= 1.6)
65
+ rails-html-sanitizer (1.2.0)
66
+ loofah (~> 2.2, >= 2.2.2)
67
+ railties (6.0.0)
68
+ actionpack (= 6.0.0)
69
+ activesupport (= 6.0.0)
70
+ method_source
71
+ rake (>= 0.8.7)
72
+ thor (>= 0.20.3, < 2.0)
23
73
  rainbow (3.0.0)
24
74
  rake (12.3.3)
25
75
  rspec (3.8.0)
@@ -50,7 +100,12 @@ GEM
50
100
  ruby_parser (3.13.1)
51
101
  sexp_processor (~> 4.9)
52
102
  sexp_processor (4.12.1)
103
+ thor (0.20.3)
104
+ thread_safe (0.3.6)
105
+ tzinfo (1.2.5)
106
+ thread_safe (~> 0.1)
53
107
  unicode-display_width (1.6.0)
108
+ zeitwerk (2.1.9)
54
109
 
55
110
  PLATFORMS
56
111
  ruby
@@ -58,6 +113,7 @@ PLATFORMS
58
113
  DEPENDENCIES
59
114
  bundler
60
115
  fasterer
116
+ generator_spec
61
117
  lite-command!
62
118
  rake
63
119
  rspec
data/README.md CHANGED
@@ -24,10 +24,21 @@ Or install it yourself as:
24
24
 
25
25
  ## Table of Contents
26
26
 
27
+ * [Setup](#setup)
27
28
  * [Simple](#simple)
28
29
  * [Complex](#complex)
29
30
  * [Extensions](#extensions)
30
31
 
32
+ ## Setup
33
+
34
+ `rails g lite:command:install` will generate the following file:
35
+ `../app/commands/application_command.rb`
36
+
37
+ ```ruby
38
+ class ApplicationCommand < Lite::Command::Complex
39
+ end
40
+ ```
41
+
31
42
  ## Simple
32
43
 
33
44
  Simple commands build quick class based calls but cannot be extended.
@@ -60,6 +71,11 @@ command.call
60
71
  Complex commands can be used in instance and class based calls and
61
72
  extended with access to errors and memoization.
62
73
 
74
+ Use `rails g decorator NAME` will generate the following file:
75
+ `../app/decorators/[name]_decorator.rb`
76
+
77
+ You will then need to fill this class with the required `execute` method as shown below:
78
+
63
79
  ```ruby
64
80
  class SearchMovies < Lite::Command::Complex
65
81
 
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Lite
6
+ module Command
7
+ class InstallGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path('../templates', __FILE__)
10
+
11
+ def copy_application_query_file
12
+ copy_file('install.rb', 'app/commands/application_command.rb')
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ApplicationCommand < Lite::Command::Complex
4
+ end
@@ -0,0 +1,9 @@
1
+ Description:
2
+ Generate a command file
3
+
4
+ Example:
5
+ rails generate command NAME
6
+
7
+ This will create:
8
+ - app/commands/[name]_command.rb
9
+ - spec/commands/[name]_command_spec.rb
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Rails
6
+ class CommandGenerator < Rails::Generators::NamedBase
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+ check_class_collision suffix: 'Command'
10
+
11
+ def copy_files
12
+ path = File.join('app', 'commands', class_path, "#{file_name}_command.rb")
13
+ empty_directory('app/commands')
14
+ template('command.rb.tt', path)
15
+ end
16
+
17
+ def copy_specs
18
+ path = File.join('spec', 'commands', class_path, "#{file_name}_command_spec.rb")
19
+ empty_directory('spec/commands')
20
+ template('spec.rb.tt', path)
21
+ end
22
+
23
+ private
24
+
25
+ def file_name
26
+ @_file_name ||= remove_possible_suffix(super)
27
+ end
28
+
29
+ def remove_possible_suffix(name)
30
+ name.sub(/_?command$/i, '')
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= class_name %>Command < ApplicationCommand
5
+ end
6
+ <% end -%>
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe <%= class_name %>Command, type: :command do
6
+ pending "add some examples to (or delete) #{__FILE__}"
7
+ end
@@ -9,3 +9,6 @@ end
9
9
  %w[exceptions states complex simple].each do |name|
10
10
  require "lite/command/#{name}"
11
11
  end
12
+
13
+ require 'generators/lite/command/install_generator'
14
+ require 'generators/rails/command_generator'
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Command
5
5
 
6
- VERSION ||= '1.0.2'
6
+ VERSION ||= '1.0.3'
7
7
 
8
8
  end
9
9
  end
@@ -42,6 +42,7 @@ Gem::Specification.new do |spec|
42
42
 
43
43
  spec.add_development_dependency 'bundler'
44
44
  spec.add_development_dependency 'fasterer'
45
+ spec.add_development_dependency 'generator_spec'
45
46
  spec.add_development_dependency 'rake'
46
47
  spec.add_development_dependency 'rspec'
47
48
  spec.add_development_dependency 'rubocop'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-command
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-12 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lite-errors
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: generator_spec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +173,12 @@ files:
159
173
  - _config.yml
160
174
  - bin/console
161
175
  - bin/setup
176
+ - lib/generators/lite/command/install_generator.rb
177
+ - lib/generators/lite/command/templates/install.rb
178
+ - lib/generators/rails/USAGE
179
+ - lib/generators/rails/command_generator.rb
180
+ - lib/generators/rails/templates/command.rb.tt
181
+ - lib/generators/rails/templates/spec.rb.tt
162
182
  - lib/lite/command.rb
163
183
  - lib/lite/command/complex.rb
164
184
  - lib/lite/command/exceptions.rb