straightedge 0.1.0 → 0.1.1
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 +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +7 -0
- data/README.md +44 -2
- data/gemspec.yml +3 -0
- data/lib/straightedge.rb +33 -11
- data/lib/straightedge/aspects.rb +3 -0
- data/lib/straightedge/aspects/colorable.rb +8 -0
- data/lib/straightedge/aspects/figural.rb +12 -0
- data/lib/straightedge/aspects/positional.rb +10 -0
- data/lib/straightedge/colors.rb +72 -0
- data/lib/straightedge/config.rb +6 -0
- data/lib/straightedge/director.rb +39 -0
- data/lib/straightedge/extend/array.rb +2 -13
- data/lib/straightedge/figures.rb +8 -0
- data/lib/straightedge/{adapters.rb → figures/circle.rb} +0 -0
- data/lib/straightedge/figures/figure.rb +44 -0
- data/lib/straightedge/figures/grid.rb +65 -0
- data/lib/straightedge/figures/grid_cell.rb +0 -0
- data/lib/straightedge/figures/hexagon.rb +33 -0
- data/lib/straightedge/figures/label.rb +13 -0
- data/lib/straightedge/figures/line.rb +25 -0
- data/lib/straightedge/figures/mark.rb +23 -0
- data/lib/straightedge/figures/quadrilateral.rb +20 -0
- data/lib/straightedge/motor/adapter.rb +54 -0
- data/lib/straightedge/motor/engine.rb +16 -0
- data/lib/straightedge/origin.rb +3 -0
- data/lib/straightedge/presenter.rb +29 -0
- data/lib/straightedge/scene.rb +20 -0
- data/lib/straightedge/surface.rb +21 -0
- data/lib/straightedge/toolkit/compass.rb +19 -0
- data/lib/straightedge/toolkit/rose.rb +60 -0
- data/lib/straightedge/toolkit/ruler.rb +23 -0
- data/lib/straightedge/tools.rb +3 -0
- data/lib/straightedge/version.rb +1 -1
- data/spec/spec_helper.rb +4 -1
- data/spec/straightedge/adapter_spec.rb +14 -0
- data/spec/straightedge/director_spec.rb +10 -0
- data/spec/straightedge/extend/array_spec.rb +1 -6
- data/spec/straightedge/{figure_spec.rb → figures/figure_spec.rb} +0 -5
- data/spec/straightedge/figures/grid_spec.rb +31 -0
- data/spec/straightedge/figures/hexagon_spec.rb +7 -0
- data/spec/straightedge/motor/engine_spec.rb +11 -0
- data/spec/straightedge/scene_spec.rb +27 -0
- data/spec/straightedge/{compass_spec.rb → toolkit/compass_spec.rb} +0 -4
- data/spec/straightedge/{rose_spec.rb → toolkit/rose_spec.rb} +0 -5
- data/spec/straightedge/toolkit/ruler_spec.rb +14 -0
- data/spec/straightedge_spec.rb +35 -0
- metadata +54 -16
- data/.rvmrc +0 -1
- data/lib/straightedge/compass.rb +0 -17
- data/lib/straightedge/figure.rb +0 -28
- data/lib/straightedge/grid.rb +0 -34
- data/lib/straightedge/line.rb +0 -21
- data/lib/straightedge/mark.rb +0 -26
- data/lib/straightedge/rose.rb +0 -44
- data/lib/straightedge/ruler.rb +0 -21
- data/spec/straightedge/grid_spec.rb +0 -33
- data/spec/straightedge/ruler_spec.rb +0 -11
    
        data/lib/straightedge/ruler.rb
    DELETED
    
    | @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            module Straightedge
         | 
| 2 | 
            -
              class Ruler
         | 
| 3 | 
            -
                def initialize(unit=1)
         | 
| 4 | 
            -
                  @unit = unit
         | 
| 5 | 
            -
                end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                class << self
         | 
| 8 | 
            -
                  def default; @default ||= new end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                  def translate(xy, dxy)
         | 
| 11 | 
            -
                    xy.zip(dxy).map { |x,y| x+y }
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                  def distance(alpha,beta)
         | 
| 15 | 
            -
            	Line.new(alpha,beta).length
         | 
| 16 | 
            -
            	#dx, dy = alpha.x - beta.x, alpha.y - beta.y
         | 
| 17 | 
            -
            	#Math.sqrt(dx*dx + dy*dy)
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         | 
| @@ -1,33 +0,0 @@ | |
| 1 | 
            -
            require 'spec_helper'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            require 'straightedge/extend/array'
         | 
| 4 | 
            -
            require 'straightedge/mark'
         | 
| 5 | 
            -
            require 'straightedge/rose'
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            require 'straightedge/compass'
         | 
| 8 | 
            -
            require 'straightedge/figure'
         | 
| 9 | 
            -
            require 'straightedge/grid'
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            describe Straightedge::Grid do
         | 
| 12 | 
            -
              it "should have width and height" do
         | 
| 13 | 
            -
                expect(subject.width).to  eql(Straightedge::Grid::DEFAULT_SIZE)
         | 
| 14 | 
            -
                expect(subject.height).to eql(Straightedge::Grid::DEFAULT_SIZE)
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
              it 'should express this geometry as an array called dimensions' do 
         | 
| 18 | 
            -
                expect(subject.lines).to eql([subject.width, subject.height])
         | 
| 19 | 
            -
              end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
              describe ".elements" do 
         | 
| 22 | 
            -
                subject { Straightedge::Grid.new([2,2]) }
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                it 'should iterate over the grid' do
         | 
| 25 | 
            -
                  expect(subject.marks).to eql([[0, 0], [0, 1], [1, 0], [1, 1]])
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
              describe "#first" do
         | 
| 30 | 
            -
                subject { Straightedge::Grid.new }
         | 
| 31 | 
            -
                its(:first) { should eql([0,0]) }
         | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
            end
         | 
| @@ -1,11 +0,0 @@ | |
| 1 | 
            -
            require 'spec_helper'
         | 
| 2 | 
            -
            require 'straightedge/extend/array'
         | 
| 3 | 
            -
            require 'straightedge/ruler'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            describe Straightedge::Ruler do
         | 
| 6 | 
            -
              let(:a) { [0,3] }
         | 
| 7 | 
            -
              let(:b) { [4,0] }
         | 
| 8 | 
            -
              it 'should measure distance' do
         | 
| 9 | 
            -
                expect(Straightedge::Ruler.distance(a,b)).to eql(5.0)
         | 
| 10 | 
            -
              end
         | 
| 11 | 
            -
            end
         |