scad4r 0.2.1 → 0.3.0
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.
- data/VERSION +1 -1
 - data/features/result_parser.feature +12 -0
 - data/features/step_definitions/result_parser_steps.rb +3 -0
 - data/features/step_definitions/runner_steps.rb +4 -0
 - data/features/support/env.rb +1 -0
 - data/lib/scad4r/result_parser.rb +2 -0
 - data/scad4r.gemspec +3 -1
 - data/spec/lib/scad4r/result_parser_spec.rb +15 -6
 - metadata +4 -2
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.3.0
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: I want to know what openscad's done with my scad file
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              Scenario: Errors in geometry
         
     | 
| 
      
 4 
     | 
    
         
            +
                Given I have a Scad4r::Runner with a Scad4r::ResultParser
         
     | 
| 
      
 5 
     | 
    
         
            +
                And a file named "not_two_manifold.scad" with:
         
     | 
| 
      
 6 
     | 
    
         
            +
                """
         
     | 
| 
      
 7 
     | 
    
         
            +
                cube([20, 20, 20]);
         
     | 
| 
      
 8 
     | 
    
         
            +
                translate([-20, -20, 0]) cube([20, 20, 20]);
         
     | 
| 
      
 9 
     | 
    
         
            +
                cube([50, 50, 5], center = true);
         
     | 
| 
      
 10 
     | 
    
         
            +
                """
         
     | 
| 
      
 11 
     | 
    
         
            +
                When I run "not_two_manifold.scad" through the Scad4r::Runner
         
     | 
| 
      
 12 
     | 
    
         
            +
                Then the results should be an error
         
     | 
| 
         @@ -2,6 +2,10 @@ Given /^I have a Scad4r::Runner$/ do 
     | 
|
| 
       2 
2 
     | 
    
         
             
              self.runner= Scad4r::Runner.new
         
     | 
| 
       3 
3 
     | 
    
         
             
            end
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            Given /^I have a Scad4r::Runner with a Scad4r::ResultParser$/ do
         
     | 
| 
      
 6 
     | 
    
         
            +
              self.runner= Scad4r::Runner.new(parser: Scad4r::ResultParser.new)
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       5 
9 
     | 
    
         
             
            When /^I run "(.*?)" through the Scad4r::Runner$/ do |path|
         
     | 
| 
       6 
10 
     | 
    
         
             
              in_current_dir do
         
     | 
| 
       7 
11 
     | 
    
         
             
                self.last_results= runner.run(path)
         
     | 
    
        data/features/support/env.rb
    CHANGED
    
    
    
        data/lib/scad4r/result_parser.rb
    CHANGED
    
    
    
        data/scad4r.gemspec
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = "scad4r"
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.3.0"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Caleb Buxton"]
         
     | 
| 
         @@ -26,7 +26,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       26 
26 
     | 
    
         
             
                "README.rdoc",
         
     | 
| 
       27 
27 
     | 
    
         
             
                "Rakefile",
         
     | 
| 
       28 
28 
     | 
    
         
             
                "VERSION",
         
     | 
| 
      
 29 
     | 
    
         
            +
                "features/result_parser.feature",
         
     | 
| 
       29 
30 
     | 
    
         
             
                "features/runner.feature",
         
     | 
| 
      
 31 
     | 
    
         
            +
                "features/step_definitions/result_parser_steps.rb",
         
     | 
| 
       30 
32 
     | 
    
         
             
                "features/step_definitions/runner_steps.rb",
         
     | 
| 
       31 
33 
     | 
    
         
             
                "features/support/env.rb",
         
     | 
| 
       32 
34 
     | 
    
         
             
                "lib/scad4r.rb",
         
     | 
| 
         @@ -9,12 +9,21 @@ module Scad4r 
     | 
|
| 
       9 
9 
     | 
    
         
             
                subject { OpenStruct.new(described_class.new.parse(scad_result)) }
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                context "with errors" do
         
     | 
| 
       12 
     | 
    
         
            -
                   
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
                  context "in syntax" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                    let(:scad_result) { <<-END
         
     | 
| 
      
 14 
     | 
    
         
            +
              Parser error in line 47: syntax error
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                END
         
     | 
| 
      
 17 
     | 
    
         
            +
                }
         
     | 
| 
      
 18 
     | 
    
         
            +
                    its(:error) { should eql("syntax error line 47") }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  context "in geometry" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    let(:scad_result) {
         
     | 
| 
      
 23 
     | 
    
         
            +
                      "Object isn't a valid 2-manifold! Mobify your design." }
         
     | 
| 
       14 
24 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                  its(:error) { should eql("syntax error line 47") }
         
     | 
| 
      
 25 
     | 
    
         
            +
                    its(:error) { should eql("Object isn't a valid 2-manifold! Mobify your design.")}
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
       18 
27 
     | 
    
         
             
                end
         
     | 
| 
       19 
28 
     | 
    
         | 
| 
       20 
29 
     | 
    
         
             
                context "with warnings" do
         
     | 
| 
         @@ -105,7 +114,7 @@ END 
     | 
|
| 
       105 
114 
     | 
    
         
             
                context "with timings" do
         
     | 
| 
       106 
115 
     | 
    
         | 
| 
       107 
116 
     | 
    
         
             
                  let(:scad_result) { <<-END
         
     | 
| 
       108 
     | 
    
         
            -
            CGAL Cache insert: import(file=\"../Huxley/Print-Huxley/Indi (1728992 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,20],[0,1,0,0],[0,0,1, (1728992 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,20],[0,1,0,0] (1728992 bytes)\nCGAL Cache insert: group(){group(){multmatrix([[1,0,0,20],[ (1728992 bytes)\nCGAL Cache insert: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,7.5],[0,1,0,2.9],[0,0 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,32.5],[0,1,0,2.9],[0, (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,32.5],[0,1,0,25.9],[0 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,7.5],[0,1,0,25.9],[0, (62712 bytes)\nCGAL Cache insert: cube(size=[3,3,5],center=false); (10872 bytes)\nCGAL Cache insert: multmatrix([[0.707107,-0.707107,0,0],[0. (10872 bytes)\nCGAL Cache hit: multmatrix([[0.707107,-0.707107,0,0],[0. (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,-1.06066],[0,1,0,-2.1 (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,41.0607],[0,1,0,-2.12 (10872 bytes)\nCGAL Cache insert: cube(size=[5.83095,5.83095,5],center=fal (10872 bytes)\nCGAL Cache insert: multmatrix([[0.857493,-0.514496,0,0],[0. (10872 bytes)\nCGAL Cache hit: cube(size=[5.83095,5.83095,5],center=fal (10872 bytes)\nCGAL Cache insert: multmatrix([[0.514496,-0.857493,0,0],[0. (10872 bytes)\nCGAL Cache insert: cube(size=[40,28.8,5],center=false); (10872 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,7.5],[0,1,0,2 (250560 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,-1.06066],[0, (21648 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,0],[0,1,0,25.8],[0,0, (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,40],[0,1,0,25.8],[0,0 (10872 bytes)\nCGAL Cache insert: difference(){cube(size=[40,28.8,5],cente (273048 bytes)\nCGAL Cache hit: group(){group(){multmatrix([[1,0,0,20],[ (1728992 bytes)\nCGAL Cache hit: difference(){cube(size=[40,28.8,5],cente (273048 bytes)\nCGAL Cache insert: group(){difference(){cube(size=[40,28.8, (273048 bytes)\nCGAL Cache insert: difference(){group(){group(){multmatrix( (1190904 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,-60],[0,1,0,0],[0,0,1 (1728992 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,60],[0,1,0,0],[0,0,1, (1190904 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,-60],[0,1,0,0 (3192752 bytes)\ 
     | 
| 
      
 117 
     | 
    
         
            +
            CGAL Cache insert: import(file=\"../Huxley/Print-Huxley/Indi (1728992 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,20],[0,1,0,0],[0,0,1, (1728992 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,20],[0,1,0,0] (1728992 bytes)\nCGAL Cache insert: group(){group(){multmatrix([[1,0,0,20],[ (1728992 bytes)\nCGAL Cache insert: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache hit: cylinder($fn=24,$fa=12,$fs=2,h=5,r1=1.65 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,7.5],[0,1,0,2.9],[0,0 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,32.5],[0,1,0,2.9],[0, (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,32.5],[0,1,0,25.9],[0 (62712 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,7.5],[0,1,0,25.9],[0, (62712 bytes)\nCGAL Cache insert: cube(size=[3,3,5],center=false); (10872 bytes)\nCGAL Cache insert: multmatrix([[0.707107,-0.707107,0,0],[0. (10872 bytes)\nCGAL Cache hit: multmatrix([[0.707107,-0.707107,0,0],[0. (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,-1.06066],[0,1,0,-2.1 (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,41.0607],[0,1,0,-2.12 (10872 bytes)\nCGAL Cache insert: cube(size=[5.83095,5.83095,5],center=fal (10872 bytes)\nCGAL Cache insert: multmatrix([[0.857493,-0.514496,0,0],[0. (10872 bytes)\nCGAL Cache hit: cube(size=[5.83095,5.83095,5],center=fal (10872 bytes)\nCGAL Cache insert: multmatrix([[0.514496,-0.857493,0,0],[0. (10872 bytes)\nCGAL Cache insert: cube(size=[40,28.8,5],center=false); (10872 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,7.5],[0,1,0,2 (250560 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,-1.06066],[0, (21648 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,0],[0,1,0,25.8],[0,0, (10872 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,40],[0,1,0,25.8],[0,0 (10872 bytes)\nCGAL Cache insert: difference(){cube(size=[40,28.8,5],cente (273048 bytes)\nCGAL Cache hit: group(){group(){multmatrix([[1,0,0,20],[ (1728992 bytes)\nCGAL Cache hit: difference(){cube(size=[40,28.8,5],cente (273048 bytes)\nCGAL Cache insert: group(){difference(){cube(size=[40,28.8, (273048 bytes)\nCGAL Cache insert: difference(){group(){group(){multmatrix( (1190904 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,-60],[0,1,0,0],[0,0,1 (1728992 bytes)\nCGAL Cache insert: multmatrix([[1,0,0,60],[0,1,0,0],[0,0,1, (1190904 bytes)\nCGAL Cache insert: group(){multmatrix([[1,0,0,-60],[0,1,0,0 (3192752 bytes)\n       52.44 real        48.14 user         0.34 sys
         
     | 
| 
       109 
118 
     | 
    
         
             
            END
         
     | 
| 
       110 
119 
     | 
    
         
             
                  }
         
     | 
| 
       111 
120 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            name: scad4r
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
4 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       5 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 5 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
       8 
8 
     | 
    
         
             
            - Caleb Buxton
         
     | 
| 
         @@ -236,7 +236,9 @@ files: 
     | 
|
| 
       236 
236 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       237 
237 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       238 
238 
     | 
    
         
             
            - VERSION
         
     | 
| 
      
 239 
     | 
    
         
            +
            - features/result_parser.feature
         
     | 
| 
       239 
240 
     | 
    
         
             
            - features/runner.feature
         
     | 
| 
      
 241 
     | 
    
         
            +
            - features/step_definitions/result_parser_steps.rb
         
     | 
| 
       240 
242 
     | 
    
         
             
            - features/step_definitions/runner_steps.rb
         
     | 
| 
       241 
243 
     | 
    
         
             
            - features/support/env.rb
         
     | 
| 
       242 
244 
     | 
    
         
             
            - lib/scad4r.rb
         
     | 
| 
         @@ -268,7 +270,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       268 
270 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       269 
271 
     | 
    
         
             
                  segments:
         
     | 
| 
       270 
272 
     | 
    
         
             
                  - 0
         
     | 
| 
       271 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 273 
     | 
    
         
            +
                  hash: 134172931124227608
         
     | 
| 
       272 
274 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       273 
275 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       274 
276 
     | 
    
         
             
              none: false
         
     |