mandate 0.1.1 → 1.0.0.beta1
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 +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
|
+

|
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:
|