lite-command 1.0.10 → 1.1.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 +4 -4
- data/.rubocop.yml +12 -1
- data/.travis.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +64 -57
- data/README.md +33 -3
- data/lib/lite/command.rb +1 -1
- data/lib/lite/command/procedure.rb +34 -0
- data/lib/lite/command/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1832d3973ed0b408d8c4c11d6fb0e53ab9184080bc5eca37d99c69ec7a29c09c
|
|
4
|
+
data.tar.gz: a7f5dc00b4b00587a8f4f9115637d02f69ad7218112b1a1b066a994e477be93d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 235acc1478d53eeb81f16419a3c53eaa1ca743f472872508e433d4031b1a5fbc19f6a1cdee11d1fa7f35b44031ef8cd6d36510646e5c8cf58748f8866e365bd3
|
|
7
|
+
data.tar.gz: eebb89a36eac24e2836c5742a78039c575bda0915696588da8cdbd1c0e4a40af976e6ab8412ab1e2d36790d422191aa2440f0d2fbdb3341b5c17d3679b32f8ac
|
data/.rubocop.yml
CHANGED
|
@@ -2,9 +2,14 @@ require:
|
|
|
2
2
|
- rubocop-performance
|
|
3
3
|
- rubocop-rspec
|
|
4
4
|
AllCops:
|
|
5
|
-
TargetRubyVersion: 2.
|
|
5
|
+
TargetRubyVersion: 2.7
|
|
6
|
+
NewCops: enable
|
|
6
7
|
DisplayCopNames: true
|
|
7
8
|
DisplayStyleGuide: true
|
|
9
|
+
Gemspec/RequiredRubyVersion:
|
|
10
|
+
Enabled: false
|
|
11
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
|
12
|
+
Enabled: true
|
|
8
13
|
Layout/EmptyLinesAroundBlockBody:
|
|
9
14
|
Exclude:
|
|
10
15
|
- 'spec/**/**/*'
|
|
@@ -14,6 +19,12 @@ Layout/EmptyLinesAroundModuleBody:
|
|
|
14
19
|
EnforcedStyle: empty_lines_except_namespace
|
|
15
20
|
Layout/LineLength:
|
|
16
21
|
Max: 100
|
|
22
|
+
Layout/SpaceAroundMethodCallOperator:
|
|
23
|
+
Enabled: true
|
|
24
|
+
Lint/RaiseException:
|
|
25
|
+
Enabled: true
|
|
26
|
+
Lint/StructNewOverride:
|
|
27
|
+
Enabled: true
|
|
17
28
|
Metrics/BlockLength:
|
|
18
29
|
Exclude:
|
|
19
30
|
- 'spec/**/**/*'
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.1.0] - 2019-06-06
|
|
10
|
+
### Added
|
|
11
|
+
- Added procedure support for running multiple commands
|
|
12
|
+
|
|
9
13
|
## [1.0.10] - 2019-12-21
|
|
14
|
+
### Added
|
|
15
|
+
- Added Ruby 2.7 support
|
|
10
16
|
### Removed
|
|
11
17
|
- Removed generator empty directory check
|
|
12
18
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,68 +1,67 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
lite-command (1.0
|
|
4
|
+
lite-command (1.1.0)
|
|
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.
|
|
12
|
-
actionview (= 6.0.
|
|
13
|
-
activesupport (= 6.0.
|
|
11
|
+
actionpack (6.0.3.4)
|
|
12
|
+
actionview (= 6.0.3.4)
|
|
13
|
+
activesupport (= 6.0.3.4)
|
|
14
14
|
rack (~> 2.0, >= 2.0.8)
|
|
15
15
|
rack-test (>= 0.6.3)
|
|
16
16
|
rails-dom-testing (~> 2.0)
|
|
17
17
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
18
|
-
actionview (6.0.
|
|
19
|
-
activesupport (= 6.0.
|
|
18
|
+
actionview (6.0.3.4)
|
|
19
|
+
activesupport (= 6.0.3.4)
|
|
20
20
|
builder (~> 3.1)
|
|
21
21
|
erubi (~> 1.4)
|
|
22
22
|
rails-dom-testing (~> 2.0)
|
|
23
23
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
24
|
-
activemodel (6.0.
|
|
25
|
-
activesupport (= 6.0.
|
|
26
|
-
activerecord (6.0.
|
|
27
|
-
activemodel (= 6.0.
|
|
28
|
-
activesupport (= 6.0.
|
|
29
|
-
activesupport (6.0.
|
|
24
|
+
activemodel (6.0.3.4)
|
|
25
|
+
activesupport (= 6.0.3.4)
|
|
26
|
+
activerecord (6.0.3.4)
|
|
27
|
+
activemodel (= 6.0.3.4)
|
|
28
|
+
activesupport (= 6.0.3.4)
|
|
29
|
+
activesupport (6.0.3.4)
|
|
30
30
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
31
31
|
i18n (>= 0.7, < 2)
|
|
32
32
|
minitest (~> 5.1)
|
|
33
33
|
tzinfo (~> 1.1)
|
|
34
|
-
zeitwerk (~> 2.2)
|
|
35
|
-
ast (2.4.
|
|
34
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
|
35
|
+
ast (2.4.1)
|
|
36
36
|
builder (3.2.4)
|
|
37
37
|
colorize (0.8.1)
|
|
38
|
-
concurrent-ruby (1.1.
|
|
39
|
-
crass (1.0.
|
|
40
|
-
database_cleaner (1.
|
|
41
|
-
diff-lcs (1.
|
|
38
|
+
concurrent-ruby (1.1.7)
|
|
39
|
+
crass (1.0.6)
|
|
40
|
+
database_cleaner (1.8.5)
|
|
41
|
+
diff-lcs (1.4.4)
|
|
42
42
|
erubi (1.9.0)
|
|
43
|
-
fasterer (0.8.
|
|
43
|
+
fasterer (0.8.3)
|
|
44
44
|
colorize (~> 0.7)
|
|
45
45
|
ruby_parser (>= 3.14.1)
|
|
46
46
|
generator_spec (0.9.4)
|
|
47
47
|
activesupport (>= 3.0.0)
|
|
48
48
|
railties (>= 3.0.0)
|
|
49
|
-
i18n (1.
|
|
49
|
+
i18n (1.8.5)
|
|
50
50
|
concurrent-ruby (~> 1.0)
|
|
51
|
-
jaro_winkler (1.5.4)
|
|
52
51
|
lite-errors (1.0.1)
|
|
53
52
|
lite-memoize (1.0.3)
|
|
54
|
-
loofah (2.
|
|
53
|
+
loofah (2.7.0)
|
|
55
54
|
crass (~> 1.0.2)
|
|
56
55
|
nokogiri (>= 1.5.9)
|
|
57
|
-
method_source (0.
|
|
56
|
+
method_source (1.0.0)
|
|
58
57
|
mini_portile2 (2.4.0)
|
|
59
|
-
minitest (5.
|
|
60
|
-
nokogiri (1.10.
|
|
58
|
+
minitest (5.14.2)
|
|
59
|
+
nokogiri (1.10.10)
|
|
61
60
|
mini_portile2 (~> 2.4.0)
|
|
62
|
-
parallel (1.19.
|
|
63
|
-
parser (2.
|
|
64
|
-
ast (~> 2.4.
|
|
65
|
-
rack (2.
|
|
61
|
+
parallel (1.19.2)
|
|
62
|
+
parser (2.7.2.0)
|
|
63
|
+
ast (~> 2.4.1)
|
|
64
|
+
rack (2.2.3)
|
|
66
65
|
rack-test (1.1.0)
|
|
67
66
|
rack (>= 1.0, < 3)
|
|
68
67
|
rails-dom-testing (2.0.3)
|
|
@@ -70,49 +69,57 @@ GEM
|
|
|
70
69
|
nokogiri (>= 1.6)
|
|
71
70
|
rails-html-sanitizer (1.3.0)
|
|
72
71
|
loofah (~> 2.3)
|
|
73
|
-
railties (6.0.
|
|
74
|
-
actionpack (= 6.0.
|
|
75
|
-
activesupport (= 6.0.
|
|
72
|
+
railties (6.0.3.4)
|
|
73
|
+
actionpack (= 6.0.3.4)
|
|
74
|
+
activesupport (= 6.0.3.4)
|
|
76
75
|
method_source
|
|
77
76
|
rake (>= 0.8.7)
|
|
78
77
|
thor (>= 0.20.3, < 2.0)
|
|
79
78
|
rainbow (3.0.0)
|
|
80
79
|
rake (13.0.1)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
rspec-
|
|
85
|
-
|
|
86
|
-
rspec-
|
|
87
|
-
rspec-
|
|
80
|
+
regexp_parser (1.8.2)
|
|
81
|
+
rexml (3.2.4)
|
|
82
|
+
rspec (3.10.0)
|
|
83
|
+
rspec-core (~> 3.10.0)
|
|
84
|
+
rspec-expectations (~> 3.10.0)
|
|
85
|
+
rspec-mocks (~> 3.10.0)
|
|
86
|
+
rspec-core (3.10.0)
|
|
87
|
+
rspec-support (~> 3.10.0)
|
|
88
|
+
rspec-expectations (3.10.0)
|
|
88
89
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
89
|
-
rspec-support (~> 3.
|
|
90
|
-
rspec-mocks (3.
|
|
90
|
+
rspec-support (~> 3.10.0)
|
|
91
|
+
rspec-mocks (3.10.0)
|
|
91
92
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
92
|
-
rspec-support (~> 3.
|
|
93
|
-
rspec-support (3.
|
|
94
|
-
rubocop (
|
|
95
|
-
jaro_winkler (~> 1.5.1)
|
|
93
|
+
rspec-support (~> 3.10.0)
|
|
94
|
+
rspec-support (3.10.0)
|
|
95
|
+
rubocop (1.2.0)
|
|
96
96
|
parallel (~> 1.10)
|
|
97
|
-
parser (>= 2.
|
|
97
|
+
parser (>= 2.7.1.5)
|
|
98
98
|
rainbow (>= 2.2.2, < 4.0)
|
|
99
|
+
regexp_parser (>= 1.8)
|
|
100
|
+
rexml
|
|
101
|
+
rubocop-ast (>= 1.0.1)
|
|
99
102
|
ruby-progressbar (~> 1.7)
|
|
100
|
-
unicode-display_width (>= 1.4.0, <
|
|
101
|
-
rubocop-
|
|
102
|
-
|
|
103
|
-
rubocop-
|
|
104
|
-
rubocop (>= 0.
|
|
103
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
104
|
+
rubocop-ast (1.1.1)
|
|
105
|
+
parser (>= 2.7.1.5)
|
|
106
|
+
rubocop-performance (1.8.1)
|
|
107
|
+
rubocop (>= 0.87.0)
|
|
108
|
+
rubocop-ast (>= 0.4.0)
|
|
109
|
+
rubocop-rspec (2.0.0)
|
|
110
|
+
rubocop (~> 1.0)
|
|
111
|
+
rubocop-ast (>= 1.1.0)
|
|
105
112
|
ruby-progressbar (1.10.1)
|
|
106
|
-
ruby_parser (3.
|
|
113
|
+
ruby_parser (3.15.0)
|
|
107
114
|
sexp_processor (~> 4.9)
|
|
108
|
-
sexp_processor (4.
|
|
115
|
+
sexp_processor (4.15.1)
|
|
109
116
|
sqlite3 (1.4.2)
|
|
110
117
|
thor (1.0.1)
|
|
111
118
|
thread_safe (0.3.6)
|
|
112
|
-
tzinfo (1.2.
|
|
119
|
+
tzinfo (1.2.7)
|
|
113
120
|
thread_safe (~> 0.1)
|
|
114
|
-
unicode-display_width (1.
|
|
115
|
-
zeitwerk (2.
|
|
121
|
+
unicode-display_width (1.7.0)
|
|
122
|
+
zeitwerk (2.4.1)
|
|
116
123
|
|
|
117
124
|
PLATFORMS
|
|
118
125
|
ruby
|
|
@@ -132,4 +139,4 @@ DEPENDENCIES
|
|
|
132
139
|
sqlite3
|
|
133
140
|
|
|
134
141
|
BUNDLED WITH
|
|
135
|
-
2.
|
|
142
|
+
2.1.4
|
data/README.md
CHANGED
|
@@ -27,6 +27,7 @@ Or install it yourself as:
|
|
|
27
27
|
* [Setup](#setup)
|
|
28
28
|
* [Simple](#simple)
|
|
29
29
|
* [Complex](#complex)
|
|
30
|
+
* [Procedure](#procedure)
|
|
30
31
|
* [Extensions](#extensions)
|
|
31
32
|
|
|
32
33
|
## Setup
|
|
@@ -60,8 +61,7 @@ end
|
|
|
60
61
|
**Caller**
|
|
61
62
|
|
|
62
63
|
```ruby
|
|
63
|
-
|
|
64
|
-
command.call
|
|
64
|
+
SearchMovies.call('Toy Story')
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
## Complex
|
|
@@ -130,9 +130,39 @@ command.recall! #=> Clears the call, cache, errors, and then re-performs the cal
|
|
|
130
130
|
command.result #=> { 'fingerprint_2' => [ 'Toy Story 2', ... ] }
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
+
## Procedure
|
|
134
|
+
|
|
135
|
+
Procedures run a collection of commands. It uses the the complex procedure API
|
|
136
|
+
so it has access to all the methods. The `execute` method is already defined to
|
|
137
|
+
handle most common procedure steps. It can be use directly or subclassed.
|
|
138
|
+
|
|
139
|
+
```ruby
|
|
140
|
+
class SearchChannels < Lite::Command::Procedure; end
|
|
141
|
+
|
|
142
|
+
procedure = SearchChannels.call(
|
|
143
|
+
DisneyChannel.new,
|
|
144
|
+
EspnChannel.new,
|
|
145
|
+
MtvChannel.new
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
procedure.result #=> ['disney: #3', 'espn: #59', 'mtv: #212']
|
|
149
|
+
procedure.steps #=> [<DisneyChannel @result="...">, <EspnChannel @result="...">, <MtvChannel @result="...">]
|
|
150
|
+
|
|
151
|
+
# If the errors extension is added you can stop the procedure at first failure.
|
|
152
|
+
procedure = SearchChannels.new(
|
|
153
|
+
DisneyChannel.new,
|
|
154
|
+
ErrorChannel.new,
|
|
155
|
+
MtvChannel.new
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
procedure.exit_on_failure = true
|
|
159
|
+
procedure.call
|
|
160
|
+
procedure.result #=> ['disney: #3']
|
|
161
|
+
```
|
|
162
|
+
|
|
133
163
|
## Extensions
|
|
134
164
|
|
|
135
|
-
Extend complex base command with any of the following extensions:
|
|
165
|
+
Extend complex (and procedures) base command with any of the following extensions:
|
|
136
166
|
|
|
137
167
|
### Errors (optional)
|
|
138
168
|
|
data/lib/lite/command.rb
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lite
|
|
4
|
+
module Command
|
|
5
|
+
class Procedure < Complex
|
|
6
|
+
|
|
7
|
+
include Lite::Command::Extensions::Errors
|
|
8
|
+
|
|
9
|
+
attr_accessor :exit_on_failure
|
|
10
|
+
|
|
11
|
+
def execute
|
|
12
|
+
steps.each_with_object([]) do |command, results|
|
|
13
|
+
command.call
|
|
14
|
+
|
|
15
|
+
if respond_to?(:errors) && command.respond_to?(:errors) && command.failure?
|
|
16
|
+
merge_errors!(command)
|
|
17
|
+
break results if exit_on_failure?
|
|
18
|
+
else
|
|
19
|
+
results << command.result
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def exit_on_failure?
|
|
25
|
+
@exit_on_failure ||= false
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def steps
|
|
29
|
+
@steps ||= @args.flatten
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/lib/lite/command/version.rb
CHANGED
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
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Juan Gomez
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-11-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lite-errors
|
|
@@ -192,7 +192,7 @@ dependencies:
|
|
|
192
192
|
- - ">="
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '0'
|
|
195
|
-
description:
|
|
195
|
+
description:
|
|
196
196
|
email:
|
|
197
197
|
- j.gomez@drexed.com
|
|
198
198
|
executables: []
|
|
@@ -224,6 +224,7 @@ files:
|
|
|
224
224
|
- lib/lite/command/extensions/errors.rb
|
|
225
225
|
- lib/lite/command/extensions/memoize.rb
|
|
226
226
|
- lib/lite/command/extensions/propagation.rb
|
|
227
|
+
- lib/lite/command/procedure.rb
|
|
227
228
|
- lib/lite/command/simple.rb
|
|
228
229
|
- lib/lite/command/states.rb
|
|
229
230
|
- lib/lite/command/version.rb
|
|
@@ -232,7 +233,7 @@ homepage: http://drexed.github.io/lite-command
|
|
|
232
233
|
licenses:
|
|
233
234
|
- MIT
|
|
234
235
|
metadata: {}
|
|
235
|
-
post_install_message:
|
|
236
|
+
post_install_message:
|
|
236
237
|
rdoc_options: []
|
|
237
238
|
require_paths:
|
|
238
239
|
- lib
|
|
@@ -247,8 +248,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
247
248
|
- !ruby/object:Gem::Version
|
|
248
249
|
version: '0'
|
|
249
250
|
requirements: []
|
|
250
|
-
rubygems_version: 3.1.
|
|
251
|
-
signing_key:
|
|
251
|
+
rubygems_version: 3.1.4
|
|
252
|
+
signing_key:
|
|
252
253
|
specification_version: 4
|
|
253
254
|
summary: Ruby Command based framework (aka service objects)
|
|
254
255
|
test_files: []
|