puppet_spec_facts 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +13 -0
  8. data/README.md +93 -0
  9. data/Rakefile +7 -0
  10. data/Vagrantfile +146 -0
  11. data/facts/Archlinux/Archlinux_3.15.8-1-ARCH_x86_64_3.5.1_stringified.json +86 -0
  12. data/facts/CentOS/CentOS_5.11_i386_3.7.1_structured.json +127 -0
  13. data/facts/CentOS/CentOS_5.11_i386_PE-3.3.2_stringified.json +84 -0
  14. data/facts/CentOS/CentOS_5.11_x86_64_3.7.1_structured.json +127 -0
  15. data/facts/CentOS/CentOS_5.11_x86_64_PE-3.3.2_stringified.json +84 -0
  16. data/facts/Debian/Debian_wheezy_7.7_amd64_3.7.2_structured.json +143 -0
  17. data/facts/Debian/Debian_wheezy_7.7_amd64_PE-3.3.2_stringified.json +86 -0
  18. data/facts/Debian/Debian_wheezy_7.7_i386_PE-3.3.2_stringified.json +86 -0
  19. data/facts/FreeBSD/FreeBSD_10.0-RELEASE_amd64_3.6.2_structured.json +114 -0
  20. data/facts/SLES/SLES_11.1_x86_64_3.1.1_stringified.json +62 -0
  21. data/facts/Ubuntu/Ubuntu_precise_12.04_amd64_PE-3.3.2_stringified.json +85 -0
  22. data/facts/Ubuntu/Ubuntu_precise_12.04_i386_PE-3.3.2_stringified.json +85 -0
  23. data/facts/Ubuntu/Ubuntu_saucy_13.10_amd64_3.5.1_stringified.json +84 -0
  24. data/facts/Ubuntu/Ubuntu_trusty_14.04_amd64_PE-3.3.2_stringified.json +85 -0
  25. data/facts/Ubuntu/Ubuntu_trusty_14.04_i386_PE-3.3.2_stringified.json +85 -0
  26. data/facts/darwin/Darwin_10.9.5_x86_64_3.4.3_stringified.json +135 -0
  27. data/facts/darwin/Darwin_10.9.5_x86_64_3.7.3_structured.json +157 -0
  28. data/lib/puppet_spec_facts/version.rb +3 -0
  29. data/lib/puppet_spec_facts.rb +139 -0
  30. data/puppet_spec_facts.gemspec +27 -0
  31. data/spec/lib/puppet_spec_facts_spec.rb +102 -0
  32. data/spec/spec_helper.rb +5 -0
  33. metadata +161 -0
@@ -0,0 +1,157 @@
1
+ {
2
+ "architecture": "x86_64",
3
+ "kernel": "Darwin",
4
+ "domain": "local",
5
+ "virtual": "physical",
6
+ "is_virtual": false,
7
+ "hardwaremodel": "x86_64",
8
+ "operatingsystem": "Darwin",
9
+ "os": {
10
+ "name": "Darwin",
11
+ "family": "Darwin",
12
+ "release": {
13
+ "major": "13",
14
+ "minor": "4",
15
+ "full": "13.4.0"
16
+ }
17
+ },
18
+ "kernelrelease": "13.4.0",
19
+ "facterversion": "2.3.0",
20
+ "fqdn": "MacBook-Pro.local",
21
+ "gid": "staff",
22
+ "hardwareisa": "i386",
23
+ "hostname": "MacBook-Pro",
24
+ "id": "example",
25
+ "interfaces": "lo0,gif0,stf0,en0,en1,en2,bridge0,p2p0,vboxnet0,vboxnet1,vboxnet10,vboxnet11,vboxnet12,vboxnet13,vboxnet2,vboxnet3,vboxnet4,vboxnet5,vboxnet6,vboxnet7,vboxnet8,vboxnet9,fw1,en6,fw0,en5",
26
+ "ipaddress_lo0": "127.0.0.1",
27
+ "netmask_lo0": "255.0.0.0",
28
+ "mtu_lo0": 16384,
29
+ "mtu_gif0": 1280,
30
+ "mtu_stf0": 1280,
31
+ "ipaddress_en0": "10.0.26.161",
32
+ "macaddress_en0": "3c:15:c2:cf:1c:24",
33
+ "netmask_en0": "255.255.252.0",
34
+ "mtu_en0": 1500,
35
+ "macaddress_en1": "72:00:03:cf:03:20",
36
+ "mtu_en1": 1500,
37
+ "macaddress_en2": "72:00:03:cf:03:21",
38
+ "mtu_en2": 1500,
39
+ "macaddress_bridge0": "3e:15:c2:fc:e5:00",
40
+ "mtu_bridge0": 1500,
41
+ "macaddress_p2p0": "0e:15:c2:cf:1c:24",
42
+ "mtu_p2p0": 2304,
43
+ "macaddress_vboxnet0": "0a:00:27:00:00:00",
44
+ "mtu_vboxnet0": 1500,
45
+ "macaddress_vboxnet1": "0a:00:27:00:00:01",
46
+ "mtu_vboxnet1": 1500,
47
+ "ipaddress_vboxnet10": "10.255.0.1",
48
+ "macaddress_vboxnet10": "0a:00:27:00:00:0a",
49
+ "netmask_vboxnet10": "255.255.0.0",
50
+ "mtu_vboxnet10": 1500,
51
+ "macaddress_vboxnet11": "0a:00:27:00:00:0b",
52
+ "mtu_vboxnet11": 1500,
53
+ "macaddress_vboxnet12": "0a:00:27:00:00:0c",
54
+ "mtu_vboxnet12": 1500,
55
+ "macaddress_vboxnet13": "0a:00:27:00:00:0d",
56
+ "mtu_vboxnet13": 1500,
57
+ "ipaddress_vboxnet2": "192.168.37.1",
58
+ "macaddress_vboxnet2": "0a:00:27:00:00:02",
59
+ "netmask_vboxnet2": "255.255.255.0",
60
+ "mtu_vboxnet2": 1500,
61
+ "ipaddress_vboxnet3": "10.20.1.1",
62
+ "macaddress_vboxnet3": "0a:00:27:00:00:03",
63
+ "netmask_vboxnet3": "255.255.255.0",
64
+ "mtu_vboxnet3": 1500,
65
+ "macaddress_vboxnet4": "0a:00:27:00:00:04",
66
+ "mtu_vboxnet4": 1500,
67
+ "macaddress_vboxnet5": "0a:00:27:00:00:05",
68
+ "mtu_vboxnet5": 1500,
69
+ "macaddress_vboxnet6": "0a:00:27:00:00:06",
70
+ "mtu_vboxnet6": 1500,
71
+ "macaddress_vboxnet7": "0a:00:27:00:00:07",
72
+ "mtu_vboxnet7": 1500,
73
+ "macaddress_vboxnet8": "0a:00:27:00:00:08",
74
+ "mtu_vboxnet8": 1500,
75
+ "macaddress_vboxnet9": "0a:00:27:00:00:09",
76
+ "mtu_vboxnet9": 1500,
77
+ "macaddress_fw1": "00:0a:27:02:00:57",
78
+ "mtu_fw1": 4078,
79
+ "ipaddress_en6": "10.0.16.143",
80
+ "macaddress_en6": "68:5b:35:b7:45:4b",
81
+ "netmask_en6": "255.255.252.0",
82
+ "mtu_en6": 1500,
83
+ "macaddress_fw0": "00:0a:27:02:00:58",
84
+ "mtu_fw0": 4078,
85
+ "macaddress_en5": "68:5b:35:c1:60:3b",
86
+ "mtu_en5": 1500,
87
+ "ipaddress": "10.0.26.161",
88
+ "kernelmajversion": "13.4",
89
+ "kernelversion": "13.4.0",
90
+ "macaddress": "68:5b:35:b7:45:4b",
91
+ "sp_smc_version_system": "2.19f7",
92
+ "sp_boot_rom_version": "MBP112.0138.B07",
93
+ "sp_cpu_type": "Intel Core i7",
94
+ "sp_current_processor_speed": "2.3 GHz",
95
+ "sp_l2_cache_core": "256 KB",
96
+ "sp_l3_cache": "6 MB",
97
+ "sp_machine_model": "MacBookPro11,3",
98
+ "sp_machine_name": "MacBook Pro",
99
+ "sp_number_processors": 4,
100
+ "sp_packages": 1,
101
+ "sp_physical_memory": "16 GB",
102
+ "sp_boot_mode": "normal_boot",
103
+ "sp_boot_volume": "Macintosh HD",
104
+ "sp_kernel_version": "Darwin 13.4.0",
105
+ "sp_local_host_name": "MacBook Pro",
106
+ "sp_os_version": "OS X 10.9.5 (13F34)",
107
+ "sp_secure_vm": "secure_vm_enabled",
108
+ "sp_uptime": "up 7:5:7:38",
109
+ "macosx_productname": "Mac OS X",
110
+ "macosx_productversion": "10.9.5",
111
+ "macosx_buildversion": "13F34",
112
+ "macosx_productversion_major": "10.9",
113
+ "macosx_productversion_minor": "5",
114
+ "productname": "MacBookPro11,3",
115
+ "memorysize": "16.00 GB",
116
+ "memoryfree": "3.62 GB",
117
+ "swapsize": "1024.00 MB",
118
+ "swapfree": "627.00 MB",
119
+ "swapsize_mb": "1024.00",
120
+ "swapfree_mb": "627.00",
121
+ "memorysize_mb": "16384.00",
122
+ "memoryfree_mb": "3706.13",
123
+ "swapencrypted": true,
124
+ "netmask": "255.255.252.0",
125
+ "network_lo0": "127.0.0.0",
126
+ "network_en0": "10.0.24.0",
127
+ "network_vboxnet10": "10.255.0.0",
128
+ "network_vboxnet2": "192.168.37.0",
129
+ "network_vboxnet3": "10.20.1.0",
130
+ "network_en6": "10.0.16.0",
131
+ "operatingsystemmajrelease": "13",
132
+ "operatingsystemrelease": "13.4.0",
133
+ "osfamily": "Darwin",
134
+ "path": "/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/MacGPG2/bin",
135
+ "processors": {
136
+ "count": 8,
137
+ "speed": "2.3 GHz"
138
+ },
139
+ "processorcount": 8,
140
+ "ps": "ps auxwww",
141
+ "puppetversion": "3.7.3",
142
+ "rubyplatform": "x86_64-darwin13.0",
143
+ "rubysitedir": "/Users/example/.rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0",
144
+ "rubyversion": "2.1.2",
145
+ "system_uptime": {
146
+ "seconds": 623230,
147
+ "hours": 173,
148
+ "days": 7,
149
+ "uptime": "7 days"
150
+ },
151
+ "timezone": "PST",
152
+ "uptime": "7 days",
153
+ "uptime_days": 7,
154
+ "uptime_hours": 173,
155
+ "uptime_seconds": 623230,
156
+ "fact_style": "structured"
157
+ }
@@ -0,0 +1,3 @@
1
+ module PuppetSpecFacts
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,139 @@
1
+ require "puppet_spec_facts/version"
2
+ require 'json'
3
+ require 'puppet'
4
+ require 'semver'
5
+ require 'fileutils'
6
+
7
+ # this module is intended to be used in rspec-puppet tests when you need to
8
+ # test on a variety of platforms and need to load facter facts for each one
9
+
10
+ # you can generate appropriate json files with: facter --json > filename.json
11
+ # then dump the file in the facts directory with the .json extension. If you're
12
+ # cool you'll use facter --json | jq . > filename.json to prettyprint it
13
+
14
+ module PuppetSpecFacts
15
+ def self.puppet_platforms
16
+ platforms = {}
17
+ file_list = Dir.glob("#{@proj_root}/**/*.json")
18
+ file_list.each do |filename|
19
+ fact_hash = get_jsonfile(filename)
20
+ platform_name = make_sane_name(fact_hash)
21
+
22
+ if platforms[platform_name] != nil
23
+ next
24
+ end
25
+ platforms[platform_name] = overload_facts(fact_hash)
26
+ end
27
+ platforms
28
+ end
29
+
30
+ # inject some additional facts to simplify lookups from rspec
31
+ def self.overload_facts(fact_hash)
32
+ fact_hash['fact_style'] = fact_style(fact_hash)
33
+ fact_hash['is_pe'] = 'true' if is_pe(fact_hash)
34
+ return fact_hash
35
+ end
36
+
37
+ def self.puppet_platform_names
38
+ platform_names = []
39
+ puppet_platforms.each do |name, value|
40
+ platform_names << name
41
+ end
42
+ platform_names
43
+ end
44
+
45
+ def self.facts_for_platform_by_fact(factstyle: nil, select_facts: {})
46
+ puppet_platforms.select { |platform, facts|
47
+ match = true
48
+ select_facts.each { |query_fact, query_value|
49
+ match = false if facts[query_fact] != query_value
50
+ }
51
+ match
52
+ }
53
+ end
54
+
55
+ def self.facts_for_platform_by_name(platform)
56
+ puppet_platforms[platform]
57
+ end
58
+
59
+ def self.resave_all_facts
60
+ puppet_platforms.each do |name, hash|
61
+ save_reorganized_facts_to_json(fact_hash: hash)
62
+ end
63
+ end
64
+
65
+ def self.save_reorganized_facts_to_json(fact_hash: nil, dir: 'facts')
66
+ namepath = name_osname(fact_hash)
67
+ save_path = "#{@proj_root}/#{dir}/#{namepath}"
68
+ filename = make_sane_name(fact_hash) + '.json'
69
+ json_output = JSON.pretty_generate(fact_hash)
70
+ FileUtils.mkdir_p save_path
71
+
72
+ File.open("#{save_path}/#{filename}","w") do |f|
73
+ f.write(json_output)
74
+ end
75
+ end
76
+
77
+ def self.name_osname(fact_hash)
78
+ osname ||= fact_hash['lsbdistid']
79
+ osname ||= fact_hash['operatingsystem']
80
+ osname ||= fact_hash['kernel']
81
+ osname ||= fact_hash['osfamily']
82
+ end
83
+
84
+ def self.name_version(fact_hash)
85
+ version = fact_hash['lsbdistrelease']
86
+ version ||= fact_hash['macosx_productversion']
87
+ version ||= fact_hash['operatingsystemrelease']
88
+ end
89
+
90
+ def self.name_codename(fact_hash)
91
+ return fact_hash['lsbdistcodename'] unless fact_hash['osfamily'] == 'RedHat'
92
+ nil
93
+ end
94
+
95
+ #private
96
+ def self.make_sane_name(fact_hash)
97
+ osname = name_osname(fact_hash)
98
+ codename = name_codename(fact_hash)
99
+ version = name_version(fact_hash)
100
+ architecture = fact_hash['architecture']
101
+ puppet_version = puppet_name(fact_hash)
102
+ fact_style = fact_style(fact_hash)
103
+
104
+ return [osname, codename, version, architecture, puppet_version, fact_style].compact.join('_')
105
+ end
106
+
107
+ def self.is_pe(fact_hash)
108
+ return true if fact_hash['puppetversion'].downcase.include?('puppet enterprise')
109
+ false
110
+ end
111
+
112
+ def self.puppet_name(fact_hash)
113
+ if is_pe(fact_hash)
114
+ version = fact_hash['puppetversion'].delete('()').split[3]
115
+ return "PE-#{version}"
116
+ else
117
+ return fact_hash['puppetversion']
118
+ end
119
+ end
120
+
121
+ @proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
122
+ if Dir[File.join(@proj_root,"facts")].empty?
123
+ abort("facts dir missing")
124
+ end
125
+
126
+ def self.fact_style(fact_hash)
127
+ if SemVer.new(fact_hash['facterversion']) > SemVer.new('2.0.0')
128
+ return 'structured' if fact_hash['system_uptime'].is_a?(Hash)
129
+ return 'stringified' if fact_hash['system_uptime'] == nil
130
+ elsif SemVer.new(fact_hash['facterversion']) < SemVer.new('2.0.0')
131
+ return 'stringified' if fact_hash['system_uptime'] == nil
132
+ end
133
+ raise('cannot determine whether fact hash is structured or stringified')
134
+ end
135
+
136
+ def self.get_jsonfile(filename)
137
+ JSON.parse(File.read(filename))
138
+ end
139
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'puppet_spec_facts/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "puppet_spec_facts"
8
+ spec.version = PuppetSpecFacts::VERSION
9
+ spec.authors = ["Daniel Dreier"]
10
+ spec.email = ["d@puppetlabs.com"]
11
+ spec.summary = %q{Provide facter facts to rspec-puppet}
12
+ spec.description = %q{Support iteration of }
13
+ spec.homepage = "https://github.com/danieldreier/puppet_spec_facts"
14
+ spec.license = "Apache License, Version 2.0"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency 'rspec'
24
+ spec.add_development_dependency 'coveralls'
25
+ spec.add_runtime_dependency 'puppet', '~> 3.7'
26
+ spec.add_runtime_dependency 'json'
27
+ end
@@ -0,0 +1,102 @@
1
+ require 'spec_helper'
2
+
3
+ stringified_hash = {
4
+ "kernel" => "Linux",
5
+ "osfamily" => "Debian",
6
+ "operatingsystem" => "Debian",
7
+ "facterversion" => "1.7.5"
8
+ }
9
+ structured_hash = {
10
+ "kernel" => "Linux",
11
+ "osfamily" => "Debian",
12
+ "operatingsystem" => "Debian",
13
+ "facterversion" => "2.2.0",
14
+ "system_uptime" => {
15
+ "seconds" => 15416,
16
+ "hours" => 4,
17
+ "days" => 0,
18
+ "uptime" => "4:16 hours"
19
+ }
20
+ }
21
+ # structured facts only existed after facter 2.x
22
+ impossible_hash = {
23
+ "facterversion" => "1.0.0",
24
+ "system_uptime" => {
25
+ "seconds" => 15416,
26
+ }
27
+ }
28
+
29
+ pe_hash = {
30
+ "kernel" => "Linux",
31
+ "osfamily" => "Debian",
32
+ "operatingsystem" => "Debian",
33
+ 'puppetversion' => '3.6.2 (Puppet Enterprise 3.3.2)'
34
+ }
35
+ foss_hash = {
36
+ "kernel" => "Linux",
37
+ "osfamily" => "Debian",
38
+ "operatingsystem" => "Debian",
39
+ 'puppetversion' => '3.6.2'
40
+ }
41
+
42
+ describe PuppetSpecFacts do
43
+ describe 'fact_style' do
44
+ it 'detects stringified facts' do
45
+ expect(PuppetSpecFacts.fact_style(stringified_hash)).to eq('stringified')
46
+ end
47
+ it 'detects structured facts' do
48
+ expect(PuppetSpecFacts.fact_style(structured_hash)).to eq('structured')
49
+ end
50
+ it 'raises an error given an invalid input' do
51
+ expect { PuppetSpecFacts.fact_style(impossible_hash) }.to raise_error
52
+ end
53
+ end
54
+
55
+ describe 'is_pe' do
56
+ it 'returns true if hash is from Puppet Enterprise' do
57
+ expect(PuppetSpecFacts.is_pe(pe_hash)).to be true
58
+ end
59
+ it 'returns false if hash is from open source Puppet' do
60
+ expect(PuppetSpecFacts.is_pe(foss_hash)).to be false
61
+ end
62
+ end
63
+
64
+ describe 'puppet_name' do
65
+ it 'contains "PE" given a PE hash' do
66
+ expect(PuppetSpecFacts.puppet_name({'puppetversion' => '3.6.2 (Puppet Enterprise 3.3.2)'})).to include('PE-')
67
+ end
68
+ it 'is the puppet version given a foss hash' do
69
+ expect(PuppetSpecFacts.puppet_name({'puppetversion' => '3.6.2'})).to eq('3.6.2')
70
+ end
71
+ end
72
+
73
+ describe 'puppet_platforms' do
74
+ it 'returns at least five values' do
75
+ expect(PuppetSpecFacts.puppet_platforms.count).to be >= 5
76
+ end
77
+ it 'returns a hash' do
78
+ expect(PuppetSpecFacts.puppet_platforms).to be_a(Hash)
79
+ end
80
+ end
81
+
82
+ describe 'puppet_platform_names' do
83
+ it 'returns an array' do
84
+ expect(PuppetSpecFacts.puppet_platform_names).to be_an(Array)
85
+ end
86
+ it 'returns at least five values' do
87
+ expect(PuppetSpecFacts.puppet_platform_names.count).to be >= 5
88
+ end
89
+ end
90
+
91
+ describe 'facts_for_platform_by_fact' do
92
+ it 'returns at least 5 values for "architecture" => "x86_64"' do
93
+ expect(PuppetSpecFacts.facts_for_platform_by_fact(select_facts: { "architecture" => "x86_64" }).count).to be >= 5
94
+ end
95
+ it 'returns at least 5 values for "kernel" => "Linux"' do
96
+ expect(PuppetSpecFacts.facts_for_platform_by_fact(select_facts: { "kernel" => "Linux" }).count).to be >= 5
97
+ end
98
+ it 'returns no values for "architecture" => "foo"' do
99
+ expect(PuppetSpecFacts.facts_for_platform_by_fact(select_facts: { "architecture" => "foo" }).count).to eq(0)
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,5 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'puppet_spec_facts'
5
+ require 'rspec'
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: puppet_spec_facts
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Dreier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: puppet
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.7'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: 'Support iteration of '
98
+ email:
99
+ - d@puppetlabs.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".ruby-gemset"
106
+ - ".ruby-version"
107
+ - ".travis.yml"
108
+ - Gemfile
109
+ - LICENSE.txt
110
+ - README.md
111
+ - Rakefile
112
+ - Vagrantfile
113
+ - facts/Archlinux/Archlinux_3.15.8-1-ARCH_x86_64_3.5.1_stringified.json
114
+ - facts/CentOS/CentOS_5.11_i386_3.7.1_structured.json
115
+ - facts/CentOS/CentOS_5.11_i386_PE-3.3.2_stringified.json
116
+ - facts/CentOS/CentOS_5.11_x86_64_3.7.1_structured.json
117
+ - facts/CentOS/CentOS_5.11_x86_64_PE-3.3.2_stringified.json
118
+ - facts/Debian/Debian_wheezy_7.7_amd64_3.7.2_structured.json
119
+ - facts/Debian/Debian_wheezy_7.7_amd64_PE-3.3.2_stringified.json
120
+ - facts/Debian/Debian_wheezy_7.7_i386_PE-3.3.2_stringified.json
121
+ - facts/FreeBSD/FreeBSD_10.0-RELEASE_amd64_3.6.2_structured.json
122
+ - facts/SLES/SLES_11.1_x86_64_3.1.1_stringified.json
123
+ - facts/Ubuntu/Ubuntu_precise_12.04_amd64_PE-3.3.2_stringified.json
124
+ - facts/Ubuntu/Ubuntu_precise_12.04_i386_PE-3.3.2_stringified.json
125
+ - facts/Ubuntu/Ubuntu_saucy_13.10_amd64_3.5.1_stringified.json
126
+ - facts/Ubuntu/Ubuntu_trusty_14.04_amd64_PE-3.3.2_stringified.json
127
+ - facts/Ubuntu/Ubuntu_trusty_14.04_i386_PE-3.3.2_stringified.json
128
+ - facts/darwin/Darwin_10.9.5_x86_64_3.4.3_stringified.json
129
+ - facts/darwin/Darwin_10.9.5_x86_64_3.7.3_structured.json
130
+ - lib/puppet_spec_facts.rb
131
+ - lib/puppet_spec_facts/version.rb
132
+ - puppet_spec_facts.gemspec
133
+ - spec/lib/puppet_spec_facts_spec.rb
134
+ - spec/spec_helper.rb
135
+ homepage: https://github.com/danieldreier/puppet_spec_facts
136
+ licenses:
137
+ - Apache License, Version 2.0
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.2.2
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: Provide facter facts to rspec-puppet
159
+ test_files:
160
+ - spec/lib/puppet_spec_facts_spec.rb
161
+ - spec/spec_helper.rb