rpmchange 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZGE2OWI4NjlkOTk2YTgyMmIyZTU4NDI4YWQwY2M0YTdlMzQzN2Y4OA==
5
+ data.tar.gz: !binary |-
6
+ NDQ4ZTY1NGE2OTNkNDMwZDg3YTI3ZDQyZGQxMGJiYzczZjVmZGEzNA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDBhYTk5OGM5OWE1MDc5NjkwM2E3NDdjZTBlMjYzNDI4YTNiMDViODFmZjA5
10
+ NmZkYjVlOTViYWMyZDk5M2Y4YjBjMTQ0ZTZmZGE2ODI0YjhlMjg5ZGE2NWEz
11
+ NzkxMjllZWQ3Njc3YTc1NzQ3MzI1ZjIzYTUzMDFlMjk0MmJiODM=
12
+ data.tar.gz: !binary |-
13
+ MTU1MjMxYzFlMjFiODdkN2ZjZWQ4ZTU5Y2Q1Y2Y4YmRjMzE1MDk2NjAyMzhh
14
+ YTdiN2M1YmNmNjEwMTcxNTg0MjllMDY2MjhhZjQ0ZTM0MzZiODRhZTdkNzJk
15
+ YWQ1YzZkODk3OThlMWQ4MWExNmVkODAwZGYwZjg5NzIxYWQ1MzY=
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+ .dat*
13
+ .repl_history
14
+ build/
15
+ /.yardoc/
16
+ /_yardoc/
17
+ /doc/
18
+ /rdoc/
19
+ /.bundle/
20
+ /vendor/bundle
21
+ /lib/bundler/man/
22
+ .tags
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm: 2.2.1
3
+ deploy:
4
+ provider: rubygems
5
+ api_key:
6
+ secure: O3hyYvf7TxqhzYQo4eu0f+WMO0EJhg2W1D1rx8vrviC/1VybQ9Ctl0WPWtL20/YohtDdAR0SG+PsMaiFKYJAl1RxmwkSre8GkBvHQlsWhKxQ8IPQpA4xZRUrMYN4OActlqREJBVrIjgGjOrfmnlf/9+4SjYRJhfH5yuz/fcb9/KbGTgLreEk4FRULRUfdAhw3xiWp7S9Cg8vYi4OU6NEJau3PbLfpGwzbv9Ms2JEzwj2ppASByN+jBjUfdX4t2hcUGFlTItRy2e+iM6MVX8apEhzUC+NHNuJuQR2YwdTpmPZZoGWp+tof3ToqPlBy9/DOkCqG0AF4gQUNlFFEaZ/riIymOyLVGHQUkaYE6Qs7a3WJ8fgaJlQDgopxGf6sm69LZ7+s690EsBiC9zNhNii2g6Mc4suVcW5baA6+O1I5gvx+D7Ac2aSPGZoaqG5c9IC+X0/YlIlskK8xABslNWnkDrUNJWJkElxUj6HfRBpkHOkkGDe7v6+n2lzw+pqrhd2ESrHnW1yVDa4+FWZWqV7IuIcgoN1PaO4d+XH2+e4lSokcEIf8Nz65vj0DBLP0Q9Yh6eEp/wATK3x9PLoNz+s92UE40YRXPjP8fjmxijqbpAsTCc8A1fRYveSudkZ4H1IVdLVP+oVKFvqqBGNxmndhEuQBhtsigfh838hrgvIg/4=
7
+ gem: rpmchange
8
+ on:
9
+ tags: true
10
+ repo: flant/rpmchange
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,94 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rpmchange (0.0.1)
5
+ diffy (>= 3.1.0, < 4.0)
6
+ thor (>= 0.19.1, < 1.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.4.0)
12
+ backports (3.6.8)
13
+ binding_of_caller (0.7.2)
14
+ debug_inspector (>= 0.0.1)
15
+ coderay (1.1.1)
16
+ debug_inspector (0.0.2)
17
+ diff-lcs (1.2.5)
18
+ diffy (3.1.0)
19
+ ethon (0.8.1)
20
+ ffi (>= 1.3.0)
21
+ faraday (0.9.2)
22
+ multipart-post (>= 1.2, < 3)
23
+ faraday_middleware (0.10.0)
24
+ faraday (>= 0.7.4, < 0.10)
25
+ ffi (1.9.10)
26
+ gh (0.14.0)
27
+ addressable
28
+ backports
29
+ faraday (~> 0.8)
30
+ multi_json (~> 1.0)
31
+ net-http-persistent (>= 2.7)
32
+ net-http-pipeline
33
+ highline (1.7.8)
34
+ json (1.8.3)
35
+ launchy (2.4.3)
36
+ addressable (~> 2.3)
37
+ method_source (0.8.2)
38
+ multi_json (1.11.2)
39
+ multipart-post (2.0.0)
40
+ net-http-persistent (2.9.4)
41
+ net-http-pipeline (1.0.1)
42
+ pry (0.10.3)
43
+ coderay (~> 1.1.0)
44
+ method_source (~> 0.8.1)
45
+ slop (~> 3.4)
46
+ pry-stack_explorer (0.4.9.2)
47
+ binding_of_caller (>= 0.7)
48
+ pry (>= 0.9.11)
49
+ pusher-client (0.6.2)
50
+ json
51
+ websocket (~> 1.0)
52
+ rake (10.5.0)
53
+ rspec (3.4.0)
54
+ rspec-core (~> 3.4.0)
55
+ rspec-expectations (~> 3.4.0)
56
+ rspec-mocks (~> 3.4.0)
57
+ rspec-core (3.4.4)
58
+ rspec-support (~> 3.4.0)
59
+ rspec-expectations (3.4.0)
60
+ diff-lcs (>= 1.2.0, < 2.0)
61
+ rspec-support (~> 3.4.0)
62
+ rspec-mocks (3.4.1)
63
+ diff-lcs (>= 1.2.0, < 2.0)
64
+ rspec-support (~> 3.4.0)
65
+ rspec-support (3.4.1)
66
+ slop (3.6.0)
67
+ thor (0.19.1)
68
+ travis (1.8.2)
69
+ backports
70
+ faraday (~> 0.9)
71
+ faraday_middleware (~> 0.9, >= 0.9.1)
72
+ gh (~> 0.13)
73
+ highline (~> 1.6)
74
+ launchy (~> 2.1)
75
+ pusher-client (~> 0.4)
76
+ typhoeus (~> 0.6, >= 0.6.8)
77
+ typhoeus (0.8.0)
78
+ ethon (>= 0.8.0)
79
+ websocket (1.2.2)
80
+
81
+ PLATFORMS
82
+ ruby
83
+
84
+ DEPENDENCIES
85
+ bundler (~> 1.7)
86
+ pry (>= 0.10.3, < 1.0)
87
+ pry-stack_explorer (>= 0.4.9.2, < 1.0)
88
+ rake (~> 10.0)
89
+ rpmchange!
90
+ rspec (~> 3.4, >= 3.4.0)
91
+ travis (~> 1.8, >= 1.8.2)
92
+
93
+ BUNDLED WITH
94
+ 1.11.2
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Flant
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # rpmchange
2
+ Simple rpm spec parser and emitter.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/rpmchange ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ # vi: set ft=ruby :
3
+ # vi: set sts=2 ts=2 sw=2 :
4
+
5
+ require 'rpmchange'
6
+
7
+ Rpmchange::Cli.start
@@ -0,0 +1,51 @@
1
+ module Rpmchange
2
+ class Cli < ::Thor
3
+ class << self
4
+ def shared_options
5
+ (@shared_options || {}).each do |name, options|
6
+ method_option name, options
7
+ end
8
+ end
9
+
10
+ def spec_construct(options)
11
+ Spec.loadfile(options['specfile'])
12
+ end
13
+
14
+ def spec_write!(spec)
15
+ File.open(options['specfile'], 'w') {|f| f.write spec.dump}
16
+ end
17
+ end # << self
18
+
19
+ @shared_options = {
20
+ specfile: {type: :string, desc: "path to spec file", required: true},
21
+ }
22
+
23
+ desc "append_changelog", "Make a new changelog entry at the end of current entries"
24
+ shared_options
25
+ method_option :name, {type: :string, desc: "maintainer name", required: true}
26
+ method_option :email, {type: :string, desc: "maintainer email", required: true}
27
+ method_option :message, {type: :string, desc: "changelog message", required: true}
28
+ def append_changelog
29
+ spec = self.class.spec_construct options
30
+ spec.append_changelog(name: options['name'],
31
+ email: options['email'],
32
+ message: options['message'])
33
+ self.class.spec_write! spec
34
+ end
35
+
36
+ desc "tag", "Get or set spec tag"
37
+ shared_options
38
+ method_option :name, {type: :string, desc: "tag name", required: true}
39
+ method_option :value, {type: :string, desc: "tag value"}
40
+ def tag
41
+ spec = self.class.spec_construct options
42
+ if options['value']
43
+ spec.set_tag(options['name'], options['value'])
44
+ self.class.spec_write! spec
45
+ else
46
+ value = spec.tag(options['name'])
47
+ puts value if value
48
+ end
49
+ end
50
+ end # Cli
51
+ end # Rpmchange
@@ -0,0 +1,235 @@
1
+ module Rpmchange
2
+ class Spec
3
+ class << self
4
+ def load(str)
5
+ Spec.new(str)
6
+ end
7
+
8
+ def loadfile(path)
9
+ Spec.new(Pathname.new(path).read)
10
+ end
11
+
12
+ def diff(a, b, **kwargs)
13
+ Diffy::Diff.new(a.to_s, b.to_s, {diff: "-U 3"}.merge(kwargs))
14
+ end
15
+
16
+ def without_macro
17
+ end
18
+ end # << self
19
+
20
+ attr_reader :str
21
+
22
+ def initialize(str)
23
+ @str = str
24
+ _load!
25
+ end
26
+
27
+ def reload
28
+ @sections = nil
29
+ end
30
+
31
+ def dump
32
+ [].tap do |res|
33
+ res.push *preamble_lines
34
+ sections.each do |section, by_params|
35
+ by_params.each {|params, lines|
36
+ res.push ["%#{section}", *params].join(' ')
37
+ res.push *lines
38
+ }
39
+ end
40
+ end.map {|line| line + "\n"}.join
41
+ end
42
+
43
+ def to_s
44
+ dump
45
+ end
46
+
47
+ def inspect
48
+ "#<#{self.class}: #{name}/#{full_version}>"
49
+ end
50
+
51
+ def diff(with: nil, **kwargs)
52
+ if with
53
+ self.class.diff(dump, with, **kwargs)
54
+ else
55
+ self.class.diff(str, dump, **kwargs)
56
+ end
57
+ end
58
+
59
+ def name
60
+ tag(:name)
61
+ end
62
+
63
+ def name=(value)
64
+ set_tag(:name, value)
65
+ end
66
+
67
+ def version
68
+ tag(:version)
69
+ end
70
+
71
+ def version=(value)
72
+ set_tag(:version, value)
73
+ end
74
+
75
+ def release
76
+ tag(:release)
77
+ end
78
+
79
+ def release=(value)
80
+ set_tag(:release, value)
81
+ end
82
+
83
+ def epoch
84
+ tag(:epoch)
85
+ end
86
+
87
+ def epoch=(value)
88
+ set_tag(:epoch, value)
89
+ end
90
+
91
+ def full_version
92
+ [epoch, [version, release].compact.join('-')]
93
+ .compact
94
+ .join(':')
95
+ .gsub(/%{.*}/, '')
96
+ end
97
+
98
+ def append_changelog(name:, email:, message:)
99
+ ["* #{Time.now.strftime("%a %b %e %Y")} #{name} <#{email}> - #{full_version}",
100
+ "- #{message}",
101
+ "",
102
+ ].reverse_each {|line| _prepend_line(lines: changelog_lines, new_line: line)}
103
+ end
104
+
105
+ def to_tag_name(tag)
106
+ tag.to_s.capitalize
107
+ end
108
+
109
+ def tag(tag)
110
+ match = preamble_lines.find {|line| line.start_with? "#{to_tag_name(tag)}:"}
111
+ res = match.split(':', 2).last if match
112
+ res.strip if res
113
+ end
114
+
115
+ def set_tag(tag, value)
116
+ _replace_line(lines: preamble_lines, new_line: "#{to_tag_name(tag)}: #{value.strip}", match: /#{to_tag_name(tag)}:/)
117
+ end
118
+
119
+ def append_tag(tag, value)
120
+ _append_line(lines: preamble_lines, new_line: "#{to_tag_name(tag)}: #{value}")
121
+ end
122
+
123
+ def append_patch(value)
124
+ append_patch_macro append_patch_tag(value)
125
+ end
126
+
127
+ def patch_tags
128
+ preamble_lines
129
+ .grep(_patch_tag_line_regex)
130
+ .map(&method(:_patch_tag_line_parse))
131
+ .to_h
132
+ end
133
+
134
+ def append_patch_tag(value)
135
+ patch_num = nil
136
+ make_line = proc do |insert_ind|
137
+ if insert_ind > 0
138
+ last_patch_num = _patch_tag_line_parse(preamble_lines[insert_ind - 1]).first
139
+ patch_num = last_patch_num + 1
140
+ else
141
+ patch_num = 0
142
+ end
143
+ "Patch#{patch_num}: #{value}"
144
+ end
145
+ _append_line(lines: preamble_lines, new_line: make_line, after: _patch_tag_line_regex)
146
+ patch_num
147
+ end
148
+
149
+ def append_patch_macro(num)
150
+ _append_line(lines: prep_lines, new_line: "%patch#{num} -p1", after: _patch_macro_line_regex)
151
+ nil
152
+ end
153
+
154
+ def sections
155
+ @sections ||= {}
156
+ end
157
+
158
+ def preamble_lines
159
+ @preamble_lines ||= []
160
+ end
161
+
162
+ SECTIONS = %i{prep build install clean check files changelog}
163
+ SECTIONS.each do |section|
164
+ define_method("#{section}_lines") {|params=nil| (sections[section] || {})[params] || []}
165
+ end
166
+
167
+ protected
168
+
169
+ def _patch_macro_line_regex
170
+ @_patch_macro_line_regex ||= /^%patch[0-9]*/
171
+ end
172
+
173
+ def _append_line(lines:, new_line:, after: nil)
174
+ find_index = proc do |lines|
175
+ if after
176
+ ind = lines.rindex {|line| line.to_s =~ after}
177
+ ind ? ind + 1 : -1
178
+ else
179
+ -1
180
+ end
181
+ end
182
+ _insert_line(lines: lines, new_line: new_line, find_index: find_index)
183
+ end
184
+
185
+ def _prepend_line(lines:, new_line:, before: nil)
186
+ find_index = proc do |lines|
187
+ if before
188
+ lines.index {|line| line.to_s =~ before} || 0
189
+ else
190
+ 0
191
+ end
192
+ end
193
+ _insert_line(lines: lines, new_line: new_line, find_index: find_index)
194
+ end
195
+
196
+ def _insert_line(lines:, new_line:, find_index:)
197
+ if ind = find_index.call(lines)
198
+ line = (new_line.respond_to?(:call) ? new_line.call(ind) : new_line).to_s.chomp
199
+ lines.insert(ind, line)
200
+ end
201
+ end
202
+
203
+ def _replace_line(lines:, new_line:, match:)
204
+ if ind = lines.index {|line| line.to_s =~ match}
205
+ line = (new_line.respond_to?(:call) ? new_line.call(ind) : new_line).to_s.chomp
206
+ lines[ind] = line
207
+ end
208
+ end
209
+
210
+ def _patch_tag_line_parse(line)
211
+ tag, value = line.split(':', 2)
212
+ [tag.split('Patch').last.to_i, value.strip] if tag
213
+ end
214
+
215
+ def _patch_tag_line_regex
216
+ @_patch_tag_line_regex ||= /^Patch[0-9]*:/
217
+ end
218
+
219
+ def _load!
220
+ current_section = preamble_lines
221
+ str.lines.each do |line|
222
+ line.chomp!
223
+ if section = SECTIONS.find {|s| line.start_with? "%#{s}"}
224
+ section_params = line.split(' ')[1..-1]
225
+ section_key = section_params.empty? ? nil : section_params
226
+ sections[section] ||= {}
227
+ sections[section][section_key] ||= []
228
+ current_section = sections[section][section_key]
229
+ else
230
+ current_section << line
231
+ end
232
+ end
233
+ end
234
+ end # Spec
235
+ end # Rpmchange
@@ -0,0 +1,3 @@
1
+ module Rpmchange
2
+ VERSION = '0.0.1'
3
+ end # Rpmchange
data/lib/rpmchange.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'thor'
2
+ require 'diffy'
3
+
4
+ require 'rpmchange/version'
5
+ require 'rpmchange/spec'
6
+ require 'rpmchange/cli'
data/rpmchange.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ require File.expand_path("../lib/rpmchange/version", __FILE__)
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "rpmchange"
5
+ spec.version = Rpmchange::VERSION
6
+ spec.authors = ["flant"]
7
+ spec.email = "256@flant.com"
8
+
9
+ spec.summary = "Packaging tool"
10
+ spec.description = "#{spec.summary}."
11
+ spec.license = "MIT"
12
+ spec.homepage = "https://github.com/flant/rpmchange"
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ spec.executables = ["rpmchange"]
16
+
17
+ spec.required_ruby_version = ">= 2.2.1"
18
+
19
+ spec.add_dependency "thor", ">= 0.19.1", "< 1.0"
20
+ spec.add_dependency "diffy", ">= 3.1.0", "< 4.0"
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.7"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec", "~> 3.4", ">= 3.4.0"
25
+ spec.add_development_dependency "pry", ">= 0.10.3", "< 1.0"
26
+ spec.add_development_dependency 'pry-stack_explorer', '>= 0.4.9.2', '< 1.0'
27
+ spec.add_development_dependency "travis", "~> 1.8", ">= 1.8.2"
28
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rpmchange
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - flant
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.19.1
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: diffy
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: 3.1.0
40
+ - - <
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 3.1.0
50
+ - - <
51
+ - !ruby/object:Gem::Version
52
+ version: '4.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: '1.7'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '1.7'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: '10.0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: '10.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: rspec
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '3.4'
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: 3.4.0
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: '3.4'
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: 3.4.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: pry
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: 0.10.3
108
+ - - <
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.10.3
118
+ - - <
119
+ - !ruby/object:Gem::Version
120
+ version: '1.0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: pry-stack_explorer
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: 0.4.9.2
128
+ - - <
129
+ - !ruby/object:Gem::Version
130
+ version: '1.0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: 0.4.9.2
138
+ - - <
139
+ - !ruby/object:Gem::Version
140
+ version: '1.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: travis
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ~>
146
+ - !ruby/object:Gem::Version
147
+ version: '1.8'
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: 1.8.2
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '1.8'
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: 1.8.2
161
+ description: Packaging tool.
162
+ email: 256@flant.com
163
+ executables:
164
+ - rpmchange
165
+ extensions: []
166
+ extra_rdoc_files: []
167
+ files:
168
+ - .gitignore
169
+ - .rspec
170
+ - .travis.yml
171
+ - Gemfile
172
+ - Gemfile.lock
173
+ - LICENSE
174
+ - README.md
175
+ - Rakefile
176
+ - bin/rpmchange
177
+ - lib/rpmchange.rb
178
+ - lib/rpmchange/cli.rb
179
+ - lib/rpmchange/spec.rb
180
+ - lib/rpmchange/version.rb
181
+ - rpmchange.gemspec
182
+ homepage: https://github.com/flant/rpmchange
183
+ licenses:
184
+ - MIT
185
+ metadata: {}
186
+ post_install_message:
187
+ rdoc_options: []
188
+ require_paths:
189
+ - lib
190
+ required_ruby_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: 2.2.1
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ requirements: []
201
+ rubyforge_project:
202
+ rubygems_version: 2.4.5
203
+ signing_key:
204
+ specification_version: 4
205
+ summary: Packaging tool
206
+ test_files: []