simp-metadata 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +0 -0
  3. data/Rakefile +69 -0
  4. data/exe/simp-install +8 -0
  5. data/exe/simp-media +8 -0
  6. data/exe/simp-metadata +8 -0
  7. data/lib/simp/install.rb +0 -0
  8. data/lib/simp/install/command.rb +70 -0
  9. data/lib/simp/media.rb +9 -0
  10. data/lib/simp/media/command.rb +69 -0
  11. data/lib/simp/media/engine.rb +104 -0
  12. data/lib/simp/media/type.rb +14 -0
  13. data/lib/simp/media/type/base.rb +63 -0
  14. data/lib/simp/media/type/control-repo.rb +211 -0
  15. data/lib/simp/media/type/internet.rb +38 -0
  16. data/lib/simp/media/type/iso.rb +9 -0
  17. data/lib/simp/media/type/local.rb +36 -0
  18. data/lib/simp/media/type/tar.rb +71 -0
  19. data/lib/simp/metadata.rb +416 -0
  20. data/lib/simp/metadata/bootstrap_source.rb +137 -0
  21. data/lib/simp/metadata/buildinfo.rb +58 -0
  22. data/lib/simp/metadata/command.rb +92 -0
  23. data/lib/simp/metadata/commands.rb +21 -0
  24. data/lib/simp/metadata/commands/base.rb +65 -0
  25. data/lib/simp/metadata/commands/clone.rb +26 -0
  26. data/lib/simp/metadata/commands/component.rb +109 -0
  27. data/lib/simp/metadata/commands/delete.rb +26 -0
  28. data/lib/simp/metadata/commands/pry.rb +19 -0
  29. data/lib/simp/metadata/commands/release.rb +47 -0
  30. data/lib/simp/metadata/commands/releases.rb +24 -0
  31. data/lib/simp/metadata/commands/save.rb +33 -0
  32. data/lib/simp/metadata/commands/script.rb +38 -0
  33. data/lib/simp/metadata/commands/search.rb +65 -0
  34. data/lib/simp/metadata/commands/set-write-url.rb +19 -0
  35. data/lib/simp/metadata/commands/set-write.rb +19 -0
  36. data/lib/simp/metadata/commands/update.rb +46 -0
  37. data/lib/simp/metadata/component.rb +388 -0
  38. data/lib/simp/metadata/components.rb +70 -0
  39. data/lib/simp/metadata/engine.rb +101 -0
  40. data/lib/simp/metadata/fake_uri.rb +19 -0
  41. data/lib/simp/metadata/git_ssh_wrapper.sh +6 -0
  42. data/lib/simp/metadata/location.rb +198 -0
  43. data/lib/simp/metadata/locations.rb +54 -0
  44. data/lib/simp/metadata/release.rb +119 -0
  45. data/lib/simp/metadata/releases.rb +57 -0
  46. data/lib/simp/metadata/source.rb +204 -0
  47. data/spec/simp/media/command_spec.rb +12 -0
  48. data/spec/simp/media/engine_spec.rb +28 -0
  49. data/spec/simp/media/type/control_repo_spec.rb +23 -0
  50. data/spec/simp/media/type/internet_spec.rb +29 -0
  51. data/spec/simp/media/type/iso_spec.rb +15 -0
  52. data/spec/simp/media/type/local_spec.rb +16 -0
  53. data/spec/simp/media/type/tar_spec.rb +16 -0
  54. data/spec/simp/metadata/buildinfo_spec.rb +64 -0
  55. data/spec/simp/metadata/commands/clone_spec.rb +8 -0
  56. data/spec/simp/metadata/component_spec.rb +90 -0
  57. data/spec/simp/metadata/engine_spec.rb +70 -0
  58. data/spec/simp/metadata/release_spec.rb +104 -0
  59. data/spec/simp/metadata/source_spec.rb +25 -0
  60. data/spec/simp/metadata_spec.rb +175 -0
  61. data/spec/spec_helper.rb +40 -0
  62. metadata +260 -0
@@ -0,0 +1,175 @@
1
+ require 'spec_helper'
2
+ require 'simp/metadata'
3
+
4
+ shared_examples_for "log_wrapper" do |method_name|
5
+ it "should not throw an error" do
6
+ $simp_metadata_debug_level = 'debug2'
7
+ tempdir = Dir.mktmpdir("simp-media-rspec")
8
+ expect { Simp::Metadata.send(method_name, "test")}.not_to raise_error
9
+ FileUtils.rmtree(tempdir)
10
+ end
11
+ it "should not throw an error if logging is disabled" do
12
+ tempdir = Dir.mktmpdir("simp-media-rspec")
13
+ $simp_metadata_debug_level = 'disabled'
14
+ expect { Simp::Metadata.send(method_name, "test")}.not_to raise_error
15
+ FileUtils.rmtree(tempdir)
16
+ $simp_metadata_debug_level = 'debug2'
17
+ end
18
+ it "should not throw an error if logging is left default" do
19
+ tempdir = Dir.mktmpdir("simp-media-rspec")
20
+ $simp_metadata_debug_level = 'ssss'
21
+ expect { Simp::Metadata.send(method_name, "test")}.not_to raise_error
22
+ FileUtils.rmtree(tempdir)
23
+ $simp_metadata_debug_level = 'debug2'
24
+ end
25
+ end
26
+
27
+ shared_examples_for "download_component" do |component|
28
+
29
+ it "should not throw an error" do
30
+ tempdir = Dir.mktmpdir("simp-media-rspec")
31
+ expect { Simp::Metadata.download_component(component, {"target" => tempdir})}.not_to raise_error
32
+ FileUtils.rmtree(tempdir)
33
+ end
34
+ it "should return a hash" do
35
+ tempdir = Dir.mktmpdir("simp-media-rspec")
36
+ retval = Simp::Metadata.download_component(component, {"target" => tempdir})
37
+ expect(retval.class.to_s).to eql("Hash")
38
+ FileUtils.rmtree(tempdir)
39
+ end
40
+ it "should return a path key" do
41
+ tempdir = Dir.mktmpdir("simp-media-rspec")
42
+ retval = Simp::Metadata.download_component(component, {"target" => tempdir})
43
+ expect(retval.key?("path")).to eql(true)
44
+ FileUtils.rmtree(tempdir)
45
+ end
46
+ it "should return a path key that is within the tempdir" do
47
+ tempdir = Dir.mktmpdir("simp-media-rspec")
48
+ retval = Simp::Metadata.download_component(component, {"target" => tempdir})
49
+ expect(retval["path"]).to match(/^#{tempdir}/)
50
+ FileUtils.rmtree(tempdir)
51
+ end
52
+ end
53
+ describe Simp::Metadata do
54
+ describe "Simp::Metadata.debug2" do
55
+ it_should_behave_like "log_wrapper", :debug2
56
+ end
57
+ describe "Simp::Metadata.debug1" do
58
+ it_should_behave_like "log_wrapper", :debug1
59
+ end
60
+ describe "Simp::Metadata.info" do
61
+ it_should_behave_like "log_wrapper", :info
62
+ end
63
+ describe "Simp::Metadata.warning" do
64
+ it_should_behave_like "log_wrapper", :warning
65
+ end
66
+ describe "Simp::Metadata.error" do
67
+ it_should_behave_like "log_wrapper", :error
68
+ end
69
+ describe "Simp::Metadata.critical" do
70
+ it_should_behave_like "log_wrapper", :critical
71
+ end
72
+ describe "Simp::Metadata.run" do
73
+ it "should run a command with no errors" do
74
+ # Create an output capture system.
75
+ errorcode = Simp::Metadata.run("echo 'successful'")
76
+ expect(errorcode.success?).to eql(true)
77
+ end
78
+ it "should return an error on a non-zero exit code" do
79
+ # Create an output capture system.
80
+ errorcode = Simp::Metadata.run("false")
81
+ expect(errorcode.success?).to eql(false)
82
+ end
83
+ end
84
+ describe "Simp::Metadata.get_license_data" do
85
+
86
+ it "should return a filename and a data stream" do
87
+ # Create an output capture system.
88
+ filename, data = Simp::Metadata.get_license_data(nil)
89
+ expect(filename.class.to_s).to eql("String")
90
+ expect(data.class.to_s).to eql("String")
91
+ expect(File.exists?(filename)).to eql(true)
92
+ end
93
+ end
94
+ describe "Simp::Metadata.download_component" do
95
+ it "should throw an error if target is not specified" do
96
+ expect { Simp::Metadata.download_component(nil, {})}.to raise_error(RuntimeError, "Must specify 'target'")
97
+ end
98
+ it "should throw an error if component is nil" do
99
+ tempdir = Dir.mktmpdir("simp-media-rspec")
100
+ expect { Simp::Metadata.download_component(nil, {"target" => tempdir})}.to raise_error(RuntimeError, "component.class=NilClass, NilClass is not in ['String', 'Simp::Metadata::Component']")
101
+ FileUtils.rmtree(tempdir)
102
+ end
103
+ it "should throw an error if component is not a string or Simp::Metadata::Component" do
104
+ tempdir = Dir.mktmpdir("simp-media-rspec")
105
+ expect { Simp::Metadata.download_component([], {"target" => tempdir})}.to raise_error(RuntimeError, "component.class=Array, Array is not in ['String', 'Simp::Metadata::Component']")
106
+ FileUtils.rmtree(tempdir)
107
+ end
108
+ describe "when component == 'simp-metadata'" do
109
+ it_should_behave_like "download_component", 'simp-metadata'
110
+ end
111
+ describe "when component is a Simp::Metadata::Component" do
112
+ engine = Simp::Metadata::Engine.new()
113
+ component = engine.components["pupmod-simp-activemq"]
114
+ it_should_behave_like "download_component", component
115
+ end
116
+ if (ENV.fetch("SIMP_LICENSE_KEY", nil) != nil)
117
+ describe "when component == 'enterprise-metadata'" do
118
+ it_should_behave_like "download_component", 'enterprise-metadata'
119
+ end
120
+ end
121
+ end
122
+
123
+ describe "Simp::Metadata.fetch_from_url" do
124
+
125
+ it "should throw an error when urlspec is a 'ftp' String" do
126
+ tempdir = Dir.mktmpdir("simp-media-rspec")
127
+ expect { Simp::Metadata.fetch_from_url("ftp://github.com/simp/simp-metadata/archive/master.zip","#{tempdir}/master.zip",'simp-metadata', {"target" => tempdir})}.to raise_error(RuntimeError, "unsupported url type ftp")
128
+ FileUtils.rmtree(tempdir)
129
+ end
130
+ it "should not throw an error when urlspec is an https String" do
131
+ tempdir = Dir.mktmpdir("simp-media-rspec")
132
+ expect { Simp::Metadata.fetch_from_url("https://github.com/simp/simp-metadata/archive/master.zip","#{tempdir}/master.zip",'simp-metadata', {"target" => tempdir})}.not_to raise_error
133
+ FileUtils.rmtree(tempdir)
134
+ end
135
+ it "should not throw an error when urlspec is an http String" do
136
+ tempdir = Dir.mktmpdir("simp-media-rspec")
137
+ expect { Simp::Metadata.fetch_from_url("http://github.com/simp/simp-metadata/archive/master.zip","#{tempdir}/master.zip",'simp-metadata', {"target" => tempdir})}.not_to raise_error
138
+ FileUtils.rmtree(tempdir)
139
+ end
140
+ it "should not throw an error when urlspec is a hash with just a 'url' element" do
141
+ tempdir = Dir.mktmpdir("simp-media-rspec")
142
+ expect { Simp::Metadata.fetch_from_url({"url" => "https://github.com/simp/simp-metadata/archive/master.zip"},"#{tempdir}/master.zip",'simp-metadata', {"target" => tempdir})}.not_to raise_error
143
+ FileUtils.rmtree(tempdir)
144
+ end
145
+ it "should not throw an error when type == file" do
146
+ tempdir = Dir.mktmpdir("simp-media-rspec")
147
+ expect { Simp::Metadata.fetch_from_url({"type" => "file", "url" => "https://github.com/simp/simp-metadata/archive/master.zip"},"#{tempdir}/master.zip",'simp-metadata', {"target" => tempdir})}.not_to raise_error
148
+ FileUtils.rmtree(tempdir)
149
+ end
150
+ it "should not throw an error when type == git" do
151
+ tempdir = Dir.mktmpdir("simp-media-rspec")
152
+ expect { Simp::Metadata.fetch_from_url({"type" => "git", "url" => "https://github.com/simp/simp-metadata"},"#{tempdir}/simp-metadata",'simp-metadata', {"target" => tempdir})}.not_to raise_error
153
+ # Test git pull origin code path as well
154
+ expect { Simp::Metadata.fetch_from_url({"type" => "git", "url" => "https://github.com/simp/simp-metadata"},"#{tempdir}/simp-metadata",'simp-metadata', {"target" => tempdir})}.not_to raise_error
155
+ FileUtils.rmtree(tempdir)
156
+ end
157
+ end
158
+
159
+ describe "Simp::Metadata.fetch_simp_enterprise" do
160
+ it "should not throw an error when location is a location" do
161
+ tempdir = Dir.mktmpdir("simp-media-rspec")
162
+ engine = Simp::Metadata::Engine.new()
163
+ component = engine.components["pupmod-simp-activemq"]
164
+ expect { Simp::Metadata.fetch_simp_enterprise(component.primary.url,"#{tempdir}/simp-metadata",component, component.primary, {"target" => tempdir})}.not_to raise_error
165
+ FileUtils.rmtree(tempdir)
166
+ end
167
+ xit "should not throw an error when downloading a simp-metadata url" do
168
+ tempdir = Dir.mktmpdir("simp-media-rspec")
169
+ engine = Simp::Metadata::Engine.new(nil, nil, "enterprise")
170
+ component = engine.components["enterprise-metadata"]
171
+ expect { Simp::Metadata.fetch_simp_enterprise(component.primary.url,"#{tempdir}/simp-metadata",component, component.primary, {"target" => tempdir})}.not_to raise_error
172
+ FileUtils.rmtree(tempdir)
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,40 @@
1
+ require 'simplecov'
2
+ $simp_metadata_debug_level = 'debug2'
3
+ $simp_metadata_debug_output_disabled = true
4
+ #SimpleCov.minimum_coverage 70
5
+ #SimpleCov.minimum_coverage_by_file 30
6
+ SimpleCov.start do
7
+ add_filter "/vendor/"
8
+ end
9
+ def test_component(engine = nil)
10
+ if engine == nil
11
+ engine = Simp::Metadata::Engine.new(nil, nil)
12
+ end
13
+ component1 = engine.releases["test-stub"].components["pupmod-simp-activemq"]
14
+ end
15
+ def diff_component(engine = nil)
16
+ if engine == nil
17
+ engine = Simp::Metadata::Engine.new(nil, nil)
18
+ end
19
+ component1 = engine.releases["test-diff"].components["pupmod-simp-activemq"]
20
+ end
21
+
22
+ def component_diff_instance(release1,release2, component, attribute)
23
+ engine = Simp::Metadata::Engine.new(nil, nil)
24
+ component1 = test_component(engine)
25
+ component2 = diff_component(engine)
26
+ component1.diff(component2,attribute)
27
+ end
28
+
29
+ def component_view_instance(release, component, attribute)
30
+ comp = test_component()
31
+ comp.view(attribute)
32
+ end
33
+
34
+ def release_diff_instance(release1, release2, attribute)
35
+ engine = Simp::Metadata::Engine.new(nil, nil)
36
+ release1 = engine.releases["test-stub"]
37
+ release2 = engine.releases["test-diff"]
38
+ release1.diff(release2,attribute)
39
+ end
40
+
metadata ADDED
@@ -0,0 +1,260 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simp-metadata
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.3
5
+ platform: ruby
6
+ authors:
7
+ - Dylan Cochran
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-05-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
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: redcarpet
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: rubygems-tasks
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: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard-sinatra
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yardstick
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: reek
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-command
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: A library for accessing the SIMP metadata format for the simp project
168
+ email: simp@simp-project.org
169
+ executables:
170
+ - simp-install
171
+ - simp-media
172
+ - simp-metadata
173
+ extensions: []
174
+ extra_rdoc_files: []
175
+ files:
176
+ - README.md
177
+ - Rakefile
178
+ - exe/simp-install
179
+ - exe/simp-media
180
+ - exe/simp-metadata
181
+ - lib/simp/install.rb
182
+ - lib/simp/install/command.rb
183
+ - lib/simp/media.rb
184
+ - lib/simp/media/command.rb
185
+ - lib/simp/media/engine.rb
186
+ - lib/simp/media/type.rb
187
+ - lib/simp/media/type/base.rb
188
+ - lib/simp/media/type/control-repo.rb
189
+ - lib/simp/media/type/internet.rb
190
+ - lib/simp/media/type/iso.rb
191
+ - lib/simp/media/type/local.rb
192
+ - lib/simp/media/type/tar.rb
193
+ - lib/simp/metadata.rb
194
+ - lib/simp/metadata/bootstrap_source.rb
195
+ - lib/simp/metadata/buildinfo.rb
196
+ - lib/simp/metadata/command.rb
197
+ - lib/simp/metadata/commands.rb
198
+ - lib/simp/metadata/commands/base.rb
199
+ - lib/simp/metadata/commands/clone.rb
200
+ - lib/simp/metadata/commands/component.rb
201
+ - lib/simp/metadata/commands/delete.rb
202
+ - lib/simp/metadata/commands/pry.rb
203
+ - lib/simp/metadata/commands/release.rb
204
+ - lib/simp/metadata/commands/releases.rb
205
+ - lib/simp/metadata/commands/save.rb
206
+ - lib/simp/metadata/commands/script.rb
207
+ - lib/simp/metadata/commands/search.rb
208
+ - lib/simp/metadata/commands/set-write-url.rb
209
+ - lib/simp/metadata/commands/set-write.rb
210
+ - lib/simp/metadata/commands/update.rb
211
+ - lib/simp/metadata/component.rb
212
+ - lib/simp/metadata/components.rb
213
+ - lib/simp/metadata/engine.rb
214
+ - lib/simp/metadata/fake_uri.rb
215
+ - lib/simp/metadata/git_ssh_wrapper.sh
216
+ - lib/simp/metadata/location.rb
217
+ - lib/simp/metadata/locations.rb
218
+ - lib/simp/metadata/release.rb
219
+ - lib/simp/metadata/releases.rb
220
+ - lib/simp/metadata/source.rb
221
+ - spec/simp/media/command_spec.rb
222
+ - spec/simp/media/engine_spec.rb
223
+ - spec/simp/media/type/control_repo_spec.rb
224
+ - spec/simp/media/type/internet_spec.rb
225
+ - spec/simp/media/type/iso_spec.rb
226
+ - spec/simp/media/type/local_spec.rb
227
+ - spec/simp/media/type/tar_spec.rb
228
+ - spec/simp/metadata/buildinfo_spec.rb
229
+ - spec/simp/metadata/commands/clone_spec.rb
230
+ - spec/simp/metadata/component_spec.rb
231
+ - spec/simp/metadata/engine_spec.rb
232
+ - spec/simp/metadata/release_spec.rb
233
+ - spec/simp/metadata/source_spec.rb
234
+ - spec/simp/metadata_spec.rb
235
+ - spec/spec_helper.rb
236
+ homepage: https://github.com/simp/rubygem-simp-metadata
237
+ licenses:
238
+ - Apache-2.0
239
+ metadata: {}
240
+ post_install_message:
241
+ rdoc_options: []
242
+ require_paths:
243
+ - lib
244
+ required_ruby_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ required_rubygems_version: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ requirements: []
255
+ rubyforge_project:
256
+ rubygems_version: 2.6.13
257
+ signing_key:
258
+ specification_version: 4
259
+ summary: SIMP Metadata Library
260
+ test_files: []