ruby3mf 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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