trecs 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88364cfdda8ab857257f40c3af09f2b4da838f29
4
- data.tar.gz: 36ab9862612c33d709b4f588e5eddab3689554a9
3
+ metadata.gz: 1af4ab48e2ddf4708ce082fbf58661d2be18315e
4
+ data.tar.gz: d5476d4d97cbb09aa01a5bda951f65b7f0e95a9a
5
5
  SHA512:
6
- metadata.gz: 24e073d2b31269e553cd3b0d9c7b211818b218b4efa767cb49d11bb4686d84565f29ff4409c66eaa37425739d118857d62c02fab035500f89e40edc0f1aebb1d
7
- data.tar.gz: 539119ff457fc1ce6973f5066eb67d7edcf625fce1b5c42dee22383f3790ff58a22fcb966a5f0f0e274e582c100f60cd48d5f16ad39589377c5ae3126cbb5fe5
6
+ metadata.gz: 84bb6266b6901012bfad708845410538b98e322e377ed92cce3be73079e39b4ebcaf2545c4ec8c0a75a1f1cb2a4ea91f3dd3bc77a1b22576b642fa37e1f29148
7
+ data.tar.gz: 16724b43e5a994b7d7a8cdb1895a60a85911ec9faefd5e96198173c90ae1c4bafabb1f5a7360e52849879fd403fe996f54c01ea0e58885a0aa76e9997ede3bfb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trecs (0.2.1)
4
+ trecs (0.2.2)
5
5
  minitar (~> 0.5.4)
6
6
  trollop (~> 2.0)
7
7
 
@@ -0,0 +1,63 @@
1
+ require "recording_strategies/strategy"
2
+ require "recording_strategies/hash_strategy"
3
+
4
+ module TRecs
5
+ class AsteriskSwipeStrategy < HashStrategy
6
+ include Strategy
7
+ attr_reader :text
8
+ attr_reader :step
9
+
10
+ def initialize(options={})
11
+ @text = options.fetch(:text)
12
+ @step = options.fetch(:step) { 100 }
13
+ @frames = {}
14
+ end
15
+
16
+ def perform
17
+ max_line_size = text.each_line.inject(0) { |max, l| l.size > max ? l.size : max }
18
+
19
+ text.each_line do |line|
20
+ curr_text = " %-#{max_line_size}s " % line.chomp
21
+ (0..(curr_text.length-1)).each do |i|
22
+ current_time = step * i
23
+
24
+ c = curr_text.dup
25
+ c[i] = "|"
26
+ (i+1..c.length-3).each do |j|
27
+ c[j] = "*"
28
+ end
29
+ c = c[1..-2]
30
+ @frames[current_time] = "" unless @frames[current_time]
31
+ @frames[current_time] = @frames[current_time] << c.strip + "\n"
32
+ end
33
+ end
34
+ @frames.each do |t, c|
35
+ @frames[t] = @frames[t].chomp
36
+ end
37
+ super
38
+ end
39
+ end
40
+ end
41
+
42
+
43
+ # ****
44
+ # ****
45
+ #
46
+ # |***
47
+ # |***
48
+ #
49
+ #
50
+ # h|**
51
+ # c|**
52
+ #
53
+ # ho|*
54
+ # ch|*
55
+ #
56
+ # hol|
57
+ # cha|
58
+ #
59
+ # hola|
60
+ # chau|
61
+ #
62
+ # hola|
63
+ # chau|
@@ -10,12 +10,18 @@ module TRecs
10
10
  attr_accessor :__time
11
11
  attr_accessor :__content
12
12
 
13
- def current_time(time)
14
- @__time = time
13
+ def current_time(time=nil)
14
+ if time
15
+ @__time = time
16
+ end
17
+ @__time
15
18
  end
16
19
 
17
- def current_content(content)
18
- @__content = content
20
+ def current_content(content=nil)
21
+ if content
22
+ @__content = content
23
+ end
24
+ @__content
19
25
  end
20
26
 
21
27
  def save_frame
data/lib/trecs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TRecs
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -0,0 +1,54 @@
1
+ require "spec_helper"
2
+ require "recording_strategies/asterisk_swipe_strategy"
3
+
4
+ require "recorder"
5
+ require "recording_strategies/hash_strategy"
6
+ require "writers/in_memory_writer"
7
+
8
+ module TRecs
9
+ describe AsteriskSwipeStrategy do
10
+ context "initialization" do
11
+ When(:strategy) { AsteriskSwipeStrategy.new }
12
+ Then { expect(strategy).to have_raised(/key not found: :text/) }
13
+ end
14
+
15
+ context "performing" do
16
+ Given(:writer) { InMemoryWriter.new }
17
+ Given(:recorder) { Recorder.new(strategy: strategy, writer: writer) }
18
+
19
+ When { strategy.recorder = recorder }
20
+ When { recorder.record }
21
+
22
+ context "one char" do
23
+ Given(:strategy) { AsteriskSwipeStrategy.new(text: "a") }
24
+ Then { writer.frames[0] == "*" }
25
+ Then { writer.frames[100] == "|" }
26
+ Then { writer.frames[200] == "a|" }
27
+ Then { writer.frames[300] == "a" }
28
+ end
29
+
30
+ context "two chars" do
31
+ Given(:strategy) { AsteriskSwipeStrategy.new(text: "ab", step: 10) }
32
+ Then { writer.frames[0] == "**" }
33
+ Then { writer.frames[10] == "|*" }
34
+ Then { writer.frames[20] == "a|" }
35
+ Then { writer.frames[30] == "ab|" }
36
+ Then { writer.frames[40] == "ab" }
37
+ end
38
+
39
+ context "multiple_lines" do
40
+ Given(:strategy) { AsteriskSwipeStrategy.new(text: "FIRST\nSECOND") }
41
+ Then { writer.frames[0] == "******\n******" }
42
+ Then { writer.frames[100] == "|*****\n|*****" }
43
+ Then { writer.frames[200] == "F|****\nS|****" }
44
+ Then { writer.frames[300] == "FI|***\nSE|***" }
45
+ Then { writer.frames[400] == "FIR|**\nSEC|**" }
46
+ Then { writer.frames[500] == "FIRS|*\nSECO|*" }
47
+ Then { writer.frames[600] == "FIRST|\nSECON|" }
48
+ Then { writer.frames[700] == "FIRST |\nSECOND|" }
49
+ Then { writer.frames[800] == "FIRST\nSECOND" }
50
+ end
51
+ end
52
+
53
+ end
54
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trecs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Iachetti
@@ -122,6 +122,7 @@ files:
122
122
  - lib/trecs/readers/json_reader.rb
123
123
  - lib/trecs/readers/yaml_store_reader.rb
124
124
  - lib/trecs/recorder.rb
125
+ - lib/trecs/recording_strategies/asterisk_swipe_strategy.rb
125
126
  - lib/trecs/recording_strategies/config_strategy.rb
126
127
  - lib/trecs/recording_strategies/custom_strategy.rb
127
128
  - lib/trecs/recording_strategies/file_frames_strategy.rb
@@ -156,6 +157,7 @@ files:
156
157
  - spec/trecs/readers/json_reader_spec.rb
157
158
  - spec/trecs/readers/yaml_store_reader_spec.rb
158
159
  - spec/trecs/recorder_spec.rb
160
+ - spec/trecs/recording_strategies/asterisk_swipe_strategy_spec.rb
159
161
  - spec/trecs/recording_strategies/config_strategy_spec.rb
160
162
  - spec/trecs/recording_strategies/file_frames_strategy_spec.rb
161
163
  - spec/trecs/recording_strategies/fly_from_right_strategy_spec.rb
@@ -203,6 +205,7 @@ test_files:
203
205
  - spec/trecs/readers/json_reader_spec.rb
204
206
  - spec/trecs/readers/yaml_store_reader_spec.rb
205
207
  - spec/trecs/recorder_spec.rb
208
+ - spec/trecs/recording_strategies/asterisk_swipe_strategy_spec.rb
206
209
  - spec/trecs/recording_strategies/config_strategy_spec.rb
207
210
  - spec/trecs/recording_strategies/file_frames_strategy_spec.rb
208
211
  - spec/trecs/recording_strategies/fly_from_right_strategy_spec.rb