straightedge 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +7 -0
  5. data/README.md +44 -2
  6. data/gemspec.yml +3 -0
  7. data/lib/straightedge.rb +33 -11
  8. data/lib/straightedge/aspects.rb +3 -0
  9. data/lib/straightedge/aspects/colorable.rb +8 -0
  10. data/lib/straightedge/aspects/figural.rb +12 -0
  11. data/lib/straightedge/aspects/positional.rb +10 -0
  12. data/lib/straightedge/colors.rb +72 -0
  13. data/lib/straightedge/config.rb +6 -0
  14. data/lib/straightedge/director.rb +39 -0
  15. data/lib/straightedge/extend/array.rb +2 -13
  16. data/lib/straightedge/figures.rb +8 -0
  17. data/lib/straightedge/{adapters.rb → figures/circle.rb} +0 -0
  18. data/lib/straightedge/figures/figure.rb +44 -0
  19. data/lib/straightedge/figures/grid.rb +65 -0
  20. data/lib/straightedge/figures/grid_cell.rb +0 -0
  21. data/lib/straightedge/figures/hexagon.rb +33 -0
  22. data/lib/straightedge/figures/label.rb +13 -0
  23. data/lib/straightedge/figures/line.rb +25 -0
  24. data/lib/straightedge/figures/mark.rb +23 -0
  25. data/lib/straightedge/figures/quadrilateral.rb +20 -0
  26. data/lib/straightedge/motor/adapter.rb +54 -0
  27. data/lib/straightedge/motor/engine.rb +16 -0
  28. data/lib/straightedge/origin.rb +3 -0
  29. data/lib/straightedge/presenter.rb +29 -0
  30. data/lib/straightedge/scene.rb +20 -0
  31. data/lib/straightedge/surface.rb +21 -0
  32. data/lib/straightedge/toolkit/compass.rb +19 -0
  33. data/lib/straightedge/toolkit/rose.rb +60 -0
  34. data/lib/straightedge/toolkit/ruler.rb +23 -0
  35. data/lib/straightedge/tools.rb +3 -0
  36. data/lib/straightedge/version.rb +1 -1
  37. data/spec/spec_helper.rb +4 -1
  38. data/spec/straightedge/adapter_spec.rb +14 -0
  39. data/spec/straightedge/director_spec.rb +10 -0
  40. data/spec/straightedge/extend/array_spec.rb +1 -6
  41. data/spec/straightedge/{figure_spec.rb → figures/figure_spec.rb} +0 -5
  42. data/spec/straightedge/figures/grid_spec.rb +31 -0
  43. data/spec/straightedge/figures/hexagon_spec.rb +7 -0
  44. data/spec/straightedge/motor/engine_spec.rb +11 -0
  45. data/spec/straightedge/scene_spec.rb +27 -0
  46. data/spec/straightedge/{compass_spec.rb → toolkit/compass_spec.rb} +0 -4
  47. data/spec/straightedge/{rose_spec.rb → toolkit/rose_spec.rb} +0 -5
  48. data/spec/straightedge/toolkit/ruler_spec.rb +14 -0
  49. data/spec/straightedge_spec.rb +35 -0
  50. metadata +54 -16
  51. data/.rvmrc +0 -1
  52. data/lib/straightedge/compass.rb +0 -17
  53. data/lib/straightedge/figure.rb +0 -28
  54. data/lib/straightedge/grid.rb +0 -34
  55. data/lib/straightedge/line.rb +0 -21
  56. data/lib/straightedge/mark.rb +0 -26
  57. data/lib/straightedge/rose.rb +0 -44
  58. data/lib/straightedge/ruler.rb +0 -21
  59. data/spec/straightedge/grid_spec.rb +0 -33
  60. data/spec/straightedge/ruler_spec.rb +0 -11
@@ -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