puppetfile_editor 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f80e573ccac2a8b14e1802a81e148da2caf73e00
4
- data.tar.gz: 9803399f5d16f23fdbcb8b95701db9352d94bbcd
2
+ SHA256:
3
+ metadata.gz: c65880cea1d9c5542724d9297779007c5422d436fba0491110a338067d12a361
4
+ data.tar.gz: c51a9958b20477aba74ce37400601b91778f0ef03ca8e5c6e995be70347b2330
5
5
  SHA512:
6
- metadata.gz: 4f932f8a8f111cf09ec710a36edf5e82f6fffd117f10ab6942ff3df5b9a96497955a198501dff84492658c50e84810def1c2324614d442eaf70dd36580bc23de
7
- data.tar.gz: c181a94a1a5a6cdc150c565abb65991d33f1cb140732eae87f0d777cde6aa1187ba89809987fba9ea31049d959799f8ba4c7b3087e95e06f41d8947219177175
6
+ metadata.gz: d1d60910bae9716a96533f9484884db3770a1050392439bcae948b3baf93179e1e6392d59738f95d3e61c9200d14a93d78ee823c349aaea1c4b4300b1aee4044
7
+ data.tar.gz: 89c5ea8214da8acafcbedd302d9345632b9f5e9950238f6a1a3b5802abd5ee7b844462e38c93dfe65ee4f48186530dcf5c1739aa08753d507e05c03fade49744
data/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [Unreleased]
8
+
9
+ ## [0.9.0] - 2019-08-06
10
+ ### Changed
11
+ - Add ability to compare Puppetfiles ignoring module types (`git` vs `hg`).
12
+
7
13
  ## [0.8.0] - 2018-07-12
8
14
  ### Changed
9
15
  - [#1](https://github.com/pegasd/puppetfile_editor/issues/1): Do not downgrade modules while merging, whenever possible (see issue for more details).
data/bin/pfile CHANGED
@@ -12,7 +12,7 @@ ARGV.push('-h') if ARGV.empty?
12
12
  options = { puppetfile: 'Puppetfile' }
13
13
 
14
14
  subcommands = {
15
- 'edit' => OptionParser.new do |parser|
15
+ 'edit' => OptionParser.new do |parser|
16
16
  parser.banner = "Usage: #{filename} edit [options]"
17
17
  parser.on('-m', '--module-name NAME', 'Module name') do |setting|
18
18
  options[:name] = setting
@@ -30,7 +30,7 @@ subcommands = {
30
30
  options[:name] = setting
31
31
  end
32
32
  end,
33
- 'add' => OptionParser.new do |parser|
33
+ 'add' => OptionParser.new do |parser|
34
34
  parser.banner = "Usage: #{filename} add [options]"
35
35
  parser.on('-m', '--module-name NAME', 'Module name') do |setting|
36
36
  options[:name] = setting
@@ -53,7 +53,7 @@ subcommands = {
53
53
  end
54
54
  end
55
55
  end,
56
- 'merge' => OptionParser.new do |parser|
56
+ 'merge' => OptionParser.new do |parser|
57
57
  parser.banner = "Usage: #{filename} merge [options]"
58
58
  parser.separator ' Merge existing Puppetfile with another one from STDIN.'
59
59
  parser.separator ' Dump the result to STDOUT.'
@@ -122,11 +122,11 @@ module PuppetfileEditor
122
122
  end
123
123
 
124
124
  def log(message, message_type = :undef)
125
- status = if @statuses.key? message_type
126
- @statuses[message_type]
127
- else
128
- @statuses[:undef]
129
- end
125
+ if @statuses.key? message_type
126
+ status = @statuses[message_type]
127
+ else
128
+ status = @statuses[:undef]
129
+ end
130
130
  puts "#{status} #{message}"
131
131
  end
132
132
 
@@ -123,11 +123,11 @@ module PuppetfileEditor
123
123
  when :hg, :git
124
124
  output.push "mod '#{full_title}'"
125
125
  @params.each do |param_name, param_value|
126
- value = if param_value == :latest
127
- ':latest'
128
- else
129
- "'#{param_value}'"
130
- end
126
+ if param_value == :latest
127
+ value = ':latest'
128
+ else
129
+ value = "'#{param_value}'"
130
+ end
131
131
  param = "#{param_name}:".ljust(@indent)
132
132
  output.push " #{param} #{value}"
133
133
  end
@@ -145,6 +145,7 @@ module PuppetfileEditor
145
145
 
146
146
  def full_title
147
147
  return "#{@author}/#{@name}" if @author
148
+
148
149
  @name
149
150
  end
150
151
 
@@ -154,6 +155,7 @@ module PuppetfileEditor
154
155
  @params.reject { |param, _| param.eql? @type }.map { |param, value| "#{param}: #{value}" }.sort.join(', ')
155
156
  when :forge
156
157
  return @params[:version] if @params.key? :version
158
+
157
159
  nil
158
160
  end
159
161
  end
@@ -34,14 +34,15 @@ module PuppetfileEditor
34
34
  end
35
35
 
36
36
  def load
37
- puppetfile_contents = if @from_stdin
38
- $stdin.gets(nil).chomp
39
- elsif @contents
40
- @contents
41
- else
42
- raise(IOError, "'#{@puppetfile_path}' is missing or unreadable") unless File.readable?(@puppetfile_path)
43
- File.read @puppetfile_path
44
- end
37
+ if @from_stdin
38
+ puppetfile_contents = $stdin.gets(nil).chomp
39
+ elsif @contents
40
+ puppetfile_contents = @contents
41
+ else
42
+ raise(IOError, "'#{@puppetfile_path}' is missing or unreadable") unless File.readable?(@puppetfile_path)
43
+
44
+ puppetfile_contents = File.read @puppetfile_path
45
+ end
45
46
 
46
47
  dsl = PuppetfileEditor::DSL.new(self)
47
48
  dsl.instance_eval(puppetfile_contents)
@@ -58,6 +59,7 @@ module PuppetfileEditor
58
59
  @module_sections.each do |module_type, module_comment|
59
60
  module_list = modules.select { |_, mod| mod.type == module_type }
60
61
  next unless module_list.any?
62
+
61
63
  contents.push "# #{module_comment}"
62
64
  module_list.values.sort_by(&:name).each do |mod|
63
65
  contents.push mod.dump
@@ -78,11 +80,12 @@ module PuppetfileEditor
78
80
  @modules[name].set(param, value, true)
79
81
  end
80
82
 
81
- def compare_with(pfile)
83
+ def compare_with(pfile, compare_across_types: false)
82
84
  diff = {}
83
85
  pfile.modules.each do |mod_name, mod|
84
86
  next unless [:git, :hg, :forge].include? mod.type
85
- version_key = mod.type == :forge ? :version : :tag
87
+
88
+ mod.type == :forge ? version_key = :version : version_key = :tag
86
89
 
87
90
  unless @modules.key? mod_name
88
91
  diff[mod_name] = { new: mod.params[version_key], type: mod.type } if mod.params.key?(version_key)
@@ -91,9 +94,12 @@ module PuppetfileEditor
91
94
 
92
95
  local_mod = @modules[mod_name]
93
96
 
94
- next unless mod.type == local_mod.type
97
+ unless compare_across_types
98
+ next unless mod.type == local_mod.type
99
+ end
95
100
  next unless mod.params.key?(version_key) && local_mod.params.key?(version_key)
96
101
  next if mod.params[version_key] == local_mod.params[version_key]
102
+
97
103
  diff[mod_name] = { old: local_mod.params[version_key], new: mod.params[version_key], type: mod.type }
98
104
  end
99
105
  diff
@@ -112,6 +118,7 @@ module PuppetfileEditor
112
118
 
113
119
  def update_forge_url(url)
114
120
  raise StandardError, "Forge URL must be a String, but it is a #{url.class}" unless url.is_a? String
121
+
115
122
  @forge = url
116
123
  end
117
124
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PuppetfileEditor
4
- VERSION = '0.8.0'
4
+ VERSION = '0.9.0'
5
5
  end
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppetfile_editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugene Piven
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-12 00:00:00.000000000 Z
11
+ date: 2019-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
19
+ version: '0'
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: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '12.0'
33
+ version: '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: '12.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
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: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0.50'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0.50'
68
+ version: '0'
69
69
  description: |2
70
70
  PuppetfileEditor provides an easy-to-use interface to check Puppetfile for validity,
71
71
  update module versions, add, and remove modules.
@@ -102,8 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubyforge_project:
106
- rubygems_version: 2.6.14.1
105
+ rubygems_version: 3.0.4
107
106
  signing_key:
108
107
  specification_version: 4
109
108
  summary: Parse and edit Puppetfile