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
|