libbom 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 47a8a9c8f7d2147026d0c4989e358cdcfa86ff73e6b118888aa1e81115306ae9
4
+ data.tar.gz: b7da7f69ab121b9812fbc45442672ec18fdbdc3e99d99a517af235951df3d1e9
5
+ SHA512:
6
+ metadata.gz: e1f7e8c68cf7bf5ffb350318cea7f2f85dda1975c65b4309fbbf341010505df636c7976b941441de6bc7bb88828e1f53863864b1999e40f33aec0ea676845b4e
7
+ data.tar.gz: 65fe39b9a71e1eec6f3cf3daffa75e8f9c94ad0af59e4b3beef7891aab0481e8b77a9aebe4e804b344273eefa9159b04903bd267e093ac74ec576f34fa8eb482
@@ -0,0 +1,16 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ *.bundle
10
+ *.so
11
+ *.o
12
+ *.a
13
+ mkmf.log
14
+
15
+ # rspec failure tracking
16
+ .rspec_status
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
+ </profile>
6
+ </component>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared />
5
+ </component>
6
+ <component name="NewModuleRootManager">
7
+ <content url="file://$MODULE_DIR$" />
8
+ <orderEntry type="jdk" jdkName="rbenv: 2.5.0" jdkType="RUBY_SDK" />
9
+ <orderEntry type="sourceFolder" forTests="false" />
10
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.16.1, rbenv: 2.5.0) [gem]" level="application" />
11
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, rbenv: 2.5.0) [gem]" level="application" />
12
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, rbenv: 2.5.0) [gem]" level="application" />
13
+ <orderEntry type="library" scope="PROVIDED" name="rake-compiler (v1.0.4, rbenv: 2.5.0) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="rspec (v3.7.0, rbenv: 2.5.0) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.7.1, rbenv: 2.5.0) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.7.0, rbenv: 2.5.0) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.7.0, rbenv: 2.5.0) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.7.0, rbenv: 2.5.0) [gem]" level="application" />
19
+ </component>
20
+ </module>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 2.4.3" project-jdk-type="RUBY_SDK" />
4
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/libbom.iml" filepath="$PROJECT_DIR$/.idea/libbom.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,312 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="f1efd1cf-9164-470a-868a-6f3889ac769a" name="Default" comment="">
5
+ <change beforePath="" afterPath="$PROJECT_DIR$/.gitignore" />
6
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
7
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/libbom.iml" />
8
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
9
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
10
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
11
+ <change beforePath="" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
12
+ <change beforePath="" afterPath="$PROJECT_DIR$/.rspec" />
13
+ <change beforePath="" afterPath="$PROJECT_DIR$/.travis.yml" />
14
+ <change beforePath="" afterPath="$PROJECT_DIR$/CODE_OF_CONDUCT.md" />
15
+ <change beforePath="" afterPath="$PROJECT_DIR$/Gemfile" />
16
+ <change beforePath="" afterPath="$PROJECT_DIR$/LICENSE.txt" />
17
+ <change beforePath="" afterPath="$PROJECT_DIR$/README.md" />
18
+ <change beforePath="" afterPath="$PROJECT_DIR$/Rakefile" />
19
+ <change beforePath="" afterPath="$PROJECT_DIR$/bin/console" />
20
+ <change beforePath="" afterPath="$PROJECT_DIR$/bin/setup" />
21
+ <change beforePath="" afterPath="$PROJECT_DIR$/ext/libbom/bom.h" />
22
+ <change beforePath="" afterPath="$PROJECT_DIR$/ext/libbom/extconf.rb" />
23
+ <change beforePath="" afterPath="$PROJECT_DIR$/ext/libbom/libbom.c" />
24
+ <change beforePath="" afterPath="$PROJECT_DIR$/ext/libbom/libbom.h" />
25
+ <change beforePath="" afterPath="$PROJECT_DIR$/lib/libbom.rb" />
26
+ <change beforePath="" afterPath="$PROJECT_DIR$/lib/libbom/version.rb" />
27
+ <change beforePath="" afterPath="$PROJECT_DIR$/libbom.gemspec" />
28
+ <change beforePath="" afterPath="$PROJECT_DIR$/spec/fixtures/Bom" />
29
+ <change beforePath="" afterPath="$PROJECT_DIR$/spec/libbom_spec.rb" />
30
+ <change beforePath="" afterPath="$PROJECT_DIR$/spec/spec_helper.rb" />
31
+ </list>
32
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
33
+ <option name="TRACKING_ENABLED" value="true" />
34
+ <option name="SHOW_DIALOG" value="false" />
35
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
36
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
37
+ <option name="LAST_RESOLUTION" value="IGNORE" />
38
+ </component>
39
+ <component name="FileEditorManager">
40
+ <leaf>
41
+ <file leaf-file-name="extconf.rb" pinned="false" current-in-tab="false">
42
+ <entry file="file://$PROJECT_DIR$/ext/libbom/extconf.rb">
43
+ <provider selected="true" editor-type-id="text-editor">
44
+ <state relative-caret-position="23">
45
+ <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
46
+ <folding />
47
+ </state>
48
+ </provider>
49
+ </entry>
50
+ </file>
51
+ <file leaf-file-name="bom.h" pinned="false" current-in-tab="false">
52
+ <entry file="file://$PROJECT_DIR$/ext/libbom/bom.h">
53
+ <provider selected="true" editor-type-id="text-editor">
54
+ <state relative-caret-position="3519">
55
+ <caret line="153" column="6" lean-forward="false" selection-start-line="153" selection-start-column="6" selection-end-line="153" selection-end-column="6" />
56
+ <folding />
57
+ </state>
58
+ </provider>
59
+ </entry>
60
+ </file>
61
+ <file leaf-file-name="README.md" pinned="false" current-in-tab="false">
62
+ <entry file="file://$PROJECT_DIR$/README.md">
63
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
64
+ <state split_layout="SPLIT">
65
+ <first_editor relative-caret-position="0">
66
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
67
+ <folding />
68
+ </first_editor>
69
+ <second_editor />
70
+ </state>
71
+ </provider>
72
+ </entry>
73
+ </file>
74
+ <file leaf-file-name="libbom.h" pinned="false" current-in-tab="false">
75
+ <entry file="file://$PROJECT_DIR$/ext/libbom/libbom.h">
76
+ <provider selected="true" editor-type-id="text-editor">
77
+ <state relative-caret-position="161">
78
+ <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
79
+ <folding />
80
+ </state>
81
+ </provider>
82
+ </entry>
83
+ </file>
84
+ <file leaf-file-name="libbom.c" pinned="false" current-in-tab="false">
85
+ <entry file="file://$PROJECT_DIR$/ext/libbom/libbom.c">
86
+ <provider selected="true" editor-type-id="text-editor">
87
+ <state relative-caret-position="230">
88
+ <caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
89
+ <folding />
90
+ </state>
91
+ </provider>
92
+ </entry>
93
+ </file>
94
+ <file leaf-file-name="libbom.gemspec" pinned="false" current-in-tab="true">
95
+ <entry file="file://$PROJECT_DIR$/libbom.gemspec">
96
+ <provider selected="true" editor-type-id="text-editor">
97
+ <state relative-caret-position="591">
98
+ <caret line="36" column="50" lean-forward="false" selection-start-line="36" selection-start-column="50" selection-end-line="36" selection-end-column="50" />
99
+ <folding />
100
+ </state>
101
+ </provider>
102
+ </entry>
103
+ </file>
104
+ </leaf>
105
+ </component>
106
+ <component name="Git.Settings">
107
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
108
+ </component>
109
+ <component name="IdeDocumentHistory">
110
+ <option name="CHANGED_PATHS">
111
+ <list>
112
+ <option value="$PROJECT_DIR$/ext/libbom/libbom.h" />
113
+ <option value="$PROJECT_DIR$/ext/libbom/extconf.rb" />
114
+ <option value="$PROJECT_DIR$/ext/libbom/bom.h" />
115
+ <option value="$PROJECT_DIR$/ext/libbom/libbom.c" />
116
+ <option value="$PROJECT_DIR$/libbom.gemspec" />
117
+ </list>
118
+ </option>
119
+ </component>
120
+ <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
121
+ <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
122
+ <component name="JsGulpfileManager">
123
+ <detection-done>true</detection-done>
124
+ <sorting>DEFINITION_ORDER</sorting>
125
+ </component>
126
+ <component name="ProjectFrameBounds" extendedState="6">
127
+ <option name="y" value="23" />
128
+ <option name="width" value="2560" />
129
+ <option name="height" value="1365" />
130
+ </component>
131
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
132
+ <component name="ProjectView">
133
+ <navigator currentView="ProjectPane" proportions="" version="1">
134
+ <flattenPackages />
135
+ <showMembers />
136
+ <showModules />
137
+ <showLibraryContents />
138
+ <hideEmptyPackages />
139
+ <abbreviatePackageNames />
140
+ <autoscrollToSource />
141
+ <autoscrollFromSource />
142
+ <sortByType />
143
+ <manualOrder />
144
+ <foldersAlwaysOnTop value="true" />
145
+ </navigator>
146
+ <panes>
147
+ <pane id="Scope" />
148
+ <pane id="Scratches" />
149
+ <pane id="ProjectPane">
150
+ <subPane>
151
+ <expand>
152
+ <path>
153
+ <item name="libbom" type="b2602c69:ProjectViewProjectNode" />
154
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
155
+ </path>
156
+ <path>
157
+ <item name="libbom" type="b2602c69:ProjectViewProjectNode" />
158
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
159
+ <item name="ext" type="462c0819:PsiDirectoryNode" />
160
+ </path>
161
+ <path>
162
+ <item name="libbom" type="b2602c69:ProjectViewProjectNode" />
163
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
164
+ <item name="ext" type="462c0819:PsiDirectoryNode" />
165
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
166
+ </path>
167
+ <path>
168
+ <item name="libbom" type="b2602c69:ProjectViewProjectNode" />
169
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
170
+ <item name="spec" type="462c0819:PsiDirectoryNode" />
171
+ </path>
172
+ <path>
173
+ <item name="libbom" type="b2602c69:ProjectViewProjectNode" />
174
+ <item name="libbom" type="462c0819:PsiDirectoryNode" />
175
+ <item name="spec" type="462c0819:PsiDirectoryNode" />
176
+ <item name="fixtures" type="462c0819:PsiDirectoryNode" />
177
+ </path>
178
+ </expand>
179
+ <select />
180
+ </subPane>
181
+ </pane>
182
+ </panes>
183
+ </component>
184
+ <component name="PropertiesComponent">
185
+ <property name="WebServerToolWindowFactoryState" value="false" />
186
+ </component>
187
+ <component name="RecentsManager">
188
+ <key name="CopyFile.RECENT_KEYS">
189
+ <recent name="$PROJECT_DIR$/spec/fixtures" />
190
+ </key>
191
+ </component>
192
+ <component name="RunDashboard">
193
+ <option name="ruleStates">
194
+ <list>
195
+ <RuleState>
196
+ <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
197
+ </RuleState>
198
+ <RuleState>
199
+ <option name="name" value="StatusDashboardGroupingRule" />
200
+ </RuleState>
201
+ </list>
202
+ </option>
203
+ </component>
204
+ <component name="ShelveChangesManager" show_recycled="false">
205
+ <option name="remove_strategy" value="false" />
206
+ </component>
207
+ <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" />
208
+ <component name="SvnConfiguration">
209
+ <configuration />
210
+ </component>
211
+ <component name="TaskManager">
212
+ <task active="true" id="Default" summary="Default task">
213
+ <changelist id="f1efd1cf-9164-470a-868a-6f3889ac769a" name="Default" comment="" />
214
+ <created>1515607508661</created>
215
+ <option name="number" value="Default" />
216
+ <option name="presentableId" value="Default" />
217
+ <updated>1515607508661</updated>
218
+ <workItem from="1515607509856" duration="715000" />
219
+ </task>
220
+ <servers />
221
+ </component>
222
+ <component name="TimeTrackingManager">
223
+ <option name="totallyTimeSpent" value="715000" />
224
+ </component>
225
+ <component name="ToolWindowManager">
226
+ <frame x="0" y="23" width="2560" height="1365" extended-state="6" />
227
+ <editor active="true" />
228
+ <layout>
229
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24980143" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
230
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
231
+ <window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
232
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
233
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
234
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33014354" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
235
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
236
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
237
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
238
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
239
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
240
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
241
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
242
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
243
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
244
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
245
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
246
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
247
+ </layout>
248
+ </component>
249
+ <component name="TypeScriptGeneratedFilesManager">
250
+ <option name="version" value="1" />
251
+ </component>
252
+ <component name="VcsContentAnnotationSettings">
253
+ <option name="myLimit" value="2678400000" />
254
+ </component>
255
+ <component name="XDebuggerManager">
256
+ <breakpoint-manager />
257
+ <watches-manager />
258
+ </component>
259
+ <component name="editorHistoryManager">
260
+ <entry file="file://$PROJECT_DIR$/README.md">
261
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
262
+ <state split_layout="SPLIT">
263
+ <first_editor relative-caret-position="0">
264
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
265
+ <folding />
266
+ </first_editor>
267
+ <second_editor />
268
+ </state>
269
+ </provider>
270
+ </entry>
271
+ <entry file="file://$PROJECT_DIR$/ext/libbom/extconf.rb">
272
+ <provider selected="true" editor-type-id="text-editor">
273
+ <state relative-caret-position="23">
274
+ <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
275
+ <folding />
276
+ </state>
277
+ </provider>
278
+ </entry>
279
+ <entry file="file://$PROJECT_DIR$/ext/libbom/bom.h">
280
+ <provider selected="true" editor-type-id="text-editor">
281
+ <state relative-caret-position="3519">
282
+ <caret line="153" column="6" lean-forward="false" selection-start-line="153" selection-start-column="6" selection-end-line="153" selection-end-column="6" />
283
+ <folding />
284
+ </state>
285
+ </provider>
286
+ </entry>
287
+ <entry file="file://$PROJECT_DIR$/ext/libbom/libbom.h">
288
+ <provider selected="true" editor-type-id="text-editor">
289
+ <state relative-caret-position="161">
290
+ <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
291
+ <folding />
292
+ </state>
293
+ </provider>
294
+ </entry>
295
+ <entry file="file://$PROJECT_DIR$/ext/libbom/libbom.c">
296
+ <provider selected="true" editor-type-id="text-editor">
297
+ <state relative-caret-position="230">
298
+ <caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
299
+ <folding />
300
+ </state>
301
+ </provider>
302
+ </entry>
303
+ <entry file="file://$PROJECT_DIR$/libbom.gemspec">
304
+ <provider selected="true" editor-type-id="text-editor">
305
+ <state relative-caret-position="591">
306
+ <caret line="36" column="50" lean-forward="false" selection-start-line="36" selection-start-column="50" selection-end-line="36" selection-end-column="50" />
307
+ <folding />
308
+ </state>
309
+ </provider>
310
+ </entry>
311
+ </component>
312
+ </project>
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.5.0
5
+ before_install: gem install bundler -v 1.16.1
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at rickmark@dropbox.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in libbom.gemspec
6
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Rick Mark
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,43 @@
1
+ # Libbom
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/libbom`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'libbom'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install libbom
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/libbom. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
+
37
+ ## License
38
+
39
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
40
+
41
+ ## Code of Conduct
42
+
43
+ Everyone interacting in the Libbom project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/libbom/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1,14 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ require "rake/extensiontask"
7
+
8
+ task :build => :compile
9
+
10
+ Rake::ExtensionTask.new("libbom") do |ext|
11
+ ext.lib_dir = "lib/libbom"
12
+ end
13
+
14
+ task :default => [:clobber, :compile, :spec]
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "libbom"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,154 @@
1
+ /*
2
+ bom.h - structure of a bom file
3
+
4
+ Copyright (C) 2013 Fabian Renn - fabian.renn (at) gmail.com
5
+
6
+ This program is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2, or (at your option)
9
+ any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
19
+
20
+ Initial work done by Joseph Coffland. Further contributions by Julian Devlin.
21
+ Numerous further improvements by Baron Roberts.
22
+ */
23
+ #pragma once
24
+ #include <stdint.h>
25
+
26
+ #if defined(WINDOWS)
27
+ #pragma pack(push,1)
28
+ #endif
29
+
30
+ struct BOMHeader {
31
+ char magic[8]; // Always "BOMStore"
32
+ uint32_t version; // Always 1
33
+ uint32_t numberOfBlocks; // Number of non-null entries in BOMBlockTable
34
+ uint32_t indexOffset; // Offset to index table
35
+ uint32_t indexLength; // Length of index table, indexOffset + indexLength = file_length
36
+ uint32_t varsOffset;
37
+ uint32_t varsLength;
38
+ } __attribute__((packed));
39
+
40
+
41
+ struct BOMPointer {
42
+ uint32_t address;
43
+ uint32_t length;
44
+ } __attribute__((packed));
45
+
46
+
47
+ struct BOMBlockTable {
48
+ uint32_t numberOfBlockTablePointers; // Not all of them will be occupied. See header for number of non-null blocks
49
+ BOMPointer blockPointers[]; // First entry must always be a null entry
50
+ } __attribute__((packed)); // Immediately after this comes the free list
51
+
52
+ struct BOMFreeList {
53
+ uint32_t numberOfFreeListPointers;
54
+ BOMPointer freelistPointers[]; // mkbom adds two empty freelist pointers at the end and includes this in header->indexLength
55
+ } __attribute__((packed));
56
+
57
+ struct BOMInfoEntry {
58
+ uint32_t unknown0; // Always zero (?)
59
+ uint32_t unknown1; // Always zero (?)
60
+ uint32_t unknown2; // Some obscure value, zero for empty boms (?)
61
+ uint32_t unknown3; // Always zero (?)
62
+ } __attribute__((packed));
63
+
64
+ struct BOMInfo {
65
+ uint32_t version; // Version always 1
66
+ uint32_t numberOfPaths; // Number of leaves + 1 (?)
67
+ uint32_t numberOfInfoEntries; // Number of elements in the entries array
68
+ BOMInfoEntry entries[];
69
+ } __attribute__((packed));
70
+
71
+ struct BOMTree {
72
+ char tree[4]; // Always "tree"
73
+ uint32_t version; // Always 1
74
+ uint32_t child; // Index for BOMPaths
75
+ uint32_t blockSize; // Always 4096
76
+ uint32_t pathCount; // Total number of paths in all leaves combined
77
+ uint8_t unknown3;
78
+ } __attribute__((packed));
79
+
80
+ struct BOMVIndex {
81
+ uint32_t unknown0; // Always 1
82
+ uint32_t indexToVTree;
83
+ uint32_t unknown2; // Always 0
84
+ uint8_t unknown3; // Always 0
85
+ } __attribute__((packed));
86
+
87
+ struct BOMVar {
88
+ uint32_t index;
89
+ uint8_t length;
90
+ char name[];
91
+ } __attribute__((packed));
92
+
93
+
94
+ struct BOMVars {
95
+ uint32_t count;
96
+ BOMVar first[];
97
+ } __attribute__((packed));
98
+
99
+
100
+ struct BOMPathIndices {
101
+ uint32_t index0; /* for leaf: points to BOMPathInfo1, for branch points to BOMPaths */
102
+ uint32_t index1; /* always points to BOMFile */
103
+ } __attribute__((packed));
104
+
105
+
106
+ struct BOMPaths {
107
+ uint16_t isLeaf;
108
+ uint16_t count;
109
+ uint32_t forward;
110
+ uint32_t backward;
111
+ BOMPathIndices indices[];
112
+ } __attribute__((packed));
113
+
114
+
115
+ enum {
116
+ TYPE_FILE = 1,
117
+ TYPE_DIR = 2,
118
+ TYPE_LINK = 3,
119
+ TYPE_DEV = 4
120
+ };
121
+
122
+ struct BOMPathInfo2 {
123
+ uint8_t type; // See type enums above
124
+ uint8_t unknown0; // = 1 (?)
125
+ uint16_t architecture; // Not sure exactly what this means
126
+ uint16_t mode;
127
+ uint32_t user;
128
+ uint32_t group;
129
+ uint32_t modtime;
130
+ uint32_t size;
131
+ uint8_t unknown1; // = 1 (?)
132
+ union {
133
+ uint32_t checksum;
134
+ uint32_t devType;
135
+ };
136
+ uint32_t linkNameLength;
137
+ char linkName[];
138
+ } __attribute__((packed));
139
+
140
+
141
+ struct BOMPathInfo1 {
142
+ uint32_t id;
143
+ uint32_t index; // Pointer to BOMPathInfo2
144
+ } __attribute__((packed));
145
+
146
+
147
+ struct BOMFile {
148
+ uint32_t parent; // Parent BOMPathInfo1->id
149
+ char name[];
150
+ } __attribute__((packed));
151
+
152
+ #if defined(WINDOWS)
153
+ #pragma pack(pop)
154
+ #endif
@@ -0,0 +1,3 @@
1
+ require "mkmf"
2
+
3
+ create_makefile("libbom/libbom")
@@ -0,0 +1,10 @@
1
+
2
+ #include "libbom.h"
3
+
4
+ VALUE rb_mLibbom;
5
+
6
+ void
7
+ Init_libbom(void)
8
+ {
9
+ rb_mLibbom = rb_define_module("LibBOM");
10
+ }
@@ -0,0 +1,7 @@
1
+ #ifndef LIBBOM_H
2
+ #define LIBBOM_H 1
3
+
4
+ #include "ruby.h"
5
+ #include "bom.h"
6
+
7
+ #endif /* LIBBOM_H */
@@ -0,0 +1,6 @@
1
+ require "libbom/version"
2
+ require "libbom/libbom"
3
+
4
+ module Libbom
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,3 @@
1
+ module Libbom
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,38 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "libbom/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "libbom"
8
+ spec.version = Libbom::VERSION
9
+ spec.authors = ["Rick Mark"]
10
+ spec.email = ["rickmark@dropbox.com"]
11
+
12
+ spec.summary = %q{Read and write NeXT/Apple BOM (Bill of Materials)}
13
+ spec.description = %q{Native library (based on hogliux/bomutils) to access Apple BOM (Bill of Materials) files.}
14
+ spec.homepage = "https://github.com/dropbox/libbom"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against " \
23
+ "public gem pushes."
24
+ end
25
+
26
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
+ f.match(%r{^(test|spec|features)/})
28
+ end
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
32
+ spec.extensions = ["ext/libbom/extconf.rb"]
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.16"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rake-compiler", '~> 1.0'
37
+ spec.add_development_dependency "rspec", "~> 3.0"
38
+ end
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: libbom
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rick Mark
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-01-10 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.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake-compiler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ description: Native library (based on hogliux/bomutils) to access Apple BOM (Bill
70
+ of Materials) files.
71
+ email:
72
+ - rickmark@dropbox.com
73
+ executables: []
74
+ extensions:
75
+ - ext/libbom/extconf.rb
76
+ extra_rdoc_files: []
77
+ files:
78
+ - ".gitignore"
79
+ - ".idea/inspectionProfiles/Project_Default.xml"
80
+ - ".idea/libbom.iml"
81
+ - ".idea/misc.xml"
82
+ - ".idea/modules.xml"
83
+ - ".idea/vcs.xml"
84
+ - ".idea/workspace.xml"
85
+ - ".rspec"
86
+ - ".travis.yml"
87
+ - CODE_OF_CONDUCT.md
88
+ - Gemfile
89
+ - LICENSE.txt
90
+ - README.md
91
+ - Rakefile
92
+ - bin/console
93
+ - bin/setup
94
+ - ext/libbom/bom.h
95
+ - ext/libbom/extconf.rb
96
+ - ext/libbom/libbom.c
97
+ - ext/libbom/libbom.h
98
+ - lib/libbom.rb
99
+ - lib/libbom/version.rb
100
+ - libbom.gemspec
101
+ homepage: https://github.com/dropbox/libbom
102
+ licenses:
103
+ - MIT
104
+ metadata:
105
+ allowed_push_host: https://rubygems.org
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.7.4
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: Read and write NeXT/Apple BOM (Bill of Materials)
126
+ test_files: []