mry 0.48.1.2 → 0.48.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/lib/mry/runner.rb +16 -8
- data/lib/mry/version.rb +1 -1
- data/lib/yaml_rewriter/rewriter.rb +22 -9
- data/lib/yaml_rewriter/rule.rb +19 -0
- data/lib/yaml_rewriter.rb +1 -0
- metadata +3 -3
- data/lib/yaml_rewriter/traverser.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d415c40a4beeefad120b1b85cb2ced332c3ebb68
|
4
|
+
data.tar.gz: 8f55ba2c7857a4616021713e8791adf244e2f6c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7deb835c75e56e136700d681fc5ef5eb19c631bf802e2d9ec93dbb4673b1b34a5dc4b9bbb408875ce329dac685934825a73a34f6d7c3a178dcb44bc458cd5482
|
7
|
+
data.tar.gz: 3f7cc6aab1e6f9ac26d7f4efcc31f9c0960766dd36ca2c04aa9d92c619b3e7bba48aa13cf2075c6cd9e1ff6c5f70719d547d330c39db08d099cc85436578731a
|
data/CHANGELOG.md
CHANGED
@@ -2,11 +2,17 @@
|
|
2
2
|
|
3
3
|
## master (unreleased)
|
4
4
|
|
5
|
+
## 0.48.1.3 (2017-05-15)
|
6
|
+
|
7
|
+
### New Features
|
8
|
+
|
9
|
+
- [#10](https://github.com/pocke/mry/pull/10): Support downgrading RuboCop version. ([@pocke][])
|
10
|
+
|
5
11
|
## 0.48.1.2 (2017-05-5)
|
6
12
|
|
7
13
|
### Bug fixes
|
8
14
|
|
9
|
-
- [#7](https://github.com/pocke/mry/issues/7): Prevent mry command from breaking without `--target` option ([@pocke][])
|
15
|
+
- [#7](https://github.com/pocke/mry/issues/7): Prevent mry command from breaking without `--target` option. ([@pocke][])
|
10
16
|
|
11
17
|
|
12
18
|
|
data/lib/mry/runner.rb
CHANGED
@@ -8,23 +8,31 @@ module Mry
|
|
8
8
|
|
9
9
|
class << self
|
10
10
|
def run(files, target)
|
11
|
-
rewriters =
|
12
|
-
if target == :master
|
13
|
-
(Rewriters.values + [Rewriter_Master]).reverse
|
14
|
-
else
|
15
|
-
Rewriters
|
16
|
-
.select{|key, _value| target >= key}
|
17
|
-
.values.reverse
|
18
|
-
end
|
11
|
+
rewriters, reverse_rewriters = *rewriters(target)
|
19
12
|
|
20
13
|
files.each do |file|
|
21
14
|
yaml = File.read(file)
|
15
|
+
reverse_rewriters.each do |r|
|
16
|
+
yaml = r.new(yaml, reverse: true).rewrite
|
17
|
+
end
|
22
18
|
rewriters.each do |r|
|
23
19
|
yaml = r.new(yaml).rewrite
|
24
20
|
end
|
25
21
|
File.write(file, yaml)
|
26
22
|
end
|
27
23
|
end
|
24
|
+
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
# @return [Array<Array<Rewriter>>]
|
29
|
+
def rewriters(target)
|
30
|
+
return [(Rewriters.values + [Rewriter_Master]).reverse, []] if target == :master
|
31
|
+
|
32
|
+
Rewriters
|
33
|
+
.partition{|key, _value| target >= key}
|
34
|
+
.map{|rewriters| rewriters.map{|k, v| v}.reverse}
|
35
|
+
end
|
28
36
|
end
|
29
37
|
end
|
30
38
|
end
|
data/lib/mry/version.rb
CHANGED
@@ -1,15 +1,33 @@
|
|
1
1
|
module YAMLRewriter
|
2
|
+
# Usage:
|
3
|
+
# class MyRewriter < YAMLRewriter::Rewriter
|
4
|
+
# define_rule ['foo' => 'bar']
|
5
|
+
# define_rule ['one', 'two', 'threeee' => 'three']
|
6
|
+
# end
|
7
|
+
#
|
8
|
+
# MyRewriter.new('foo: baz').rewrite # => 'bar: baz'
|
9
|
+
#
|
10
|
+
# rewriter = MyRewriter.new(<<-END)
|
11
|
+
# one:
|
12
|
+
# two:
|
13
|
+
# threeee: 123
|
14
|
+
# END
|
15
|
+
# rewriter.rewrite # => one:
|
16
|
+
# two:
|
17
|
+
# three: 123
|
2
18
|
class Rewriter
|
3
19
|
using ScalarWithMark
|
4
20
|
# @param yaml [String]
|
5
|
-
|
21
|
+
# @param reverse [true|false]
|
22
|
+
def initialize(yaml, reverse: false)
|
6
23
|
@yaml = yaml.dup
|
24
|
+
@reverse = reverse
|
7
25
|
@offset = 0
|
8
26
|
end
|
9
27
|
|
10
28
|
# @param rule [Array]
|
11
29
|
def self.define_rule(rule)
|
12
|
-
rules.push(rule)
|
30
|
+
rules.push(Rule.new(rule))
|
13
31
|
end
|
14
32
|
|
15
33
|
def self.rules
|
@@ -42,20 +60,15 @@ module YAMLRewriter
|
|
42
60
|
|
43
61
|
def rewrite_yaml(path, key)
|
44
62
|
self.class.rules.each do |rule|
|
45
|
-
next unless
|
63
|
+
next unless rule.match?(path, reverse: @reverse)
|
46
64
|
|
47
65
|
index = key.mark.index + @offset
|
48
66
|
prev = key.value
|
49
|
-
new = rule.
|
67
|
+
new = rule.replacement(prev, reverse: @reverse)
|
50
68
|
start_index = @yaml.rindex(prev, index)
|
51
69
|
@yaml[start_index..(start_index+prev.size-1)] = new
|
52
70
|
@offset += new.size-prev.size
|
53
71
|
end
|
54
72
|
end
|
55
|
-
|
56
|
-
def match_rule(rule, path)
|
57
|
-
rule_path = rule[0..-2] + [rule.last.keys.first]
|
58
|
-
rule_path == (path[(path.size-rule.size)..-1])
|
59
|
-
end
|
60
73
|
end
|
61
74
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module YAMLRewriter
|
2
|
+
class Rule
|
3
|
+
def initialize(rule)
|
4
|
+
@rule = rule
|
5
|
+
end
|
6
|
+
|
7
|
+
def match?(path, reverse:)
|
8
|
+
rule_path = @rule[0..-2] +
|
9
|
+
(reverse ? [@rule.last.values.first] : [@rule.last.keys.first])
|
10
|
+
rule_path == (path[(path.size-@rule.size)..-1])
|
11
|
+
end
|
12
|
+
|
13
|
+
def replacement(key, reverse:)
|
14
|
+
reverse ?
|
15
|
+
@rule.last.invert[key] :
|
16
|
+
@rule.last[key]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/yaml_rewriter.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.48.1.
|
4
|
+
version: 0.48.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masataka Kuwabara
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -139,8 +139,8 @@ files:
|
|
139
139
|
- lib/yaml_rewriter/mark_handler.rb
|
140
140
|
- lib/yaml_rewriter/parser.rb
|
141
141
|
- lib/yaml_rewriter/rewriter.rb
|
142
|
+
- lib/yaml_rewriter/rule.rb
|
142
143
|
- lib/yaml_rewriter/scalar_with_mark.rb
|
143
|
-
- lib/yaml_rewriter/traverser.rb
|
144
144
|
- mry.gemspec
|
145
145
|
homepage: https://github.com/pocke/mry
|
146
146
|
licenses:
|