mandate 0.1.1 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/rubocop.yml +28 -0
- data/.github/workflows/tests.yml +30 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +89 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +6 -1
- data/README.md +66 -7
- data/Rakefile +1 -1
- data/bin/release +3 -0
- data/bin/rubocop-quick +4 -0
- data/lib/mandate.rb +3 -0
- data/lib/mandate/call_injector.rb +9 -2
- data/lib/mandate/callbacks.rb +92 -0
- data/lib/mandate/initializer_injector.rb +55 -0
- data/lib/mandate/memoize.rb +17 -8
- data/lib/mandate/version.rb +1 -1
- data/mandate.gemspec +8 -8
- data/package.json +12 -0
- data/yarn.lock +555 -0
- metadata +29 -21
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a3777f95eea23613ab020fee91200b2d2f74b158827c1c48920b7351718466d1
|
4
|
+
data.tar.gz: 13f9b05d1beb3ee5327301877f12055ce9e8a4237a96980fadf23a5e1d642806
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa01cdd428d030e7eec7581318726731f2d3c72f8e7034876a3e9d1ae97f26a12a67c41ba9a80d115e260d7c1160d3e8018e5159151d67b57873598538628b23
|
7
|
+
data.tar.gz: 23f4e7d68149d6d4d27d4de21d82c9b64d64a2c420197e1cbc7bc1e9972a900a303b1d20a516bb44b3b7c95834576e34287308ac48914fafe284d70be09c7dd6
|
@@ -0,0 +1,28 @@
|
|
1
|
+
name: Rubocop
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [main]
|
6
|
+
pull_request:
|
7
|
+
branches: [main]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
rubocop:
|
11
|
+
runs-on: ubuntu-20.04
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
|
16
|
+
- name: Set up Ruby
|
17
|
+
uses: ruby/setup-ruby@42817531497ae2ef0168458f709e451109306bd5
|
18
|
+
with:
|
19
|
+
ruby-version: 2.6.6
|
20
|
+
|
21
|
+
- name: Install gems
|
22
|
+
run: |
|
23
|
+
gem install rubocop
|
24
|
+
gem install rubocop-minitest
|
25
|
+
gem install rubocop-performance
|
26
|
+
|
27
|
+
- name: Run Rubocop
|
28
|
+
run: rubocop --except Metrics
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [main]
|
6
|
+
pull_request:
|
7
|
+
branches: [main]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
name: Ruby ${{ matrix.ruby-version }} - ${{ matrix.os }} - ${{ github.event_name }}
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
matrix:
|
16
|
+
os:
|
17
|
+
- ubuntu-20.04
|
18
|
+
ruby-version: [2.6, 2.7, 3.0]
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
|
23
|
+
- name: Set up Ruby
|
24
|
+
uses: ruby/setup-ruby@42817531497ae2ef0168458f709e451109306bd5
|
25
|
+
with:
|
26
|
+
ruby-version: ${{ matrix.ruby-version }}
|
27
|
+
bundler-cache: true
|
28
|
+
|
29
|
+
- name: Test
|
30
|
+
run: bundle exec rake test
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-minitest
|
3
|
+
- rubocop-performance
|
4
|
+
|
5
|
+
AllCops:
|
6
|
+
NewCops: disable
|
7
|
+
Exclude:
|
8
|
+
- "bin/**/*"
|
9
|
+
|
10
|
+
Bundler/OrderedGems:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Layout/DotPosition:
|
14
|
+
EnforcedStyle: trailing
|
15
|
+
|
16
|
+
Layout/EndOfLine:
|
17
|
+
EnforcedStyle: lf
|
18
|
+
|
19
|
+
Layout/MultilineMethodCallIndentation:
|
20
|
+
EnforcedStyle: indented
|
21
|
+
|
22
|
+
Layout/EmptyLinesAroundAccessModifier:
|
23
|
+
EnforcedStyle: only_before
|
24
|
+
|
25
|
+
#Layout/LineLength:
|
26
|
+
#Exclude:
|
27
|
+
|
28
|
+
Lint/SuppressedException:
|
29
|
+
Exclude:
|
30
|
+
- "test/**/*"
|
31
|
+
- "lib/tooling_invoker/runc_wrapper.rb"
|
32
|
+
- "lib/tooling_invoker/external_command.rb"
|
33
|
+
|
34
|
+
Metrics/BlockLength:
|
35
|
+
Exclude:
|
36
|
+
- "test/**/*"
|
37
|
+
|
38
|
+
Metrics/MethodLength:
|
39
|
+
# We probably want to bring this down but let's start here for now
|
40
|
+
Max: 20
|
41
|
+
Exclude:
|
42
|
+
- "test/**/*"
|
43
|
+
|
44
|
+
Naming/PredicateName:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
Style/StringLiterals:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
Style/FrozenStringLiteralComment:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/Documentation:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
Style/DocumentationMethod:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
Style/GuardClause:
|
60
|
+
Exclude:
|
61
|
+
- lib/exercism_config/environment.rb
|
62
|
+
|
63
|
+
Style/IfUnlessModifier:
|
64
|
+
Exclude:
|
65
|
+
- "lib/exercism_config/setup_dynamodb_client.rb"
|
66
|
+
|
67
|
+
Style/NumericPredicate:
|
68
|
+
Enabled: false
|
69
|
+
|
70
|
+
Style/RedundantSelf:
|
71
|
+
Enabled: false
|
72
|
+
|
73
|
+
Style/ZeroLengthPredicate:
|
74
|
+
Enabled: false
|
75
|
+
|
76
|
+
# I don't mind this being enabled if
|
77
|
+
# someone fixes all the fails.
|
78
|
+
Style/ClassAndModuleChildren:
|
79
|
+
Enabled: false
|
80
|
+
|
81
|
+
Naming/FileName:
|
82
|
+
Exclude:
|
83
|
+
- "lib/exercism-config.rb"
|
84
|
+
|
85
|
+
Naming/VariableNumber:
|
86
|
+
EnforcedStyle: snake_case
|
87
|
+
|
88
|
+
Style/LambdaCall:
|
89
|
+
EnforcedStyle: braces
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.6
|
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
3
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in mandate.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
gem 'gem-release'
|
9
|
+
gem 'rubocop'
|
10
|
+
gem 'rubocop-minitest'
|
11
|
+
gem 'rubocop-performance'
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Mandate
|
2
|
-
|
2
|
+
|
3
|
+
![Tests](https://github.com/iHiD/mandate/workflows/Tests/badge.svg)
|
3
4
|
|
4
5
|
A simple command-pattern helper gem for Ruby.
|
5
6
|
|
@@ -25,11 +26,7 @@ Or install it yourself as:
|
|
25
26
|
class Multiplies
|
26
27
|
include Mandate
|
27
28
|
|
28
|
-
|
29
|
-
def initialize(number_1, number_2)
|
30
|
-
@number_1 = number_1
|
31
|
-
@number_2 = number_2
|
32
|
-
end
|
29
|
+
initialize_with :number_1, :number_2
|
33
30
|
|
34
31
|
def call
|
35
32
|
do_the_maths
|
@@ -48,6 +45,68 @@ Multiplies.(20, 3)
|
|
48
45
|
# => 60
|
49
46
|
```
|
50
47
|
|
48
|
+
### `initialize_with`
|
49
|
+
|
50
|
+
The `initialize_with` method creates an initializer and private attr_readers for the specified variables.
|
51
|
+
|
52
|
+
For example `initialize_with :foo, :bar` is the equivalent of:
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
def initialize(foo, bar)
|
56
|
+
@foo = foo
|
57
|
+
@bar = bar
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
attr_reader :foo, :bar
|
62
|
+
```
|
63
|
+
|
64
|
+
### Using on_success/on_failure callbacks
|
65
|
+
|
66
|
+
Sometimes it is helpful for the class to return on_success/on_failure callbacks rather than just the resulting value.
|
67
|
+
This can be achieved by including the `Mandate::Callbacks` module as follows:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
class Sumer
|
71
|
+
include Mandate
|
72
|
+
include Mandate::Callbacks
|
73
|
+
|
74
|
+
initialize_with :num1, :num2
|
75
|
+
|
76
|
+
def call
|
77
|
+
abort!("num1 must be an Integer") unless num1.is_a?(Integer)
|
78
|
+
abort!("num2 must be an Integer") unless num2.is_a?(Integer)
|
79
|
+
|
80
|
+
num1 + num2
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
res = Sumer.(1,2)
|
85
|
+
res.on_success { |result| p result } # puts 3
|
86
|
+
res.on_failure { |errors| p errors } # Noop
|
87
|
+
res.succeeded? # true
|
88
|
+
res.result # 3
|
89
|
+
res.errors # []
|
90
|
+
|
91
|
+
res = Sumer.("1","2")
|
92
|
+
res.on_success { |result| p result } # Noop
|
93
|
+
res.on_failure { |errors| p errors } # puts ["num1 must be an Integer"]
|
94
|
+
|
95
|
+
res = Sumer.("1","2")
|
96
|
+
res.on_failure { |errors| p errors } # puts ["num1 must be an Integer", "num2 must be an Integer"]
|
97
|
+
res.errors # ["num1 must be an Integer", "num2 must be an Integer"]
|
98
|
+
```
|
99
|
+
|
100
|
+
It is also possible to chain methods, for example:
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
Sumer.(1,2).
|
104
|
+
on_success { |result| p result }.
|
105
|
+
on_failure { |errors| p errors }
|
106
|
+
```
|
107
|
+
|
108
|
+
The `succeeded?` method is also aliased as `success?`.
|
109
|
+
|
51
110
|
## Development
|
52
111
|
|
53
112
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -56,4 +115,4 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
56
115
|
|
57
116
|
## Contributing
|
58
117
|
|
59
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
118
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/iHiD/mandate.
|
data/Rakefile
CHANGED
data/bin/release
ADDED
data/bin/rubocop-quick
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
git diff --name-status --staged | grep '^[MA]' | grep -o '\s\+.*rb' | xargs bundle exec rubocop --except Metrics --auto-correct --format quiet --force-exclusion Gemfile.lock && \
|
4
|
+
git diff --name-status --staged | grep '^[MA]' | grep -o '\s\+.*rb' | xargs git add
|
data/lib/mandate.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require "mandate/version"
|
2
2
|
require "mandate/memoize"
|
3
3
|
require "mandate/call_injector"
|
4
|
+
require "mandate/initializer_injector"
|
5
|
+
require "mandate/callbacks"
|
4
6
|
|
5
7
|
module Mandate
|
6
8
|
def self.included(base)
|
7
9
|
base.extend(Memoize)
|
8
10
|
base.extend(CallInjector)
|
11
|
+
base.extend(InitializerInjector)
|
9
12
|
end
|
10
13
|
end
|
@@ -7,10 +7,17 @@ module Mandate
|
|
7
7
|
# Foobar.new(some, args).call()
|
8
8
|
class << base
|
9
9
|
def call(*args)
|
10
|
-
|
10
|
+
# If the last argument is a hash and the last param is a keyword params (signified by
|
11
|
+
# its type being :key, the we should pass the hash in in using the **kwords syntax.
|
12
|
+
# This fixes a deprecation issue in Ruby 2.7.
|
13
|
+
if args.last.is_a?(Hash) &&
|
14
|
+
instance_method(:initialize).parameters.last&.first == :key
|
15
|
+
new(*args[0..-2], **args[-1]).()
|
16
|
+
else
|
17
|
+
new(*args).()
|
18
|
+
end
|
11
19
|
end
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
16
|
-
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module Mandate
|
2
|
+
module Callbacks
|
3
|
+
class AbortError < RuntimeError
|
4
|
+
end
|
5
|
+
|
6
|
+
class Results
|
7
|
+
attr_reader :result, :errors
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@succeeded = false
|
11
|
+
@errors = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def succeeded!(result)
|
15
|
+
@result = result
|
16
|
+
@succeeded = true
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_error(error)
|
20
|
+
errors << error
|
21
|
+
end
|
22
|
+
|
23
|
+
def succeeded?
|
24
|
+
!!succeeded
|
25
|
+
end
|
26
|
+
alias success? succeeded?
|
27
|
+
|
28
|
+
def on_success
|
29
|
+
yield(result) if succeeded?
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def on_failure
|
34
|
+
yield(errors) unless succeeded?
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
attr_reader :succeeded
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.included(base)
|
43
|
+
# Override self.call to call the internal call_with_callbacks
|
44
|
+
# function which returns a method with on_success/on_failure callbacks
|
45
|
+
class << base
|
46
|
+
# Remove the existing created by the "include Mandate"
|
47
|
+
remove_method(:call)
|
48
|
+
|
49
|
+
# Define a new call methods which calls the instance call
|
50
|
+
# method but with the added callbacks needed for on_success/on_failure
|
51
|
+
def call(*args)
|
52
|
+
new(*args).call_with_callbacks
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
base.extend(Callbacks)
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.extended(base)
|
60
|
+
base.send(:define_method, :call_with_callbacks) do
|
61
|
+
begin
|
62
|
+
# Create results object
|
63
|
+
@__mandate_results = Results.new
|
64
|
+
|
65
|
+
# Run the actual command
|
66
|
+
# If call fails, succeeded! will never get called
|
67
|
+
@__mandate_results.succeeded!(call)
|
68
|
+
rescue AbortError
|
69
|
+
# Used for flow handling
|
70
|
+
end
|
71
|
+
|
72
|
+
@__mandate_results
|
73
|
+
end
|
74
|
+
|
75
|
+
base.send(:define_method, :add_error!) do |error|
|
76
|
+
@__mandate_results.add_error(error)
|
77
|
+
end
|
78
|
+
base.send(:private, :add_error!)
|
79
|
+
|
80
|
+
base.send(:define_method, :abort!) do |error = nil|
|
81
|
+
add_error!(error) if error
|
82
|
+
raise AbortError
|
83
|
+
end
|
84
|
+
base.send(:private, :abort!)
|
85
|
+
|
86
|
+
base.send(:define_method, :abort_if_errored!) do
|
87
|
+
raise AbortError if @__mandate_results.errors.size > 0
|
88
|
+
end
|
89
|
+
base.send(:private, :abort_if_errored!)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Mandate
|
2
|
+
module InitializerInjector
|
3
|
+
def self.extended(base)
|
4
|
+
class << base
|
5
|
+
def initialize_with(*attrs, **kwattrs)
|
6
|
+
if kwattrs.empty?
|
7
|
+
define_method :initialize do |*args|
|
8
|
+
unless args.length == attrs.length
|
9
|
+
raise ArgumentError, "wrong number of arguments (given #{args.length}, expected #{attrs.length})"
|
10
|
+
end
|
11
|
+
|
12
|
+
attrs.zip(args).each do |attr, arg|
|
13
|
+
instance_variable_set("@#{attr}", arg)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
else
|
17
|
+
define_method :initialize do |*args, **kwargs|
|
18
|
+
unless args.length == attrs.length
|
19
|
+
raise ArgumentError, "wrong number of arguments (given #{args.length}, expected #{attrs.length})"
|
20
|
+
end
|
21
|
+
|
22
|
+
attrs.zip(args).each do |attr, arg|
|
23
|
+
instance_variable_set("@#{attr}", arg)
|
24
|
+
end
|
25
|
+
|
26
|
+
kwargs.each do |name, value|
|
27
|
+
raise ArgumentError, "unknown keyword: #{name}" unless kwattrs.key?(name)
|
28
|
+
|
29
|
+
instance_variable_set("@#{name}", value)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
attrs.each do |attr|
|
35
|
+
define_method attr do
|
36
|
+
instance_variable_get("@#{attr}")
|
37
|
+
end
|
38
|
+
private attr
|
39
|
+
end
|
40
|
+
|
41
|
+
kwattrs.each do |attr, default|
|
42
|
+
define_method attr do
|
43
|
+
if instance_variable_defined?("@#{attr}")
|
44
|
+
instance_variable_get("@#{attr}")
|
45
|
+
else
|
46
|
+
default
|
47
|
+
end
|
48
|
+
end
|
49
|
+
private attr
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/mandate/memoize.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Mandate
|
2
2
|
module Memoize
|
3
|
-
|
4
3
|
# This method is called on the line before a
|
5
4
|
# define statement. It puts mandate into memoizing mode
|
6
5
|
def memoize
|
@@ -9,15 +8,15 @@ module Mandate
|
|
9
8
|
|
10
9
|
# Intercept a method being added.
|
11
10
|
# Create the method as normal, then if we are in
|
12
|
-
# memoize mode, call out to the
|
13
|
-
# reset out of
|
11
|
+
# memoize mode, call out to the memoize function and
|
12
|
+
# reset out of memoizing mode.
|
14
13
|
def method_added(method_name)
|
15
14
|
super
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
return unless instance_variable_defined?("@__mandate_memoizing") && @__mandate_memoizing
|
17
|
+
|
18
|
+
__mandate_memoize(method_name)
|
19
|
+
@__mandate_memoizing = false
|
21
20
|
end
|
22
21
|
|
23
22
|
# Create an anonymous module that defines a method
|
@@ -29,6 +28,15 @@ module Mandate
|
|
29
28
|
# We then prepend this module so that its method
|
30
29
|
# comes first in the method-lookup chain.
|
31
30
|
def __mandate_memoize(method_name)
|
31
|
+
# Capture the access level of the method outside the module
|
32
|
+
# then set the method inside the module to have the same
|
33
|
+
# access later.
|
34
|
+
if private_instance_methods.include?(method_name)
|
35
|
+
access_modifier = :private
|
36
|
+
elsif protected_instance_methods.include?(method_name)
|
37
|
+
access_modifier = :protected
|
38
|
+
end
|
39
|
+
|
32
40
|
memoizer = Module.new do
|
33
41
|
define_method method_name do
|
34
42
|
@__mandate_memoized_results ||= {}
|
@@ -39,9 +47,10 @@ module Mandate
|
|
39
47
|
@__mandate_memoized_results[method_name] = super()
|
40
48
|
end
|
41
49
|
end
|
50
|
+
|
51
|
+
send(access_modifier, method_name) if access_modifier
|
42
52
|
end
|
43
53
|
prepend memoizer
|
44
54
|
end
|
45
55
|
end
|
46
56
|
end
|
47
|
-
|
data/lib/mandate/version.rb
CHANGED
data/mandate.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require "mandate/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
6
|
+
spec.required_ruby_version = '>= 2.6.0'
|
7
7
|
spec.name = "mandate"
|
8
8
|
spec.version = Mandate::VERSION
|
9
9
|
spec.authors = ["Jeremy Walker"]
|
10
10
|
spec.email = ["jez.walker@gmail.com"]
|
11
|
-
spec.licenses
|
11
|
+
spec.licenses = ['MIT']
|
12
12
|
|
13
|
-
spec.summary =
|
14
|
-
spec.description =
|
15
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.summary = 'A simple command-pattern helper gem for Ruby'
|
14
|
+
spec.description = 'This Ruby Gem adds functionality for the command pattern in Ruby, and for memoization.'
|
15
|
+
spec.homepage = "https://github.com/iHiD/mandate"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_development_dependency "bundler", "~> 1
|
25
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
26
25
|
spec.add_development_dependency "minitest", "~> 5.0"
|
26
|
+
spec.add_development_dependency "rake", "~> 12.3"
|
27
27
|
end
|
data/package.json
ADDED
data/yarn.lock
ADDED
@@ -0,0 +1,555 @@
|
|
1
|
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
+
# yarn lockfile v1
|
3
|
+
|
4
|
+
|
5
|
+
"@babel/code-frame@^7.0.0":
|
6
|
+
version "7.12.13"
|
7
|
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
|
8
|
+
integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
|
9
|
+
dependencies:
|
10
|
+
"@babel/highlight" "^7.12.13"
|
11
|
+
|
12
|
+
"@babel/helper-validator-identifier@^7.12.11":
|
13
|
+
version "7.12.11"
|
14
|
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
15
|
+
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
16
|
+
|
17
|
+
"@babel/highlight@^7.12.13":
|
18
|
+
version "7.12.13"
|
19
|
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
|
20
|
+
integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
|
21
|
+
dependencies:
|
22
|
+
"@babel/helper-validator-identifier" "^7.12.11"
|
23
|
+
chalk "^2.0.0"
|
24
|
+
js-tokens "^4.0.0"
|
25
|
+
|
26
|
+
"@types/minimatch@^3.0.3":
|
27
|
+
version "3.0.3"
|
28
|
+
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
|
29
|
+
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
|
30
|
+
|
31
|
+
"@types/parse-json@^4.0.0":
|
32
|
+
version "4.0.0"
|
33
|
+
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
|
34
|
+
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
|
35
|
+
|
36
|
+
ansi-styles@^3.2.1:
|
37
|
+
version "3.2.1"
|
38
|
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
39
|
+
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
40
|
+
dependencies:
|
41
|
+
color-convert "^1.9.0"
|
42
|
+
|
43
|
+
ansi-styles@^4.1.0:
|
44
|
+
version "4.3.0"
|
45
|
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
46
|
+
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
|
47
|
+
dependencies:
|
48
|
+
color-convert "^2.0.1"
|
49
|
+
|
50
|
+
array-differ@^3.0.0:
|
51
|
+
version "3.0.0"
|
52
|
+
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
|
53
|
+
integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
|
54
|
+
|
55
|
+
array-union@^2.1.0:
|
56
|
+
version "2.1.0"
|
57
|
+
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
58
|
+
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
59
|
+
|
60
|
+
arrify@^2.0.1:
|
61
|
+
version "2.0.1"
|
62
|
+
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
|
63
|
+
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
|
64
|
+
|
65
|
+
balanced-match@^1.0.0:
|
66
|
+
version "1.0.0"
|
67
|
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
68
|
+
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
69
|
+
|
70
|
+
brace-expansion@^1.1.7:
|
71
|
+
version "1.1.11"
|
72
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
73
|
+
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
74
|
+
dependencies:
|
75
|
+
balanced-match "^1.0.0"
|
76
|
+
concat-map "0.0.1"
|
77
|
+
|
78
|
+
callsites@^3.0.0:
|
79
|
+
version "3.1.0"
|
80
|
+
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
|
81
|
+
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
|
82
|
+
|
83
|
+
chalk@^2.0.0, chalk@^2.4.2:
|
84
|
+
version "2.4.2"
|
85
|
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
86
|
+
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
87
|
+
dependencies:
|
88
|
+
ansi-styles "^3.2.1"
|
89
|
+
escape-string-regexp "^1.0.5"
|
90
|
+
supports-color "^5.3.0"
|
91
|
+
|
92
|
+
chalk@^4.0.0:
|
93
|
+
version "4.1.0"
|
94
|
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
95
|
+
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
96
|
+
dependencies:
|
97
|
+
ansi-styles "^4.1.0"
|
98
|
+
supports-color "^7.1.0"
|
99
|
+
|
100
|
+
ci-info@^2.0.0:
|
101
|
+
version "2.0.0"
|
102
|
+
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
|
103
|
+
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
|
104
|
+
|
105
|
+
color-convert@^1.9.0:
|
106
|
+
version "1.9.3"
|
107
|
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
108
|
+
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
109
|
+
dependencies:
|
110
|
+
color-name "1.1.3"
|
111
|
+
|
112
|
+
color-convert@^2.0.1:
|
113
|
+
version "2.0.1"
|
114
|
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
|
115
|
+
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
|
116
|
+
dependencies:
|
117
|
+
color-name "~1.1.4"
|
118
|
+
|
119
|
+
color-name@1.1.3:
|
120
|
+
version "1.1.3"
|
121
|
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
122
|
+
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
123
|
+
|
124
|
+
color-name@~1.1.4:
|
125
|
+
version "1.1.4"
|
126
|
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
127
|
+
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
128
|
+
|
129
|
+
compare-versions@^3.6.0:
|
130
|
+
version "3.6.0"
|
131
|
+
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
|
132
|
+
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
|
133
|
+
|
134
|
+
concat-map@0.0.1:
|
135
|
+
version "0.0.1"
|
136
|
+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
137
|
+
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
138
|
+
|
139
|
+
cosmiconfig@^7.0.0:
|
140
|
+
version "7.0.0"
|
141
|
+
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
|
142
|
+
integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
|
143
|
+
dependencies:
|
144
|
+
"@types/parse-json" "^4.0.0"
|
145
|
+
import-fresh "^3.2.1"
|
146
|
+
parse-json "^5.0.0"
|
147
|
+
path-type "^4.0.0"
|
148
|
+
yaml "^1.10.0"
|
149
|
+
|
150
|
+
cross-spawn@^7.0.0:
|
151
|
+
version "7.0.3"
|
152
|
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
153
|
+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
154
|
+
dependencies:
|
155
|
+
path-key "^3.1.0"
|
156
|
+
shebang-command "^2.0.0"
|
157
|
+
which "^2.0.1"
|
158
|
+
|
159
|
+
end-of-stream@^1.1.0:
|
160
|
+
version "1.4.4"
|
161
|
+
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
162
|
+
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
163
|
+
dependencies:
|
164
|
+
once "^1.4.0"
|
165
|
+
|
166
|
+
error-ex@^1.3.1:
|
167
|
+
version "1.3.2"
|
168
|
+
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
169
|
+
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
|
170
|
+
dependencies:
|
171
|
+
is-arrayish "^0.2.1"
|
172
|
+
|
173
|
+
escape-string-regexp@^1.0.5:
|
174
|
+
version "1.0.5"
|
175
|
+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
176
|
+
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
177
|
+
|
178
|
+
execa@^2.1.0:
|
179
|
+
version "2.1.0"
|
180
|
+
resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99"
|
181
|
+
integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==
|
182
|
+
dependencies:
|
183
|
+
cross-spawn "^7.0.0"
|
184
|
+
get-stream "^5.0.0"
|
185
|
+
is-stream "^2.0.0"
|
186
|
+
merge-stream "^2.0.0"
|
187
|
+
npm-run-path "^3.0.0"
|
188
|
+
onetime "^5.1.0"
|
189
|
+
p-finally "^2.0.0"
|
190
|
+
signal-exit "^3.0.2"
|
191
|
+
strip-final-newline "^2.0.0"
|
192
|
+
|
193
|
+
find-up@^4.1.0:
|
194
|
+
version "4.1.0"
|
195
|
+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
196
|
+
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
197
|
+
dependencies:
|
198
|
+
locate-path "^5.0.0"
|
199
|
+
path-exists "^4.0.0"
|
200
|
+
|
201
|
+
find-up@^5.0.0:
|
202
|
+
version "5.0.0"
|
203
|
+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
|
204
|
+
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
|
205
|
+
dependencies:
|
206
|
+
locate-path "^6.0.0"
|
207
|
+
path-exists "^4.0.0"
|
208
|
+
|
209
|
+
find-versions@^4.0.0:
|
210
|
+
version "4.0.0"
|
211
|
+
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
|
212
|
+
integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
|
213
|
+
dependencies:
|
214
|
+
semver-regex "^3.1.2"
|
215
|
+
|
216
|
+
get-stream@^5.0.0:
|
217
|
+
version "5.2.0"
|
218
|
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
|
219
|
+
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
|
220
|
+
dependencies:
|
221
|
+
pump "^3.0.0"
|
222
|
+
|
223
|
+
has-flag@^3.0.0:
|
224
|
+
version "3.0.0"
|
225
|
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
226
|
+
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
227
|
+
|
228
|
+
has-flag@^4.0.0:
|
229
|
+
version "4.0.0"
|
230
|
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
231
|
+
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
232
|
+
|
233
|
+
husky@^4.2.5:
|
234
|
+
version "4.3.8"
|
235
|
+
resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
|
236
|
+
integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
|
237
|
+
dependencies:
|
238
|
+
chalk "^4.0.0"
|
239
|
+
ci-info "^2.0.0"
|
240
|
+
compare-versions "^3.6.0"
|
241
|
+
cosmiconfig "^7.0.0"
|
242
|
+
find-versions "^4.0.0"
|
243
|
+
opencollective-postinstall "^2.0.2"
|
244
|
+
pkg-dir "^5.0.0"
|
245
|
+
please-upgrade-node "^3.2.0"
|
246
|
+
slash "^3.0.0"
|
247
|
+
which-pm-runs "^1.0.0"
|
248
|
+
|
249
|
+
ignore@^5.1.4:
|
250
|
+
version "5.1.8"
|
251
|
+
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
|
252
|
+
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
|
253
|
+
|
254
|
+
import-fresh@^3.2.1:
|
255
|
+
version "3.3.0"
|
256
|
+
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
257
|
+
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
|
258
|
+
dependencies:
|
259
|
+
parent-module "^1.0.0"
|
260
|
+
resolve-from "^4.0.0"
|
261
|
+
|
262
|
+
is-arrayish@^0.2.1:
|
263
|
+
version "0.2.1"
|
264
|
+
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
265
|
+
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
266
|
+
|
267
|
+
is-stream@^2.0.0:
|
268
|
+
version "2.0.0"
|
269
|
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
|
270
|
+
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
|
271
|
+
|
272
|
+
isexe@^2.0.0:
|
273
|
+
version "2.0.0"
|
274
|
+
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
275
|
+
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
276
|
+
|
277
|
+
js-tokens@^4.0.0:
|
278
|
+
version "4.0.0"
|
279
|
+
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
280
|
+
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
281
|
+
|
282
|
+
json-parse-even-better-errors@^2.3.0:
|
283
|
+
version "2.3.1"
|
284
|
+
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
|
285
|
+
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
|
286
|
+
|
287
|
+
lines-and-columns@^1.1.6:
|
288
|
+
version "1.1.6"
|
289
|
+
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
|
290
|
+
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
|
291
|
+
|
292
|
+
locate-path@^5.0.0:
|
293
|
+
version "5.0.0"
|
294
|
+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
|
295
|
+
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
|
296
|
+
dependencies:
|
297
|
+
p-locate "^4.1.0"
|
298
|
+
|
299
|
+
locate-path@^6.0.0:
|
300
|
+
version "6.0.0"
|
301
|
+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
|
302
|
+
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
|
303
|
+
dependencies:
|
304
|
+
p-locate "^5.0.0"
|
305
|
+
|
306
|
+
merge-stream@^2.0.0:
|
307
|
+
version "2.0.0"
|
308
|
+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
309
|
+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
310
|
+
|
311
|
+
mimic-fn@^2.1.0:
|
312
|
+
version "2.1.0"
|
313
|
+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
314
|
+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
315
|
+
|
316
|
+
minimatch@^3.0.4:
|
317
|
+
version "3.0.4"
|
318
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
319
|
+
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
320
|
+
dependencies:
|
321
|
+
brace-expansion "^1.1.7"
|
322
|
+
|
323
|
+
mri@^1.1.4:
|
324
|
+
version "1.1.6"
|
325
|
+
resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6"
|
326
|
+
integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==
|
327
|
+
|
328
|
+
multimatch@^4.0.0:
|
329
|
+
version "4.0.0"
|
330
|
+
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3"
|
331
|
+
integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==
|
332
|
+
dependencies:
|
333
|
+
"@types/minimatch" "^3.0.3"
|
334
|
+
array-differ "^3.0.0"
|
335
|
+
array-union "^2.1.0"
|
336
|
+
arrify "^2.0.1"
|
337
|
+
minimatch "^3.0.4"
|
338
|
+
|
339
|
+
npm-run-path@^3.0.0:
|
340
|
+
version "3.1.0"
|
341
|
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5"
|
342
|
+
integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==
|
343
|
+
dependencies:
|
344
|
+
path-key "^3.0.0"
|
345
|
+
|
346
|
+
once@^1.3.1, once@^1.4.0:
|
347
|
+
version "1.4.0"
|
348
|
+
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
349
|
+
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
350
|
+
dependencies:
|
351
|
+
wrappy "1"
|
352
|
+
|
353
|
+
onetime@^5.1.0:
|
354
|
+
version "5.1.2"
|
355
|
+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
356
|
+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
357
|
+
dependencies:
|
358
|
+
mimic-fn "^2.1.0"
|
359
|
+
|
360
|
+
opencollective-postinstall@^2.0.2:
|
361
|
+
version "2.0.3"
|
362
|
+
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
|
363
|
+
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
|
364
|
+
|
365
|
+
p-finally@^2.0.0:
|
366
|
+
version "2.0.1"
|
367
|
+
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
|
368
|
+
integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
|
369
|
+
|
370
|
+
p-limit@^2.2.0:
|
371
|
+
version "2.3.0"
|
372
|
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
373
|
+
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
374
|
+
dependencies:
|
375
|
+
p-try "^2.0.0"
|
376
|
+
|
377
|
+
p-limit@^3.0.2:
|
378
|
+
version "3.1.0"
|
379
|
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
380
|
+
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
381
|
+
dependencies:
|
382
|
+
yocto-queue "^0.1.0"
|
383
|
+
|
384
|
+
p-locate@^4.1.0:
|
385
|
+
version "4.1.0"
|
386
|
+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
|
387
|
+
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
|
388
|
+
dependencies:
|
389
|
+
p-limit "^2.2.0"
|
390
|
+
|
391
|
+
p-locate@^5.0.0:
|
392
|
+
version "5.0.0"
|
393
|
+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
|
394
|
+
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
|
395
|
+
dependencies:
|
396
|
+
p-limit "^3.0.2"
|
397
|
+
|
398
|
+
p-try@^2.0.0:
|
399
|
+
version "2.2.0"
|
400
|
+
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
401
|
+
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
402
|
+
|
403
|
+
parent-module@^1.0.0:
|
404
|
+
version "1.0.1"
|
405
|
+
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
406
|
+
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
|
407
|
+
dependencies:
|
408
|
+
callsites "^3.0.0"
|
409
|
+
|
410
|
+
parse-json@^5.0.0:
|
411
|
+
version "5.2.0"
|
412
|
+
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
|
413
|
+
integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
|
414
|
+
dependencies:
|
415
|
+
"@babel/code-frame" "^7.0.0"
|
416
|
+
error-ex "^1.3.1"
|
417
|
+
json-parse-even-better-errors "^2.3.0"
|
418
|
+
lines-and-columns "^1.1.6"
|
419
|
+
|
420
|
+
path-exists@^4.0.0:
|
421
|
+
version "4.0.0"
|
422
|
+
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
423
|
+
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
424
|
+
|
425
|
+
path-key@^3.0.0, path-key@^3.1.0:
|
426
|
+
version "3.1.1"
|
427
|
+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
428
|
+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
429
|
+
|
430
|
+
path-type@^4.0.0:
|
431
|
+
version "4.0.0"
|
432
|
+
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
433
|
+
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
434
|
+
|
435
|
+
pkg-dir@^5.0.0:
|
436
|
+
version "5.0.0"
|
437
|
+
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
|
438
|
+
integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
|
439
|
+
dependencies:
|
440
|
+
find-up "^5.0.0"
|
441
|
+
|
442
|
+
please-upgrade-node@^3.2.0:
|
443
|
+
version "3.2.0"
|
444
|
+
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
|
445
|
+
integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
|
446
|
+
dependencies:
|
447
|
+
semver-compare "^1.0.0"
|
448
|
+
|
449
|
+
prettier@^2.0.5:
|
450
|
+
version "2.2.1"
|
451
|
+
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
|
452
|
+
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
|
453
|
+
|
454
|
+
pretty-quick@^2.0.1:
|
455
|
+
version "2.0.2"
|
456
|
+
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6"
|
457
|
+
integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==
|
458
|
+
dependencies:
|
459
|
+
chalk "^2.4.2"
|
460
|
+
execa "^2.1.0"
|
461
|
+
find-up "^4.1.0"
|
462
|
+
ignore "^5.1.4"
|
463
|
+
mri "^1.1.4"
|
464
|
+
multimatch "^4.0.0"
|
465
|
+
|
466
|
+
pump@^3.0.0:
|
467
|
+
version "3.0.0"
|
468
|
+
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
469
|
+
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
470
|
+
dependencies:
|
471
|
+
end-of-stream "^1.1.0"
|
472
|
+
once "^1.3.1"
|
473
|
+
|
474
|
+
resolve-from@^4.0.0:
|
475
|
+
version "4.0.0"
|
476
|
+
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
|
477
|
+
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
|
478
|
+
|
479
|
+
semver-compare@^1.0.0:
|
480
|
+
version "1.0.0"
|
481
|
+
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
|
482
|
+
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
|
483
|
+
|
484
|
+
semver-regex@^3.1.2:
|
485
|
+
version "3.1.2"
|
486
|
+
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
|
487
|
+
integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
|
488
|
+
|
489
|
+
shebang-command@^2.0.0:
|
490
|
+
version "2.0.0"
|
491
|
+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
492
|
+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
493
|
+
dependencies:
|
494
|
+
shebang-regex "^3.0.0"
|
495
|
+
|
496
|
+
shebang-regex@^3.0.0:
|
497
|
+
version "3.0.0"
|
498
|
+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
499
|
+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
500
|
+
|
501
|
+
signal-exit@^3.0.2:
|
502
|
+
version "3.0.3"
|
503
|
+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
504
|
+
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
|
505
|
+
|
506
|
+
slash@^3.0.0:
|
507
|
+
version "3.0.0"
|
508
|
+
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
509
|
+
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
510
|
+
|
511
|
+
strip-final-newline@^2.0.0:
|
512
|
+
version "2.0.0"
|
513
|
+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
514
|
+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
515
|
+
|
516
|
+
supports-color@^5.3.0:
|
517
|
+
version "5.5.0"
|
518
|
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
519
|
+
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
520
|
+
dependencies:
|
521
|
+
has-flag "^3.0.0"
|
522
|
+
|
523
|
+
supports-color@^7.1.0:
|
524
|
+
version "7.2.0"
|
525
|
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
526
|
+
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
527
|
+
dependencies:
|
528
|
+
has-flag "^4.0.0"
|
529
|
+
|
530
|
+
which-pm-runs@^1.0.0:
|
531
|
+
version "1.0.0"
|
532
|
+
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
|
533
|
+
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
|
534
|
+
|
535
|
+
which@^2.0.1:
|
536
|
+
version "2.0.2"
|
537
|
+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
538
|
+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
539
|
+
dependencies:
|
540
|
+
isexe "^2.0.0"
|
541
|
+
|
542
|
+
wrappy@1:
|
543
|
+
version "1.0.2"
|
544
|
+
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
545
|
+
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
546
|
+
|
547
|
+
yaml@^1.10.0:
|
548
|
+
version "1.10.0"
|
549
|
+
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
|
550
|
+
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
|
551
|
+
|
552
|
+
yocto-queue@^0.1.0:
|
553
|
+
version "0.1.0"
|
554
|
+
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
555
|
+
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mandate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Walker
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '2.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '5.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '12.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '12.3'
|
55
55
|
description: This Ruby Gem adds functionality for the command pattern in Ruby, and
|
56
56
|
for memoization.
|
57
57
|
email:
|
@@ -60,24 +60,34 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
+
- ".github/workflows/rubocop.yml"
|
64
|
+
- ".github/workflows/tests.yml"
|
63
65
|
- ".gitignore"
|
64
|
-
- ".
|
66
|
+
- ".rubocop.yml"
|
67
|
+
- ".ruby-version"
|
68
|
+
- CHANGELOG.md
|
65
69
|
- Gemfile
|
66
70
|
- LICENCE
|
67
71
|
- README.md
|
68
72
|
- Rakefile
|
69
73
|
- bin/console
|
74
|
+
- bin/release
|
75
|
+
- bin/rubocop-quick
|
70
76
|
- bin/setup
|
71
77
|
- lib/mandate.rb
|
72
78
|
- lib/mandate/call_injector.rb
|
79
|
+
- lib/mandate/callbacks.rb
|
80
|
+
- lib/mandate/initializer_injector.rb
|
73
81
|
- lib/mandate/memoize.rb
|
74
82
|
- lib/mandate/version.rb
|
75
83
|
- mandate.gemspec
|
76
|
-
|
84
|
+
- package.json
|
85
|
+
- yarn.lock
|
86
|
+
homepage: https://github.com/iHiD/mandate
|
77
87
|
licenses:
|
78
88
|
- MIT
|
79
89
|
metadata: {}
|
80
|
-
post_install_message:
|
90
|
+
post_install_message:
|
81
91
|
rdoc_options: []
|
82
92
|
require_paths:
|
83
93
|
- lib
|
@@ -85,17 +95,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
95
|
requirements:
|
86
96
|
- - ">="
|
87
97
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
98
|
+
version: 2.6.0
|
89
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
100
|
requirements:
|
91
|
-
- - "
|
101
|
+
- - ">"
|
92
102
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
103
|
+
version: 1.3.1
|
94
104
|
requirements: []
|
95
|
-
|
96
|
-
|
97
|
-
signing_key:
|
105
|
+
rubygems_version: 3.0.3
|
106
|
+
signing_key:
|
98
107
|
specification_version: 4
|
99
108
|
summary: A simple command-pattern helper gem for Ruby
|
100
109
|
test_files: []
|
101
|
-
has_rdoc:
|