lays 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa165b0dfc65a1195a7219030c7b72f2ff19af7e
4
- data.tar.gz: ddf9af5ca25cc4594bd9077ee55c90b6a4011fd3
3
+ metadata.gz: e72ed5d8477765417dde167c2dbeac3b89f62a70
4
+ data.tar.gz: 7d074dff6b535e3a80288e1de7231e0591a13e48
5
5
  SHA512:
6
- metadata.gz: b1f1d692c83e10f5366de6aa0ce611b3d4b3d5b2be2c26155e1f672935524c8f42563ccc971ed48bb1fba36955a90a183d1d2f9e5d2e2b17c7198eeeac8174ad
7
- data.tar.gz: c36bb27d8de37a8f885f170eb831f2d0d8bb837ab054fd9e2f200bc926af62cfe3de2a1ed3fddb13d22a01c07b51495721b0d29b4a56966dd245b17c62575d8b
6
+ metadata.gz: 9ce367aab90f87597976dc85c4ef55650a3ed5784970a0dcbae6c22a025e0fcd4cd46b9fbac7487147da1e465bf4136c4efec406d256f4663b31790e67933548
7
+ data.tar.gz: 36cd5ab70131d080ca515cc8f7cb78d706cbdac3a99710dc4eef1a8bcad4757d26cf60f8424471f460cf522c4c5e845671186b41d97697ee232fc087cf540d07
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ rvm:
2
+ - 1.9.2
3
+ - 1.9.3
4
+ - 2.1.0
5
+ - 2.1.1
6
+ - 2.1.2
7
+ - ruby-head
8
+ - jruby-19mode
data/lib/lays/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lays
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/lays.rb CHANGED
@@ -1,16 +1,23 @@
1
1
  require "lays/version"
2
+ require "ostruct"
2
3
 
3
4
  module Lays
4
5
 
5
6
  def []=(layer, content)
6
- layers[layer] = content
7
+ set_layer(layer)
8
+ layers[layer].content = content
7
9
  @result = nil
8
10
  end
9
11
 
10
12
  def [](layer)
13
+ set_layer(layer)
11
14
  layers[layer]
12
15
  end
13
16
 
17
+ def set_layer(id)
18
+ layers[id] ||= OpenStruct.new
19
+ end
20
+
14
21
  def layers
15
22
  @layer ||= {}
16
23
  end
@@ -21,11 +28,13 @@ module Lays
21
28
 
22
29
  def render
23
30
  result = []
24
- layers.sort {|a, b| a[0] <=> b[0] }.each do |_, content|
31
+ layers.sort {|a, b| a[0] <=> b[0] }.each do |_, layer|
32
+ content = layer.content
25
33
  content.split("\n").each_with_index.map do |line, i|
26
34
  line.each_char.each_with_index do |c, j|
27
35
  result[i] ||= []
28
- result[i][j] = c unless c == nil || c == " "
36
+ transparent = layer.transparent || " "
37
+ result[i][j] = c unless c == nil || c == transparent
29
38
  end
30
39
  end
31
40
  end
@@ -58,27 +58,27 @@ end
58
58
 
59
59
  test "three layers, three lines" do
60
60
  frame = Frame.new
61
- frame[3] = <<THREE
61
+ frame[3] = <<-THREE
62
62
  3 3
63
63
  3
64
64
  333
65
- THREE
66
- frame[2] = <<TWO
65
+ THREE
66
+ frame[2] = <<-TWO
67
67
  22
68
68
  222 2
69
69
  222
70
- TWO
71
- frame[1] = <<ONE
70
+ TWO
71
+ frame[1] = <<-ONE
72
72
  1111111
73
73
  111111
74
74
  11111
75
- ONE
75
+ ONE
76
76
 
77
- res = <<RES.chomp
77
+ res = <<-RES.chomp
78
78
  3231111
79
79
  232121
80
80
  33321
81
- RES
81
+ RES
82
82
  assert_equal frame.to_s, res
83
83
  end
84
84
 
@@ -88,12 +88,33 @@ test "re-rendering frames" do
88
88
  frame[2] = "two"
89
89
  frame[1] = "one"
90
90
  frame.to_s
91
-
91
+
92
92
  frame[2] = "* *"
93
93
  frame.to_s
94
94
 
95
95
  frame[8] = " #"
96
96
  res = frame.to_s
97
-
97
+
98
98
  assert_equal res, "*n*#"
99
99
  end
100
+
101
+ scope do
102
+ # Transparency
103
+ test "transparent char" do
104
+ frame = Frame.new
105
+
106
+ frame[6] = "0=0 0"
107
+ frame[6].transparent = "="
108
+ frame[3] = "11111"
109
+ assert_equal frame.to_s, "010 0"
110
+ end
111
+
112
+ test "setting transparent char beforehand" do
113
+ frame = Frame.new
114
+
115
+ frame[6].transparent = "#"
116
+ frame[6] = "2 # 2"
117
+ frame[3] = "11111"
118
+ assert_equal frame.to_s, "2 1 2"
119
+ end
120
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lays
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Iachetti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2014-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - ".gitignore"
63
+ - ".travis.yml"
63
64
  - Gemfile
64
65
  - LICENSE.txt
65
66
  - README.md
@@ -67,8 +68,8 @@ files:
67
68
  - lays.gemspec
68
69
  - lib/lays.rb
69
70
  - lib/lays/version.rb
71
+ - test/lays_test.rb
70
72
  - test/test_helper.rb
71
- - test/text_layers_test.rb
72
73
  homepage: ''
73
74
  licenses:
74
75
  - MIT
@@ -94,5 +95,5 @@ signing_key:
94
95
  specification_version: 4
95
96
  summary: Layered text frames for TRecs.
96
97
  test_files:
98
+ - test/lays_test.rb
97
99
  - test/test_helper.rb
98
- - test/text_layers_test.rb