ruby3mf 0.1.6 → 0.1.7

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: 8735913c55551b73173f7f8d17b8ec85031c4cb4
4
- data.tar.gz: f0d565d1debb5049533f1bcd04c6942798a7e458
3
+ metadata.gz: 0005d2dc2997eb363b5ddf6843fa2e67f51b0e3e
4
+ data.tar.gz: c0a75099c98df0e7dc9ed4f73b5c67d20ee333ba
5
5
  SHA512:
6
- metadata.gz: bd4d6bfa3f8308522b458318fb42eb648d1936f4748bacc983f4207328a15d762f21afc500b1873eef55993cac98e9dca44afdcd2061eb3e3ecf77053e6bfd82
7
- data.tar.gz: 08a66aac1559d688a642801fb8add46beedc3743304f48472169f21739f81f3cc81057ea6e77999f8db0767485c574cbe959db1a9556e699e9a2d8fe94b5bc9d
6
+ metadata.gz: 4aa121c5851a4b579aa261eda32712d0f3532b4529d95108b33ce4ff49e93fc43a1b33a9a0305d7b9912eaf1d6059cd7648abed1655cb40f78fc5b69ade391ae
7
+ data.tar.gz: eb813c2f3f33a70bff2a38979ce0a46babc95f5365ee0dc2c55560eb17bed2d9d66e31bcc228278882d799de5f9b255edec8e8cbaa9b7dd65f2150763520fe00
@@ -1,47 +1,23 @@
1
1
  class Model3mf
2
2
 
3
- def self.extract_paths(value)
4
- if value.is_a? Array
5
- value.map { |v| extract_paths(v) }
6
- else
7
- if value.is_a? Hash
8
- value[:path]
9
- else
10
- nil
11
- end
12
- end
13
- end
14
-
15
-
16
3
  def self.parse(document, zip_entry, relationships)
17
- model_hash = {}
4
+ model_doc = nil
5
+
18
6
  Log3mf.context "parsing model" do |l|
19
7
  begin
20
- # parse model
21
- doc = Nokogiri::XML(zip_entry.get_input_stream) do |config|
8
+ model_doc = Nokogiri::XML(zip_entry.get_input_stream) do |config|
22
9
  config.strict.nonet.noblanks
23
10
  end
24
-
25
11
  l.info "We Found a Model, and it's XML!"
26
- model_hash = Hash.from_xml(doc)
27
12
  rescue Nokogiri::XML::SyntaxError => e
28
13
  l.fatal_error "Model file invalid XML. Exception #{e}"
29
14
  end
30
15
 
31
16
  l.context "verifying 3D payload required resources" do |l|
32
- # find all resources (that are not the object) in model_hash
33
-
34
- required_resources = []
35
-
36
- model_hash[:model][:resources].each do |key, value|
37
- required_resources << extract_paths(value)
38
- end
39
-
40
- required_resources.flatten!
41
- required_resources.compact!
17
+ # results = model_doc.css("model resources m:texture2d")
18
+ required_resources = model_doc.css("//model//resources//*[path]").collect { |n| n["path"] }
42
19
 
43
20
  # for each, ensure that they exist in @relationships
44
-
45
21
  relationship_resources = relationships.map { |relationship| relationship[:target] }
46
22
 
47
23
  missing_resources = (required_resources - relationship_resources)
@@ -55,6 +31,6 @@ class Model3mf
55
31
 
56
32
  end
57
33
  end
58
- model_hash
34
+ model_doc
59
35
  end
60
36
  end
@@ -1,3 +1,3 @@
1
1
  module Ruby3mf
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby3mf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Whitmarsh, Jeff Porter, and William Hertling
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-24 00:00:00.000000000 Z
11
+ date: 2016-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler