diff_resource 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +80 -6
- data/diff_resource.gemspec +4 -9
- data/lib/diff_resource.rb +6 -0
- data/lib/diff_resource/cli.rb +44 -11
- data/lib/diff_resource/factory/parser_factory.rb +7 -1
- data/lib/diff_resource/inputer/directory_inputer.rb +3 -3
- data/lib/diff_resource/inputer/git_inputer.rb +7 -5
- data/lib/diff_resource/inputer/inputer.rb +8 -0
- data/lib/diff_resource/outputer.rb +1 -1
- data/lib/diff_resource/parser/json_parser.rb +9 -0
- data/lib/diff_resource/parser/parser.rb +57 -0
- data/lib/diff_resource/parser/resx_parser.rb +6 -21
- data/lib/diff_resource/parser/xml_parser.rb +17 -0
- data/lib/diff_resource/parser/yaml_parser.rb +9 -0
- data/lib/diff_resource/settings.rb +27 -0
- data/lib/diff_resource/version.rb +1 -1
- metadata +25 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f83a8b303a0e68fe400890c01806943b3e859e8c
|
4
|
+
data.tar.gz: 6c46fc4c27851bf2995a2a6914f43d0f99494562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3bd3ef70dc9d71bbe7c0ea28b7a43d7c782ad32b65ba570a4c287e9965ecad6e1ccd6d7078659169d318c4f91d07678c85259a02ffaffa54b9d513d728889c1
|
7
|
+
data.tar.gz: a006e492731f9f5456ebf03b86a9db5fe77c82a3b98a9a0309c15254cc5328230e59e66f36388954ad0e4f7491a6d76f8129a7332248d7805932bfe8358df06f
|
data/README.md
CHANGED
@@ -23,32 +23,106 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
-
output your resource file's diff list, you
|
26
|
+
To output your resource file's diff list, you run under command.
|
27
27
|
|
28
28
|
Usage:
|
29
29
|
```bash
|
30
|
-
diff_resource create <directory> <comparison> <file> [<options>]
|
30
|
+
diff_resource create <directory> <comparison> <file> <type> [<options>]
|
31
31
|
```
|
32
32
|
|
33
33
|
Options:
|
34
|
-
- -t, --type=TYPE : resource file type
|
35
34
|
- -o, [--output=OUTPUT] : output file path.
|
36
35
|
- -c, [--compare=COMPARE] : comparison target type. other directory or git object
|
36
|
+
- -s, [--setting=SETTING] : setting file path
|
37
37
|
|
38
38
|
Arguments:
|
39
39
|
- directory: resource file root path
|
40
40
|
- comparison: compare directory path or git hash
|
41
41
|
- file: resource file name format ex) test.resource, \*.resource, \*-en.resource
|
42
|
+
- type: resource file type. you can set custom type in .diffresource.yml
|
42
43
|
|
44
|
+
You should run on git root directory when using git mode.
|
43
45
|
|
44
|
-
|
46
|
+
To show detail, you run under command.
|
45
47
|
```bash
|
46
48
|
diff_resource help create
|
47
49
|
```
|
48
50
|
|
49
|
-
##
|
51
|
+
## Settings File Format
|
50
52
|
|
51
|
-
To
|
53
|
+
To create custom resource type and set custom default option value, you create ".diffresource.yml" as the following.
|
54
|
+
```yaml
|
55
|
+
types:
|
56
|
+
custom-resource : # custom resource type name
|
57
|
+
format: "xml" # file format. xml, json, yaml are enable value
|
58
|
+
root : "data" # resources object name. if object is nested, you set path split "."
|
59
|
+
key : "key" # resource name. * means resources object is hash
|
60
|
+
value : "value" # resource value
|
61
|
+
|
62
|
+
comparison: "dir" # custom comparison value
|
63
|
+
|
64
|
+
output: "./dir" # custom output value
|
65
|
+
```
|
66
|
+
|
67
|
+
It is enable to parse like these format resources.
|
68
|
+
|
69
|
+
```xml
|
70
|
+
<?xml version="1.0" encoding="utf-8"?>
|
71
|
+
<root>
|
72
|
+
<data key="string1">
|
73
|
+
<value>hello</value>
|
74
|
+
</data>
|
75
|
+
<data key="string2">
|
76
|
+
<value>hello hello</value>
|
77
|
+
</data>
|
78
|
+
</root>
|
79
|
+
```
|
80
|
+
|
81
|
+
Case resources object is nested, you should set path split "." as the following.
|
82
|
+
|
83
|
+
```yaml
|
84
|
+
types:
|
85
|
+
custom-resource :
|
86
|
+
format: "json"
|
87
|
+
root : "root.data"
|
88
|
+
key : "key"
|
89
|
+
value : "value"
|
90
|
+
```
|
91
|
+
|
92
|
+
It is enable to parse like these format resources.
|
93
|
+
```json
|
94
|
+
{
|
95
|
+
"root" :{
|
96
|
+
"data" : [
|
97
|
+
{
|
98
|
+
"key" : "string1",
|
99
|
+
"value" : "hello"
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"key" : "string2",
|
103
|
+
"value" : "hello hello"
|
104
|
+
}
|
105
|
+
]
|
106
|
+
}
|
107
|
+
}
|
108
|
+
```
|
109
|
+
|
110
|
+
Case resources object is hash, you should set "\*" to key as the following.
|
111
|
+
```yaml
|
112
|
+
types:
|
113
|
+
custom-resource :
|
114
|
+
format: "yaml"
|
115
|
+
root : "root.data"
|
116
|
+
key : "*"
|
117
|
+
```
|
118
|
+
|
119
|
+
It is enable to parse like these format resources.
|
120
|
+
```yaml
|
121
|
+
root:
|
122
|
+
data:
|
123
|
+
string1: "hello"
|
124
|
+
string2: "hello hello"
|
125
|
+
```
|
52
126
|
|
53
127
|
## Contributing
|
54
128
|
|
data/diff_resource.gemspec
CHANGED
@@ -10,18 +10,10 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["katsu.generation.888@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = "Output resource file diffs"
|
13
|
-
spec.description = "Output resource file diffs.You can
|
13
|
+
spec.description = "Output resource file diffs.You can output original format resource file diff"
|
14
14
|
spec.homepage = "https://github.com/katsugeneration/diff-resource"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
18
|
-
# delete this section to allow pushing this gem to any host.
|
19
|
-
if spec.respond_to?(:metadata)
|
20
|
-
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
-
else
|
22
|
-
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
23
|
-
end
|
24
|
-
|
25
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |file|
|
26
18
|
file =~ %r{^(?:
|
27
19
|
spec/.*
|
@@ -35,9 +27,12 @@ Gem::Specification.new do |spec|
|
|
35
27
|
spec.bindir = "bin"
|
36
28
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
37
29
|
spec.require_paths = ["lib"]
|
30
|
+
spec.required_ruby_version = "~> 2.0"
|
38
31
|
|
39
32
|
spec.add_development_dependency "bundler"
|
40
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
41
34
|
spec.add_development_dependency "rspec"
|
35
|
+
|
42
36
|
spec.add_runtime_dependency "thor"
|
37
|
+
spec.add_runtime_dependency "xml-simple"
|
43
38
|
end
|
data/lib/diff_resource.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "diff_resource/version"
|
2
2
|
|
3
|
+
require "diff_resource/inputer/inputer"
|
3
4
|
require "diff_resource/inputer/directory_inputer"
|
4
5
|
require "diff_resource/inputer/git_inputer"
|
5
6
|
|
@@ -8,7 +9,12 @@ require "diff_resource/outputer"
|
|
8
9
|
require "diff_resource/comparer"
|
9
10
|
|
10
11
|
require "diff_resource/parser/parser"
|
12
|
+
require "diff_resource/parser/xml_parser"
|
11
13
|
require "diff_resource/parser/resx_parser"
|
14
|
+
require "diff_resource/parser/json_parser"
|
15
|
+
require "diff_resource/parser/yaml_parser"
|
16
|
+
|
17
|
+
require "diff_resource/settings.rb"
|
12
18
|
|
13
19
|
require "diff_resource/factory/parser_factory"
|
14
20
|
require "diff_resource/factory/inputer_factory"
|
data/lib/diff_resource/cli.rb
CHANGED
@@ -2,34 +2,67 @@ require 'thor'
|
|
2
2
|
|
3
3
|
module DiffResource
|
4
4
|
class Cli < Thor
|
5
|
-
desc "create <directory> <comparison> <file> [<options>]", <<-EOS
|
5
|
+
desc "create <directory> <comparison> <file> <type> [<options>]", <<-EOS
|
6
6
|
create resource diff file
|
7
7
|
- directory: resource file root path
|
8
8
|
- comparison: compare directory path or git object
|
9
9
|
- file: resource file name format
|
10
10
|
ex) test.resource, *.resource, *-en.resource
|
11
|
+
- type: resource file type
|
12
|
+
you set custom type in .diffresource.yml
|
11
13
|
|
12
14
|
EOS
|
13
|
-
method_option :
|
14
|
-
method_option :
|
15
|
-
method_option :
|
16
|
-
def create target_dir = nil, comparison_target = nil, target_file = nil
|
17
|
-
|
15
|
+
method_option :output, :aliases => "-o", :type => :string, :desc => "output file path."
|
16
|
+
method_option :comparison, :aliases => "-c", :enum => %w(dir git), :desc => "comparison target type. other directory or git hash"
|
17
|
+
method_option :setting, :aliases => "-s", :default => "./.diffresource.yml", :desc => "setting file path"
|
18
|
+
def create target_dir = nil, comparison_target = nil, target_file = nil, target_type = nil
|
19
|
+
p target_type
|
20
|
+
option = DiffResource::Cli.make_options options, target_type
|
21
|
+
|
22
|
+
parser = DiffResource::ParserFactory.create option[:type]
|
18
23
|
inputer = DiffResource::InputerFactory.create "dir"
|
19
|
-
comparison_inputer = DiffResource::InputerFactory.create
|
24
|
+
comparison_inputer = DiffResource::InputerFactory.create option[:comparison]
|
20
25
|
|
21
|
-
#
|
22
|
-
if
|
26
|
+
# in git mode, comparison dir is same to new resources and comprison_target is git object
|
27
|
+
if option[:comparison] == "git"
|
23
28
|
comparison_inputer.reference = comparison_target
|
24
29
|
comparison_target = target_dir
|
25
30
|
end
|
26
31
|
|
27
32
|
new_resources = inputer.parse_files target_dir, target_file, parser
|
28
33
|
old_resources = comparison_inputer.parse_files comparison_target, target_file, parser
|
29
|
-
|
30
34
|
comparer = DiffResource::Comparer.new new_resources, old_resources
|
35
|
+
|
31
36
|
outputer = DiffResource::Outputer.new
|
32
|
-
outputer.output comparer.diffs,
|
37
|
+
outputer.output comparer.diffs, option[:output]
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.load_settings file_name
|
41
|
+
begin
|
42
|
+
open file_name do |file|
|
43
|
+
return DiffResource::Settings.new file
|
44
|
+
end
|
45
|
+
rescue
|
46
|
+
return DiffResource::Settings.new ""
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.add_resx_format settings
|
51
|
+
settings.types["resx"] = { "format" => "resx", "root" => "data", "key" => "name", "value" => "value" }
|
52
|
+
return settings
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.make_options options, type
|
56
|
+
ret = {}
|
57
|
+
|
58
|
+
settings = DiffResource::Cli.load_settings options[:setting]
|
59
|
+
settings = DiffResource::Cli.add_resx_format settings
|
60
|
+
|
61
|
+
ret[:type] = settings.types[type]
|
62
|
+
ret[:comparison] = options[:comparison] || settings.comparison || "dir"
|
63
|
+
ret[:output] = options[:output] || settings.output || "./diffs.csv"
|
64
|
+
|
65
|
+
return ret
|
33
66
|
end
|
34
67
|
end
|
35
68
|
end
|
@@ -2,9 +2,15 @@
|
|
2
2
|
module DiffResource
|
3
3
|
class ParserFactory
|
4
4
|
def self.create type
|
5
|
-
return case type
|
5
|
+
return case type["format"]
|
6
6
|
when "resx"
|
7
7
|
DiffResource::ResxParser.new
|
8
|
+
when "xml"
|
9
|
+
DiffResource::XmlParser.new
|
10
|
+
when "json"
|
11
|
+
DiffResource::JsonParser.new type
|
12
|
+
when "yaml"
|
13
|
+
DiffResource::YamlParser.new type
|
8
14
|
else
|
9
15
|
fail ArgumentError.new, 'undefined parser type'
|
10
16
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
module DiffResource
|
3
|
-
class DirectoryInputer
|
3
|
+
class DirectoryInputer < Inputer
|
4
4
|
def parse_file file_name, parser
|
5
5
|
ret = []
|
6
6
|
begin
|
@@ -8,7 +8,7 @@ module DiffResource
|
|
8
8
|
ret = parser.parse file.read
|
9
9
|
end
|
10
10
|
rescue => e
|
11
|
-
|
11
|
+
puts e.message
|
12
12
|
end
|
13
13
|
|
14
14
|
return ret
|
@@ -23,7 +23,7 @@ module DiffResource
|
|
23
23
|
resources += parse_files File.absolute_path(file, path), extension, parser
|
24
24
|
end
|
25
25
|
elsif FileTest.file? path
|
26
|
-
resources += parse_file path, parser if
|
26
|
+
resources += parse_file path, parser if match? extension, path
|
27
27
|
end
|
28
28
|
|
29
29
|
return resources
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
require 'pathname'
|
2
2
|
module DiffResource
|
3
|
-
class GitInputer
|
3
|
+
class GitInputer < Inputer
|
4
4
|
attr_accessor :reference
|
5
5
|
|
6
6
|
def parse_file file_name, parser
|
@@ -13,14 +13,16 @@ module DiffResource
|
|
13
13
|
|
14
14
|
def parse_files path, extension, parser
|
15
15
|
resources = []
|
16
|
+
base = Pathname.getwd
|
16
17
|
|
17
18
|
if directory? path
|
18
|
-
contents = `git ls-tree --name-only #{reference}:#{path}`
|
19
|
+
contents = `git ls-tree --name-only #{reference}:#{path}` # ls-tree command bad work on non root dir
|
19
20
|
contents.split("\n").each do |file|
|
20
|
-
|
21
|
+
relative_file_path = Pathname(File.expand_path(file, path)).relative_path_from(base).to_s
|
22
|
+
resources += parse_files relative_file_path, extension, parser
|
21
23
|
end
|
22
24
|
elsif file? path
|
23
|
-
resources += parse_file path, parser if
|
25
|
+
resources += parse_file path, parser if match? extension, path
|
24
26
|
end
|
25
27
|
|
26
28
|
return resources
|
@@ -3,7 +3,64 @@ module DiffResource
|
|
3
3
|
class Parser
|
4
4
|
@@resource = Struct.new "Resource", :key, :value
|
5
5
|
|
6
|
+
def initialize options = {}
|
7
|
+
@root = options["root"] || ""
|
8
|
+
@key = options["key"] || ""
|
9
|
+
@value = options["value"] || ""
|
10
|
+
end
|
11
|
+
|
12
|
+
def nested_hash_access hash, path
|
13
|
+
ret = hash
|
14
|
+
path.split(".").each do |symbol|
|
15
|
+
ret = ret[symbol]
|
16
|
+
end
|
17
|
+
|
18
|
+
return ret
|
19
|
+
end
|
20
|
+
|
6
21
|
def parse str
|
22
|
+
ret = []
|
23
|
+
begin
|
24
|
+
obj = parse_string str
|
25
|
+
root = nested_hash_access obj, @root
|
26
|
+
|
27
|
+
ret = if @key == "*"
|
28
|
+
parse_hash root
|
29
|
+
else
|
30
|
+
parse_array root
|
31
|
+
end
|
32
|
+
rescue => e
|
33
|
+
puts e.message
|
34
|
+
end
|
35
|
+
|
36
|
+
return ret
|
37
|
+
end
|
38
|
+
|
39
|
+
def parse_array root
|
40
|
+
ret = []
|
41
|
+
root.each do |item|
|
42
|
+
next unless parsre_target? item
|
43
|
+
key = nested_hash_access item, @key
|
44
|
+
value = nested_hash_access item, @value
|
45
|
+
ret << @@resource.new(key, value)
|
46
|
+
end
|
47
|
+
return ret
|
48
|
+
end
|
49
|
+
|
50
|
+
def parse_hash root
|
51
|
+
ret = []
|
52
|
+
root.each do |key, value|
|
53
|
+
next unless parsre_target? key
|
54
|
+
ret << @@resource.new(key, value)
|
55
|
+
end
|
56
|
+
return ret
|
57
|
+
end
|
58
|
+
|
59
|
+
def parse_string str
|
60
|
+
end
|
61
|
+
|
62
|
+
def parsre_target? item
|
63
|
+
return true
|
7
64
|
end
|
8
65
|
end
|
9
66
|
end
|
@@ -1,27 +1,12 @@
|
|
1
|
-
require 'rexml/document'
|
2
1
|
|
3
2
|
module DiffResource
|
4
|
-
class ResxParser <
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
resx = REXML::Document.new str
|
9
|
-
|
10
|
-
REXML::XPath.match(resx, "/root/data").map do |data|
|
11
|
-
type = data.attribute("type")
|
12
|
-
next unless type.nil?
|
13
|
-
|
14
|
-
key = data.attribute("name").value
|
15
|
-
value_element = data.elements["value"]
|
16
|
-
value = value_element ? value_element.text : nil
|
17
|
-
|
18
|
-
ret << @@resource.new(key, value)
|
19
|
-
end
|
20
|
-
rescue => e
|
21
|
-
p e.message
|
22
|
-
end
|
3
|
+
class ResxParser < XmlParser
|
4
|
+
def initialize
|
5
|
+
super({ "root" => "data", "key" => "name", "value" => "value" })
|
6
|
+
end
|
23
7
|
|
24
|
-
|
8
|
+
def parsre_target? item
|
9
|
+
return nested_hash_access(item, "type").nil?
|
25
10
|
end
|
26
11
|
end
|
27
12
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'xmlsimple'
|
2
|
+
|
3
|
+
module DiffResource
|
4
|
+
class XmlParser < Parser
|
5
|
+
def parse str
|
6
|
+
ret = super str
|
7
|
+
ret.each do |item|
|
8
|
+
item.value = item.value[0]
|
9
|
+
end
|
10
|
+
return ret
|
11
|
+
end
|
12
|
+
|
13
|
+
def parse_string str
|
14
|
+
return XmlSimple.xml_in str
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module DiffResource
|
4
|
+
class Settings
|
5
|
+
def initialize str
|
6
|
+
@options = YAML.load(str)
|
7
|
+
@options = {} unless @options.class == Hash # @options is Hash object
|
8
|
+
@options["types"] = {} unless @options["types"].class == Hash # @options["types"] is Hash Object
|
9
|
+
end
|
10
|
+
|
11
|
+
def types
|
12
|
+
return self["types"]
|
13
|
+
end
|
14
|
+
|
15
|
+
def comparison
|
16
|
+
return self["comparison"]
|
17
|
+
end
|
18
|
+
|
19
|
+
def output
|
20
|
+
return self["output"]
|
21
|
+
end
|
22
|
+
|
23
|
+
def [] key
|
24
|
+
return @options[key]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diff_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katsuya SHIMABUKURO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,8 +66,22 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
|
70
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: xml-simple
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Output resource file diffs.You can output original format resource file
|
84
|
+
diff
|
71
85
|
email:
|
72
86
|
- katsu.generation.888@gmail.com
|
73
87
|
executables:
|
@@ -87,9 +101,14 @@ files:
|
|
87
101
|
- lib/diff_resource/factory/parser_factory.rb
|
88
102
|
- lib/diff_resource/inputer/directory_inputer.rb
|
89
103
|
- lib/diff_resource/inputer/git_inputer.rb
|
104
|
+
- lib/diff_resource/inputer/inputer.rb
|
90
105
|
- lib/diff_resource/outputer.rb
|
106
|
+
- lib/diff_resource/parser/json_parser.rb
|
91
107
|
- lib/diff_resource/parser/parser.rb
|
92
108
|
- lib/diff_resource/parser/resx_parser.rb
|
109
|
+
- lib/diff_resource/parser/xml_parser.rb
|
110
|
+
- lib/diff_resource/parser/yaml_parser.rb
|
111
|
+
- lib/diff_resource/settings.rb
|
93
112
|
- lib/diff_resource/version.rb
|
94
113
|
homepage: https://github.com/katsugeneration/diff-resource
|
95
114
|
licenses:
|
@@ -101,9 +120,9 @@ require_paths:
|
|
101
120
|
- lib
|
102
121
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
122
|
requirements:
|
104
|
-
- - "
|
123
|
+
- - "~>"
|
105
124
|
- !ruby/object:Gem::Version
|
106
|
-
version: '0'
|
125
|
+
version: '2.0'
|
107
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
127
|
requirements:
|
109
128
|
- - ">="
|