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