puppetfile_editor 0.8.0 → 0.9.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 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