puppetfile_fixtures_generator 0.1.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50704bc8fb5c51aa95cf408c6cfff145e37504f9
4
- data.tar.gz: 4fd3c110cb28065027d70d2ef022406dddc1bd12
3
+ metadata.gz: dd88b4a58b0cf9583fa87be9ee6478b967b8f1cf
4
+ data.tar.gz: 0c4ef819664118d5b52b0a82e94ad925f22226c5
5
5
  SHA512:
6
- metadata.gz: a9800644c8cfa39c6bc07cd36c83f3626625e5c1f75677a3d61798dcddddd4bf8d768db9610a17dff5bd30b163ad3e13a438bd6b9d5a05b64378d84b31abaed4
7
- data.tar.gz: 99b1bf9e825426a1df9cb06eb40388a4c539b541bad600f761e637d2d5919cf542cd9bcfe96bdd3eeaebde55194e6072b68d6b1cfa79ba42fb626bcc28ea8cb7
6
+ metadata.gz: 3555f30125d2ac4f735a78b0bfb3e2ed3a53bba68aa8f7380f8b71eaf8c45a3d293c8056e5ba1d05c67b1f9d2b5585145632a52e876a1142b89a30b1ae7ac517
7
+ data.tar.gz: 2959d88ff6f18033355a5d77273008dcef12c91206daa07d6bdaa9d0f225d513c96bc0a3050afb88001d68721605b3ceff14d20d90332d7f10d77fe2c279f540
data/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+ This project adheres to [Semantic Versioning](http://semver.org/).
4
+
5
+ ## [0.2.0] - 2016-09-22
6
+ ### Added
7
+ - Puppetfile class to simplify fixtures class
8
+ - Ability to diff a puppetfile and fixtures file
9
+
10
+ ### Changed
11
+ - Bumped version of r10k dependency
data/Gemfile.lock CHANGED
@@ -1,42 +1,43 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puppetfile_fixtures_generator (0.1.2)
4
+ puppetfile_fixtures_generator (0.2.0)
5
5
  highline (~> 1.7)
6
- r10k (~> 2.1)
6
+ r10k (~> 2.3.0)
7
7
  trollop (~> 2.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- ast (2.2.0)
13
- coderay (1.1.0)
12
+ ast (2.3.0)
13
+ coderay (1.1.1)
14
14
  colored (1.2)
15
- coveralls (0.8.10)
16
- json (~> 1.8)
17
- rest-client (>= 1.6.8, < 2)
18
- simplecov (~> 0.11.0)
15
+ coveralls (0.8.15)
16
+ json (>= 1.8, < 3)
17
+ simplecov (~> 0.12.0)
19
18
  term-ansicolor (~> 1.3)
20
19
  thor (~> 0.19.1)
21
- tins (~> 1.6.0)
20
+ tins (>= 1.6.0, < 2)
22
21
  cri (2.6.1)
23
22
  colored (~> 1.2)
24
23
  diff-lcs (1.2.5)
25
24
  docile (1.1.5)
26
- domain_name (0.5.20160128)
27
- unf (>= 0.0.5, < 1.0.0)
28
25
  faraday (0.9.2)
29
26
  multipart-post (>= 1.2, < 3)
30
- faraday_middleware (0.9.2)
27
+ faraday_middleware (0.10.0)
31
28
  faraday (>= 0.7.4, < 0.10)
32
- faraday_middleware-multi_json (0.0.6)
33
- faraday_middleware
34
- multi_json
35
- ffi (1.9.10)
29
+ fast_gettext (1.1.0)
30
+ ffi (1.9.14)
36
31
  formatador (0.2.5)
37
- guard (2.13.0)
32
+ gettext (3.2.2)
33
+ locale (>= 2.0.5)
34
+ text (>= 1.3.0)
35
+ gettext-setup (0.7)
36
+ fast_gettext (~> 1.1.0)
37
+ gettext (>= 3.0.2)
38
+ guard (2.14.0)
38
39
  formatador (>= 0.2.4)
39
- listen (>= 2.7, <= 4.0)
40
+ listen (>= 2.7, < 4.0)
40
41
  lumberjack (~> 1.0)
41
42
  nenv (~> 0.1)
42
43
  notiffany (~> 0.0)
@@ -44,97 +45,89 @@ GEM
44
45
  shellany (~> 0.0)
45
46
  thor (>= 0.18.1)
46
47
  guard-compat (1.2.1)
47
- guard-rspec (4.6.4)
48
+ guard-rspec (4.7.3)
48
49
  guard (~> 2.1)
49
50
  guard-compat (~> 1.1)
50
51
  rspec (>= 2.99.0, < 4.0)
51
52
  highline (1.7.8)
52
- http-cookie (1.0.2)
53
- domain_name (~> 0.5)
54
- json (1.8.3)
55
- listen (3.0.5)
56
- rb-fsevent (>= 0.9.3)
57
- rb-inotify (>= 0.9)
53
+ json (2.0.2)
54
+ listen (3.0.8)
55
+ rb-fsevent (~> 0.9, >= 0.9.4)
56
+ rb-inotify (~> 0.9, >= 0.9.7)
57
+ locale (2.1.2)
58
58
  log4r (1.1.10)
59
59
  lumberjack (1.0.10)
60
60
  method_source (0.8.2)
61
- mime-types (2.99)
62
61
  minitar (0.5.4)
63
- multi_json (1.11.2)
62
+ multi_json (1.12.1)
64
63
  multipart-post (2.0.0)
65
- nenv (0.2.0)
66
- netrc (0.11.0)
67
- notiffany (0.0.8)
64
+ nenv (0.3.0)
65
+ notiffany (0.1.1)
68
66
  nenv (~> 0.1)
69
67
  shellany (~> 0.0)
70
- parser (2.3.0.2)
68
+ parser (2.3.1.4)
71
69
  ast (~> 2.2)
72
70
  powerpack (0.1.1)
73
- pry (0.10.3)
71
+ pry (0.10.4)
74
72
  coderay (~> 1.1.0)
75
73
  method_source (~> 0.8.1)
76
74
  slop (~> 3.4)
77
- puppet_forge (2.1.3)
75
+ puppet_forge (2.2.2)
78
76
  faraday (~> 0.9.0)
79
77
  faraday_middleware (>= 0.9.0, < 0.11.0)
78
+ gettext-setup (>= 0.3)
80
79
  minitar
81
80
  semantic_puppet (~> 0.1.0)
82
- r10k (2.1.1)
81
+ r10k (2.3.0)
83
82
  colored (= 1.2)
84
83
  cri (~> 2.6.1)
85
- faraday (~> 0.9.0)
86
- faraday_middleware (~> 0.9.0)
87
- faraday_middleware-multi_json (~> 0.0.6)
88
84
  log4r (= 1.1.10)
89
85
  minitar
90
86
  multi_json (~> 1.10)
91
- puppet_forge (~> 2.1.1)
87
+ puppet_forge (~> 2.2)
92
88
  semantic_puppet (~> 0.1.0)
93
89
  rainbow (2.1.0)
94
90
  rake (10.5.0)
95
91
  rb-fsevent (0.9.7)
96
- rb-inotify (0.9.5)
92
+ rb-inotify (0.9.7)
97
93
  ffi (>= 0.5.0)
98
- rest-client (1.8.0)
99
- http-cookie (>= 1.0.2, < 2.0)
100
- mime-types (>= 1.16, < 3.0)
101
- netrc (~> 0.7)
102
- rspec (3.4.0)
103
- rspec-core (~> 3.4.0)
104
- rspec-expectations (~> 3.4.0)
105
- rspec-mocks (~> 3.4.0)
106
- rspec-core (3.4.2)
107
- rspec-support (~> 3.4.0)
108
- rspec-expectations (3.4.0)
94
+ rspec (3.5.0)
95
+ rspec-core (~> 3.5.0)
96
+ rspec-expectations (~> 3.5.0)
97
+ rspec-mocks (~> 3.5.0)
98
+ rspec-core (3.5.3)
99
+ rspec-support (~> 3.5.0)
100
+ rspec-expectations (3.5.0)
109
101
  diff-lcs (>= 1.2.0, < 2.0)
110
- rspec-support (~> 3.4.0)
111
- rspec-mocks (3.4.1)
102
+ rspec-support (~> 3.5.0)
103
+ rspec-mocks (3.5.0)
112
104
  diff-lcs (>= 1.2.0, < 2.0)
113
- rspec-support (~> 3.4.0)
114
- rspec-support (3.4.1)
115
- rubocop (0.36.0)
116
- parser (>= 2.3.0.0, < 3.0)
105
+ rspec-support (~> 3.5.0)
106
+ rspec-support (3.5.0)
107
+ rubocop (0.43.0)
108
+ parser (>= 2.3.1.1, < 3.0)
117
109
  powerpack (~> 0.1)
118
110
  rainbow (>= 1.99.1, < 3.0)
119
111
  ruby-progressbar (~> 1.7)
120
- ruby-progressbar (1.7.5)
121
- semantic_puppet (0.1.1)
112
+ unicode-display_width (~> 1.0, >= 1.0.1)
113
+ ruby-progressbar (1.8.1)
114
+ semantic_puppet (0.1.4)
115
+ gettext-setup (>= 0.3)
122
116
  shellany (0.0.1)
123
- simplecov (0.11.1)
117
+ simplecov (0.12.0)
124
118
  docile (~> 1.1.0)
125
- json (~> 1.8)
119
+ json (>= 1.8, < 3)
126
120
  simplecov-html (~> 0.10.0)
127
121
  simplecov-html (0.10.0)
128
122
  slop (3.6.0)
129
123
  term-ansicolor (1.3.2)
130
124
  tins (~> 1.0)
125
+ text (1.3.1)
131
126
  thor (0.19.1)
132
- tins (1.6.0)
127
+ tins (1.12.0)
133
128
  trollop (2.1.2)
134
- unf (0.1.4)
135
- unf_ext
136
- unf_ext (0.0.7.1)
137
- yard (0.8.7.6)
129
+ unicode-display_width (1.1.1)
130
+ yard (0.9.5)
138
131
 
139
132
  PLATFORMS
140
133
  ruby
@@ -143,6 +136,7 @@ DEPENDENCIES
143
136
  bundler (~> 1.10)
144
137
  coveralls (~> 0.8)
145
138
  guard-rspec (~> 4.6)
139
+ listen (~> 3.0.0)
146
140
  pry (~> 0.10)
147
141
  puppetfile_fixtures_generator!
148
142
  rake (~> 10.0)
@@ -151,4 +145,4 @@ DEPENDENCIES
151
145
  yard (~> 0.8)
152
146
 
153
147
  BUNDLED WITH
154
- 1.11.2
148
+ 1.13.1
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
- [![Build Status](https://travis-ci.org/thejandroman/puppetfile_fixtures_generator.svg?branch=master)](https://travis-ci.org/thejandroman/puppetfile_fixtures_generator)
2
- [![Coverage Status](https://coveralls.io/repos/github/thejandroman/puppetfile_fixtures_generator/badge.svg?branch=master)](https://coveralls.io/github/thejandroman/puppetfile_fixtures_generator?branch=master)
1
+ [![Build Status](https://travis-ci.org/Ensighten/puppetfile_fixtures_generator.svg?branch=master)](https://travis-ci.org/Ensighten/puppetfile_fixtures_generator)
2
+ [![Coverage Status](https://coveralls.io/repos/github/Ensighten/puppetfile_fixtures_generator/badge.svg?branch=master&bust=1)](https://coveralls.io/github/Ensighten/puppetfile_fixtures_generator?branch=master)
3
3
  [![Gem Version](https://badge.fury.io/rb/puppetfile_fixtures_generator.svg)](https://badge.fury.io/rb/puppetfile_fixtures_generator)
4
+ [![Inline docs](http://inch-ci.org/github/Ensighten/puppetfile_fixtures_generator.svg?branch=master)](http://inch-ci.org/github/Ensighten/puppetfile_fixtures_generator)
4
5
 
5
6
  # PuppetfileFixturesGenerator
6
7
 
@@ -37,7 +38,7 @@ The gem can be consumed as either a CLI tool or as a library.
37
38
 
38
39
  ### Library
39
40
 
40
- $ bundle; bundle exec yardoc; open doc/index.html
41
+ See documentation: http://www.rubydoc.info/gems/puppetfile_fixtures_generator/
41
42
 
42
43
  ## Development
43
44
 
@@ -47,7 +48,7 @@ dependencies. Then, run `bundle exec rake` to run the tests.
47
48
  ## Contributing
48
49
 
49
50
  Bug reports and pull requests are welcome on GitHub at
50
- https://github.com/thejandroman/puppetfile_fixtures_generator. This
51
+ https://github.com/Ensighten/puppetfile_fixtures_generator. This
51
52
  project is intended to be a safe, welcoming space for collaboration,
52
53
  and contributors are expected to adhere to the
53
54
  [Contributor Covenant](contributor-covenant.org) code of conduct.
@@ -27,13 +27,17 @@ EOS
27
27
  'The name of the module to include as the source_dir symlink in the fixtures file.',
28
28
  type: :string,
29
29
  default: nil
30
+ opt :diff,
31
+ 'Diff puppetfile and fixtures instead of writing',
32
+ type: :bool,
33
+ default: false
30
34
  opt :quiet,
31
35
  'Do not prompt.',
32
36
  type: :bool,
33
37
  default: false
34
38
  end
35
39
 
36
- unless opts[:quiet]
40
+ unless opts[:quiet] || opts[:diff]
37
41
  confirm = ask("This will overwrite #{opts[:fixtures_yml]}. Proceed? [Y/n] ") do |yn|
38
42
  yn.case = :downcase
39
43
  yn.default = 'y'
@@ -43,10 +47,21 @@ unless opts[:quiet]
43
47
  exit unless confirm == 'y'
44
48
  end
45
49
 
46
- say("Creating #{opts[:fixtures_yml]}...")
47
-
48
- PuppetfileFixturesGenerator.create_fixtures(opts[:puppetfile],
49
- opts[:fixtures_yml],
50
- opts[:symlink_name])
51
-
52
- say('Complete.')
50
+ if !opts[:diff]
51
+ say("Creating #{opts[:fixtures_yml]}...")
52
+ PuppetfileFixturesGenerator.create_fixtures(opts[:puppetfile],
53
+ opts[:fixtures_yml],
54
+ opts[:symlink_name])
55
+ say('Complete.')
56
+ exit
57
+ else
58
+ say('Diffing Puppetfile and fixtures')
59
+ diff = PuppetfileFixturesGenerator.diff(opts[:puppetfile],
60
+ opts[:fixtures_yml])
61
+ if diff[0]
62
+ say('Modules match in both files.')
63
+ exit
64
+ else
65
+ abort "Modules do not match in both files\n#{diff[1]}"
66
+ end
67
+ end
File without changes
@@ -6,59 +6,35 @@ module PuppetfileFixturesGenerator
6
6
  # changes in the future this class will be rewritten.
7
7
  class Fixtures
8
8
  #
9
- def initialize(fixtures_file, modules, symlink_name = nil)
9
+ def initialize(fixtures_file, modules = nil, symlink_name = nil)
10
10
  @fixtures = Pathname.new(fixtures_file)
11
11
  @modules = modules
12
12
  @module_hash = { 'fixtures' => {} }
13
- symlink_builder(symlink_name)
13
+ @symlink_name = symlink_name
14
14
  end
15
15
 
16
- def write
16
+ def modules_hash
17
+ YAML.load(@fixtures.read)
18
+ end
19
+
20
+ #
21
+ def write(fixtures_pn = @fixtures)
22
+ return 'Cannot write empty modules' if @modules.nil?
17
23
  # create hash of modules
18
- hash_the_modules
24
+ @module_hash['fixtures'] = @modules
25
+ symlink_builder(@symlink_name)
19
26
  # convert hash to yaml
20
27
  yaml = @module_hash.to_yaml
21
28
  # write yaml
22
- @fixtures.write(yaml)
29
+ fixtures_pn.write(yaml)
23
30
  end
24
31
 
25
32
  private
26
33
 
27
34
  #
28
35
  def symlink_builder(name)
29
- unless name.nil?
30
- @module_hash['fixtures']['symlinks'] = { name => '#{source_dir}' }
31
- end
32
- end
33
-
34
- #
35
- def hash_the_modules
36
- @modules.each { |mod| module_builder(mod) } unless @modules.nil?
37
- end
38
-
39
- #
40
- def module_builder(mod) # rubocop:disable Metrics/MethodLength
41
- case mod.properties[:type]
42
- when :forge
43
- ctgry = 'forge_modules'
44
- repo = mod.title
45
- version = mod.expected_version
46
- when :git
47
- ctgry = 'repositories'
48
- repo = mod.instance_variable_get :@remote
49
- version = mod.instance_variable_get :@ref
50
- end
51
-
52
- @module_hash['fixtures'][ctgry] = {} unless
53
- @module_hash['fixtures'].key?(ctgry)
54
-
55
- add_module(ctgry, mod.name, repo, version)
56
- end
57
-
58
- #
59
- def add_module(category, name, repo, version)
60
- hash = { name => { 'repo' => repo, 'ref' => version } }
61
- @module_hash['fixtures'][category].merge!(hash)
36
+ return if name.nil?
37
+ @module_hash['fixtures']['symlinks'] = { name => '#{source_dir}' }
62
38
  end
63
39
  end
64
40
  end
@@ -0,0 +1,79 @@
1
+ require 'r10k/puppetfile'
2
+
3
+ #
4
+ module PuppetfileFixturesGenerator
5
+ # Manipulate Puppetfiles so they can be converted to fixtures or
6
+ # diffed
7
+ class Puppetfile
8
+ # Constructor
9
+ # @param puppetfile_path Path to the Puppetfile
10
+ def initialize(puppetfile_path)
11
+ @pf_path = puppetfile_path
12
+ end
13
+
14
+ # @return [Hash] Modules from the Puppetfile
15
+ def modules_hash
16
+ @modules_hash ||=
17
+ begin
18
+ hash = {}
19
+ puppetfile.modules.each { |mod| module_builder(mod, hash) }
20
+ hash
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ # @param puppetfile_path Path to the Puppetfile
27
+ # @return [R10K::Puppetfile]
28
+ def puppetfile(puppetfile_path = @pf_path)
29
+ @puppetfile ||=
30
+ begin
31
+ pf = R10K::Puppetfile.new(Pathname.new(puppetfile_path).dirname.to_s)
32
+ pf.load
33
+ pf
34
+ end
35
+ end
36
+
37
+ # Deconstruct a module to its parts. Add the deconstructed module
38
+ # to the appropiate key in a hash. If the appropiate key does not
39
+ # exist in the hash add the key to the hash.
40
+ #
41
+ # @param hash [Hash] Hash to add the module to
42
+ # @param mod [R10K::Module]
43
+ # @return [Hash] Passed in hash with the module added
44
+ def module_builder(mod, hash) # rubocop:disable Metrics/MethodLength
45
+ case mod.properties[:type]
46
+ when :forge
47
+ ctgry = 'forge_modules'
48
+ repo = mod.title
49
+ version = mod.expected_version
50
+ when :git
51
+ ctgry = 'repositories'
52
+ repo = mod.instance_variable_get :@remote
53
+ version = mod.instance_variable_get :@ref
54
+ end
55
+
56
+ add_category(ctgry, hash)
57
+ add_module(ctgry, mod.name, repo, version, hash)
58
+ end
59
+
60
+ # @param category [String] The hash key to add the module to
61
+ # @param name [String] The name of the module
62
+ # @param repo [String] The repo for the module
63
+ # @param version [String] The version of the module
64
+ # @param hsh [Hash] The hash to add the module to
65
+ # @return [Hash] Passed in hash with module added
66
+ def add_module(category, name, repo, version, hsh)
67
+ hash = { name => { 'repo' => repo, 'ref' => version } }
68
+ hsh[category].merge!(hash)
69
+ end
70
+
71
+ # @param key [String] The key to add to the hash
72
+ # @param hsh [Hash] The hash to add the key to
73
+ # @return [Hash] Hash with added key
74
+ def add_category(key, hash)
75
+ hash[key] = {} unless
76
+ hash.key?(key)
77
+ end
78
+ end
79
+ end
@@ -1,3 +1,3 @@
1
1
  module PuppetfileFixturesGenerator
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require 'puppetfile_fixtures_generator/version'
2
2
  require 'puppetfile_fixtures_generator/fixtures'
3
+ require 'puppetfile_fixtures_generator/puppetfile'
3
4
  require 'r10k/puppetfile'
4
5
 
5
6
  # Namespace for classes and modules that handle reading and writing
@@ -27,11 +28,8 @@ module PuppetfileFixturesGenerator
27
28
  modules = nil
28
29
 
29
30
  unless puppetfile.nil?
30
- # load puppetfile file
31
- pf = R10K::Puppetfile.new(Pathname.new(puppetfile).dirname.to_s)
32
- # parse puppetfile
33
- pf.load
34
- modules = pf.modules
31
+ pf = PuppetfileFixturesGenerator::Puppetfile.new(puppetfile)
32
+ modules = pf.modules_hash
35
33
  end
36
34
 
37
35
  # write fixtures
@@ -39,5 +37,39 @@ module PuppetfileFixturesGenerator
39
37
  fixtures.write
40
38
  end
41
39
 
40
+ # Takes a puppetfile and a fixtures file, converts themk to hashes,
41
+ # diffs the hashes, and returns the results.
42
+ #
43
+ # @param [String] puppetfile The path, local or absolute, to the
44
+ # Puppetfile. This Puppetfile will be loaded and parsed to create
45
+ # the fixtures YAML file.
46
+ # @param [String] fixtures The path, local or absolute, to the
47
+ # fixtures file to be written. The path, not the file, must exist.
48
+ #
49
+ # @return [Array] The results of self.hash_differ
50
+ def self.diff(puppetfile, fixtures)
51
+ pf = PuppetfileFixturesGenerator::Puppetfile.new(puppetfile)
52
+ fx = PuppetfileFixturesGenerator::Fixtures.new(fixtures)
53
+
54
+ pf_modules = pf.modules_hash['repositories'].to_a
55
+ fx_modules = fx.modules_hash['fixtures']['repositories'].to_a
56
+
57
+ hash_differ(pf_modules, fx_modules)
58
+ end
59
+
42
60
  # @todo Add support for creating a Puppetfile from a fixtures file
61
+
62
+ # Takes two hashes, diffs them, and returns results
63
+ #
64
+ # @param hash1 [Hash] First hash to diff
65
+ # @param hash2 [Hash] Second hash to diff
66
+ #
67
+ # @return [Array] First element in array is a boolean for whether
68
+ # the files had differences. Second element is a hash of
69
+ # differences.
70
+ def self.hash_differ(hash1, hash2)
71
+ result = hash1 == hash2
72
+ return [result, {}] if result
73
+ [result, Hash[*(hash2.size > hash1.size ? hash2 - hash1 : hash1 - hash2).flatten]]
74
+ end
43
75
  end
@@ -1,30 +1,30 @@
1
1
  # coding: utf-8
2
- require 'rake'
3
-
4
2
  lib = File.expand_path('../lib', __FILE__)
5
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
4
  require 'puppetfile_fixtures_generator/version'
7
5
 
8
6
  Gem::Specification.new do |s|
9
- s.authors = ['Alejandro Figueroa']
10
- s.bindir = 'bin'
11
- s.description = 'Create a .fixtures.yml file from a Puppetfile.'
12
- s.email = ['alejandro@ideasftw.com']
7
+ s.authors = ['Alejandro Figueroa']
8
+ s.bindir = 'bin'
9
+ s.description = 'Create a .fixtures.yml file from a Puppetfile.'
10
+ s.email = ['alejandro@ideasftw.com']
13
11
  s.executables << 'puppetfile_fixtures_generator'
14
- s.files = FileList['lib/**/*.rb', 'bin/*', '[A-Z]*', 'spec/**/*'].to_a
15
- s.homepage = 'https://github.com/thejandroman/puppetfile_fixtures_generator'
16
- s.license = 'MIT'
17
- s.name = 'puppetfile_fixtures_generator'
18
- s.summary = 'Create a .fixtures.yml file from a Puppetfile.'
19
- s.version = PuppetfileFixturesGenerator::VERSION
12
+ s.files = Dir['lib/**/*.rb'] + Dir['bin/*'] + Dir['[A-Z]*'] + Dir['spec/**/*']
13
+ s.homepage = 'https://github.com/Ensighten/puppetfile_fixtures_generator'
14
+ s.license = 'MIT'
15
+ s.name = 'puppetfile_fixtures_generator'
16
+ s.summary = 'Create a .fixtures.yml file from a Puppetfile.'
17
+ s.version = PuppetfileFixturesGenerator::VERSION
18
+ s.required_ruby_version = '>= 2.1'
20
19
 
21
20
  s.add_runtime_dependency 'highline', '~> 1.7'
22
- s.add_runtime_dependency 'r10k', '~> 2.1'
21
+ s.add_runtime_dependency 'r10k', '~> 2.3.0'
23
22
  s.add_runtime_dependency 'trollop', '~> 2.1'
24
23
 
25
24
  s.add_development_dependency 'bundler', '~> 1.10'
26
25
  s.add_development_dependency 'coveralls', '~> 0.8'
27
26
  s.add_development_dependency 'guard-rspec', '~> 4.6'
27
+ s.add_development_dependency 'listen', '~> 3.0.0'
28
28
  s.add_development_dependency 'pry', '~> 0.10'
29
29
  s.add_development_dependency 'rake', '~> 10.0'
30
30
  s.add_development_dependency 'rspec', '~> 3.4'
@@ -5,6 +5,19 @@ describe PuppetfileFixturesGenerator do
5
5
  expect(PuppetfileFixturesGenerator::VERSION).not_to be nil
6
6
  end
7
7
 
8
- describe '#create_fixtures' do
8
+ describe '#diff and #hash_differ' do
9
+ let(:puppetfile) { './spec/fixtures/Puppetfile' }
10
+ let(:matching_diff) { './spec/fixtures/matching_diffs/.fixtures.yml' }
11
+ let(:nonmatching_diff) { './spec/fixtures/nonmatching_diffs/.fixtures.yml' }
12
+ context 'test diffs' do
13
+ it 'matching diff' do
14
+ results = PuppetfileFixturesGenerator.diff(puppetfile, matching_diff)
15
+ expect(results[0]).to eq(true)
16
+ end
17
+ it 'nonmatching diff' do
18
+ results = PuppetfileFixturesGenerator.diff(puppetfile, nonmatching_diff)
19
+ expect(results[0]).to eq(false)
20
+ end
21
+ end
9
22
  end
10
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppetfile_fixtures_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Figueroa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-01 00:00:00.000000000 Z
11
+ date: 2016-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.1'
33
+ version: 2.3.0
34
34
  type: :runtime
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: '2.1'
40
+ version: 2.3.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: trollop
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '4.6'
97
+ - !ruby/object:Gem::Dependency
98
+ name: listen
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 3.0.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 3.0.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: pry
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -172,6 +186,7 @@ executables:
172
186
  extensions: []
173
187
  extra_rdoc_files: []
174
188
  files:
189
+ - CHANGELOG.md
175
190
  - CODE_OF_CONDUCT.md
176
191
  - Gemfile
177
192
  - Gemfile.lock
@@ -182,15 +197,15 @@ files:
182
197
  - TODO.md
183
198
  - bin/puppetfile_fixtures_generator
184
199
  - lib/puppetfile_fixtures_generator.rb
200
+ - lib/puppetfile_fixtures_generator/diff.rb
185
201
  - lib/puppetfile_fixtures_generator/fixtures.rb
202
+ - lib/puppetfile_fixtures_generator/puppetfile.rb
186
203
  - lib/puppetfile_fixtures_generator/version.rb
187
- - puppetfile_fixtures_generator-0.1.0.gem
188
- - puppetfile_fixtures_generator-0.1.1.gem
189
204
  - puppetfile_fixtures_generator.gemspec
190
205
  - spec/fixtures/Puppetfile
191
206
  - spec/puppetfile_fixtures_generator_spec.rb
192
207
  - spec/spec_helper.rb
193
- homepage: https://github.com/thejandroman/puppetfile_fixtures_generator
208
+ homepage: https://github.com/Ensighten/puppetfile_fixtures_generator
194
209
  licenses:
195
210
  - MIT
196
211
  metadata: {}
@@ -202,7 +217,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
202
217
  requirements:
203
218
  - - ">="
204
219
  - !ruby/object:Gem::Version
205
- version: '0'
220
+ version: '2.1'
206
221
  required_rubygems_version: !ruby/object:Gem::Requirement
207
222
  requirements:
208
223
  - - ">="
@@ -215,4 +230,3 @@ signing_key:
215
230
  specification_version: 4
216
231
  summary: Create a .fixtures.yml file from a Puppetfile.
217
232
  test_files: []
218
- has_rdoc: