trecs 0.3.18 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/trecs +5 -5
- data/bin/trecs_record +7 -4
- data/lib/trecs/frame.rb +3 -2
- data/lib/trecs/recorder.rb +4 -24
- data/lib/trecs/strategies/config_strategy.rb +19 -8
- data/lib/trecs/strategies/custom_strategy.rb +14 -3
- data/lib/trecs/strategies/emacs_plugin_strategy.rb +3 -3
- data/lib/trecs/strategies/file_frames_strategy.rb +1 -2
- data/lib/trecs/strategies/fly_from_right_strategy.rb +1 -2
- data/lib/trecs/strategies/hash_strategy.rb +6 -7
- data/lib/trecs/strategies/incremental_strategy.rb +9 -4
- data/lib/trecs/strategies/raw_file_strategy.rb +1 -6
- data/lib/trecs/strategies/strategy.rb +20 -7
- data/lib/trecs/strategies/swipe_strategy.rb +3 -5
- data/lib/trecs/strategies/tmux_session_strategy.rb +3 -4
- data/lib/trecs/strategies/trecs_file_strategy.rb +1 -2
- data/lib/trecs/strategies/ttyrec_strategy.rb +1 -2
- data/lib/trecs/version.rb +1 -1
- data/lib/trecs/writers/in_memory_writer.rb +2 -1
- data/lib/trecs/writers/json_writer.rb +1 -5
- data/spec/spec_helper.rb +3 -1
- data/spec/trecs/frame_spec.rb +6 -0
- data/spec/trecs/recorder_spec.rb +4 -158
- data/spec/trecs/strategies/config_strategy_spec.rb +68 -11
- data/spec/trecs/strategies/fly_from_right_strategy_spec.rb +18 -14
- data/spec/trecs/strategies/hash_strategy_spec.rb +11 -8
- data/spec/trecs/strategies/incremental_strategy_spec.rb +17 -17
- data/spec/trecs/strategies/raw_file_strategy_spec.rb +0 -28
- data/spec/trecs/strategies/strategy_spec.rb +45 -0
- data/spec/trecs/strategies/swipe_strategy_spec.rb +62 -60
- data/spec/trecs/writers/in_memory_writer_spec.rb +5 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d398a30c4662e41a3cbe7461c72fde6ed150f13
|
4
|
+
data.tar.gz: bd44123337dca8b66a60ed882bac9485cfaa6f05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de4d6ac1348a7b4cf1b4a45af508e832f0edfd6f1215728043ab7f1a1434e042b58746d758deebc9cd28c346977e925fc8164ca8d4d0ce0da0a13a13c2eddfe8
|
7
|
+
data.tar.gz: a9f432b18467a15848db360f31d4dd76ab07ccf0d35853814215ebbc537ebb0dcbdeb43b5fbc92a162f3905a372b61786275c10964b27d16123cff5713e09ca0
|
data/Gemfile.lock
CHANGED
data/bin/trecs
CHANGED
@@ -16,18 +16,18 @@ end
|
|
16
16
|
opts = Trollop::options do
|
17
17
|
version TRecs::VERSION
|
18
18
|
|
19
|
-
opt :step, "Time in ms between frames", short: 's',
|
20
|
-
opt :ticker, "Ticker", type: String,
|
19
|
+
opt :step, "Time in ms between frames", short: 's', default: 100
|
20
|
+
opt :ticker, "Ticker", type: String, default: "clock"
|
21
21
|
|
22
22
|
opt :from, "Play from", type: Integer, default: 0
|
23
23
|
opt :to, "Play to", type: Integer, default: 0
|
24
24
|
opt :speed, "Playing speed", type: Float, default: 1.0
|
25
25
|
|
26
|
-
opt :ticker_file, "File to watch", type: String,
|
26
|
+
opt :ticker_file, "File to watch", type: String, default: "/tmp/ticker"
|
27
27
|
|
28
|
-
opt :audio, "If there's an audio file, reproduce it",
|
28
|
+
opt :audio, "If there's an audio file, reproduce it", default: true
|
29
29
|
|
30
|
-
opt :duration, "Length of the recording",
|
30
|
+
opt :duration, "Length of the recording", default: false
|
31
31
|
end
|
32
32
|
opts[:trecs_backend] = ARGV[0]
|
33
33
|
|
data/bin/trecs_record
CHANGED
@@ -13,7 +13,7 @@ opts = Trollop::options do
|
|
13
13
|
opt :strategy, "Strategy", type: String, default: "incremental"
|
14
14
|
|
15
15
|
opt :message, "Message to record", type: String, default: "TRecs!"
|
16
|
-
opt :width, "Width", type: Integer, default: 10
|
16
|
+
#opt :width, "Width", type: Integer, default: 10
|
17
17
|
opt :command, "Command" , short: "c", type: String
|
18
18
|
opt :input_file, "File to record", type: String, default: ""
|
19
19
|
opt :terminal, "Launch terminal", default: true
|
@@ -21,9 +21,12 @@ opts = Trollop::options do
|
|
21
21
|
|
22
22
|
opt :audio, "Record audio"
|
23
23
|
|
24
|
-
opt :from, "Play from",
|
25
|
-
opt :to, "Play to",
|
26
|
-
opt :speed, "Playing speed",
|
24
|
+
opt :from, "Play from", type: Integer, default: 0
|
25
|
+
opt :to, "Play to", type: Integer, default: 0
|
26
|
+
opt :speed, "Playing speed", type: Float, default: 1.0
|
27
|
+
|
28
|
+
opt :height, "Height", type: Integer, default: 0
|
29
|
+
opt :width, "Width", type: Integer, default: 0
|
27
30
|
end
|
28
31
|
opts[:trecs_backend] = ARGV[0]
|
29
32
|
|
data/lib/trecs/frame.rb
CHANGED
data/lib/trecs/recorder.rb
CHANGED
@@ -24,23 +24,10 @@ module TRecs
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def record
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def current_frame(options={})
|
35
|
-
@current_time = options.fetch(:time) { next_timestamp }
|
36
|
-
@current_content = options.fetch(:content)
|
37
|
-
|
38
|
-
if @previous_content != current_content
|
39
|
-
new_current_time = current_time + offset
|
40
|
-
options[:time] = new_current_time
|
41
|
-
writer.create_frame(options)
|
42
|
-
@previous_content = current_content
|
43
|
-
end
|
27
|
+
self.current_time = nil
|
28
|
+
self.recording = true
|
29
|
+
strategy.write_frames_to(writer)
|
30
|
+
self.recording = false
|
44
31
|
end
|
45
32
|
|
46
33
|
def next_timestamp
|
@@ -57,12 +44,5 @@ module TRecs
|
|
57
44
|
attr_writer :current_time
|
58
45
|
attr_writer :current_content
|
59
46
|
|
60
|
-
def do_record
|
61
|
-
self.current_time = nil
|
62
|
-
self.recording = true
|
63
|
-
yield
|
64
|
-
self.recording = false
|
65
|
-
end
|
66
|
-
|
67
47
|
end
|
68
48
|
end
|
@@ -1,16 +1,20 @@
|
|
1
1
|
require "strategies/strategy"
|
2
|
+
require "writers/in_memory_writer"
|
2
3
|
|
3
4
|
module TRecs
|
4
|
-
class ConfigStrategy
|
5
|
-
include Strategy
|
6
|
-
attr_reader :step
|
5
|
+
class ConfigStrategy < Strategy
|
7
6
|
attr_reader :format
|
8
7
|
attr_reader :strategies
|
9
8
|
|
10
9
|
def initialize(options={})
|
11
|
-
|
10
|
+
super(options)
|
11
|
+
|
12
12
|
@format = options.fetch(:format) { "json" }
|
13
13
|
@strategies = options.fetch(:strategies) { [] }
|
14
|
+
@offset = options.fetch(:offset) { 0 }
|
15
|
+
|
16
|
+
@writer = InMemoryWriter.new
|
17
|
+
|
14
18
|
end
|
15
19
|
|
16
20
|
def <<(strategy)
|
@@ -22,13 +26,20 @@ module TRecs
|
|
22
26
|
self << strategy
|
23
27
|
end
|
24
28
|
end
|
25
|
-
|
29
|
+
|
26
30
|
def perform
|
31
|
+
current_time(0)
|
27
32
|
strategies.each do |strategy|
|
28
|
-
strategy.
|
29
|
-
strategy.
|
30
|
-
|
33
|
+
strategy.write_frames_to(@writer)
|
34
|
+
strategy.frames.each do |time, frame|
|
35
|
+
current_content(frame.content)
|
36
|
+
current_format(frame.format)
|
37
|
+
current_time(time + offset)
|
38
|
+
save_frame
|
39
|
+
end
|
40
|
+
self.offset = current_time + self.step
|
31
41
|
end
|
42
|
+
|
32
43
|
end
|
33
44
|
|
34
45
|
end
|
@@ -1,5 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require "strategies/strategy"
|
2
|
+
module TRecs
|
3
|
+
class CustomStrategy < Strategy
|
4
|
+
|
5
|
+
attr_accessor :recorder
|
6
|
+
attr_accessor :action
|
7
|
+
|
8
|
+
def initialize(action = ->{})
|
9
|
+
@action = action
|
10
|
+
end
|
11
|
+
|
12
|
+
def perform
|
13
|
+
self.action.call
|
14
|
+
end
|
4
15
|
end
|
5
16
|
end
|
@@ -10,8 +10,8 @@ module TRecs
|
|
10
10
|
@clock = options.fetch(:clock) { Time }
|
11
11
|
@testing = options.fetch(:testing) { false }
|
12
12
|
|
13
|
-
@
|
14
|
-
@
|
13
|
+
@height = 20
|
14
|
+
@width = 80
|
15
15
|
end
|
16
16
|
|
17
17
|
def perform
|
@@ -50,7 +50,7 @@ module TRecs
|
|
50
50
|
.gsub(/\/\*.+\*\//, "")
|
51
51
|
#.gsub!(/^\s/, "").gsub!(/^(<[^\/]\w+ (\w+=['"][^>]+['"])*>)+ /) {|m| m[-1]=""; m } # clean extra space at the begining of each line
|
52
52
|
|
53
|
-
new_content = "<style>#{style}</style><pre style='border: 2px solid #898989;width: #{@width*1.
|
53
|
+
new_content = "<style>#{style}</style><pre style='border: 2px solid #898989;width: #{@width*1.3}ex;height: #{@height*1.31}ex' class='emacs-code'>#{code}</pre>"
|
54
54
|
|
55
55
|
super(new_content)
|
56
56
|
end
|
@@ -2,18 +2,17 @@ require "strategies/strategy"
|
|
2
2
|
require "strategies/shell_command_strategy"
|
3
3
|
|
4
4
|
module TRecs
|
5
|
-
class HashStrategy
|
6
|
-
include Strategy
|
5
|
+
class HashStrategy < Strategy
|
7
6
|
include ShellCommandStrategy
|
8
|
-
attr_accessor :
|
7
|
+
attr_accessor :frames_to_save
|
9
8
|
|
10
|
-
def initialize(
|
11
|
-
@
|
12
|
-
@command
|
9
|
+
def initialize(frames_to_save={})
|
10
|
+
@frames_to_save = frames_to_save || Hash.new
|
11
|
+
@command = frames_to_save.fetch(:command) { nil }
|
13
12
|
end
|
14
13
|
|
15
14
|
def perform
|
16
|
-
@
|
15
|
+
@frames_to_save.each do |time, content|
|
17
16
|
if time.is_a?(Numeric) || /\A\d+\Z/ === time
|
18
17
|
current_time(time.to_s.to_i)
|
19
18
|
current_content(content)
|
@@ -2,19 +2,24 @@ require "strategies/strategy"
|
|
2
2
|
require "strategies/shell_command_strategy"
|
3
3
|
|
4
4
|
module TRecs
|
5
|
-
class IncrementalStrategy
|
6
|
-
include Strategy
|
5
|
+
class IncrementalStrategy < Strategy
|
7
6
|
include ShellCommandStrategy
|
8
7
|
|
9
8
|
attr_reader :message
|
9
|
+
attr_reader :step
|
10
10
|
|
11
11
|
def initialize(options={})
|
12
12
|
@message = options.fetch(:message)
|
13
13
|
@command = options.fetch(:command) { nil }
|
14
|
+
@step = options.fetch(:step) { 100 }
|
15
|
+
|
14
16
|
end
|
15
17
|
|
16
18
|
def perform
|
17
|
-
|
19
|
+
current_time(0)
|
20
|
+
current_content("")
|
21
|
+
save_frame
|
22
|
+
|
18
23
|
message.each_char.each_with_object("") do |current_char, current_msg|
|
19
24
|
current_msg << current_char
|
20
25
|
|
@@ -27,7 +32,7 @@ module TRecs
|
|
27
32
|
private
|
28
33
|
|
29
34
|
def timestamp_for(message)
|
30
|
-
message.size *
|
35
|
+
message.size * step
|
31
36
|
end
|
32
37
|
end
|
33
38
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "strategies/strategy"
|
2
2
|
module TRecs
|
3
|
-
class RawFileStrategy
|
4
|
-
include Strategy
|
3
|
+
class RawFileStrategy < Strategy
|
5
4
|
attr_reader :file
|
6
5
|
|
7
6
|
def initialize(options={})
|
@@ -10,10 +9,6 @@ module TRecs
|
|
10
9
|
|
11
10
|
@clock = options.fetch(:clock) { Time }
|
12
11
|
@testing = options.fetch(:testing) { false }
|
13
|
-
#
|
14
|
-
#@height = options.fetch(:height) { 24 }
|
15
|
-
#@width = options.fetch(:width) { 80 }
|
16
|
-
#
|
17
12
|
end
|
18
13
|
|
19
14
|
def perform
|
@@ -1,6 +1,22 @@
|
|
1
|
+
require "frame"
|
1
2
|
module TRecs
|
2
|
-
|
3
|
+
class Strategy
|
3
4
|
attr_accessor :recorder
|
5
|
+
attr_accessor :offset
|
6
|
+
attr_accessor :step
|
7
|
+
|
8
|
+
def initialize(options={})
|
9
|
+
@step = options.fetch(:step) { 100 }
|
10
|
+
end
|
11
|
+
|
12
|
+
def write_frames_to(writer)
|
13
|
+
perform
|
14
|
+
writer.render_frames(frames)
|
15
|
+
end
|
16
|
+
|
17
|
+
def frames
|
18
|
+
@frames ||= {}
|
19
|
+
end
|
4
20
|
|
5
21
|
def stop
|
6
22
|
end
|
@@ -24,19 +40,16 @@ module TRecs
|
|
24
40
|
end
|
25
41
|
@__content
|
26
42
|
end
|
27
|
-
|
43
|
+
|
28
44
|
def current_format(format=nil)
|
29
45
|
if format
|
30
46
|
@__format = format
|
31
47
|
end
|
32
48
|
@__format
|
33
49
|
end
|
34
|
-
|
35
|
-
def save_frame
|
36
|
-
options = {time: __time, format: __format, content: __content}
|
37
|
-
options.reject! {|k,v| v.nil?}
|
38
50
|
|
39
|
-
|
51
|
+
def save_frame
|
52
|
+
frames[__time] = Frame.new(format: __format, content: __content)
|
40
53
|
end
|
41
54
|
end
|
42
55
|
end
|
@@ -3,15 +3,13 @@ require "strategies/hash_strategy"
|
|
3
3
|
require "strategies/shell_command_strategy"
|
4
4
|
|
5
5
|
module TRecs
|
6
|
-
class SwipeStrategy <
|
7
|
-
include Strategy
|
6
|
+
class SwipeStrategy < Strategy
|
8
7
|
include ShellCommandStrategy
|
9
8
|
attr_reader :message
|
10
|
-
attr_reader :step
|
11
9
|
|
12
10
|
def initialize(options={})
|
11
|
+
super(options)
|
13
12
|
@message = options.fetch(:message)
|
14
|
-
@step = options.fetch(:step) { 100 }
|
15
13
|
@command = options.fetch(:command) { nil }
|
16
14
|
@swiper = options.fetch(:swiper) { "|" }
|
17
15
|
@hider = options.fetch(:hider) { "*" }
|
@@ -36,7 +34,7 @@ module TRecs
|
|
36
34
|
end
|
37
35
|
|
38
36
|
cleanup_frames
|
39
|
-
super
|
37
|
+
#super
|
40
38
|
end
|
41
39
|
|
42
40
|
private
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require "strategies/strategy"
|
2
2
|
|
3
3
|
module TRecs
|
4
|
-
class TmuxSessionStrategy
|
5
|
-
include Strategy
|
4
|
+
class TmuxSessionStrategy < Strategy
|
6
5
|
attr_reader :recording
|
7
|
-
attr_reader :step
|
8
6
|
|
9
7
|
def initialize(options={})
|
8
|
+
super(options)
|
10
9
|
@frames = []
|
11
|
-
@step =
|
10
|
+
@step = @step / 1000.0
|
12
11
|
@color = options.fetch(:color) { true }
|
13
12
|
set_color_or_bw
|
14
13
|
end
|
data/lib/trecs/version.rb
CHANGED
@@ -18,10 +18,6 @@ module TRecs
|
|
18
18
|
@audio_files = Array(@audio_files)
|
19
19
|
end
|
20
20
|
|
21
|
-
def setup
|
22
|
-
@frames = {}
|
23
|
-
end
|
24
|
-
|
25
21
|
def create_frame(options={})
|
26
22
|
time = options.fetch(:time)
|
27
23
|
content = options.fetch(:content)
|
@@ -35,7 +31,7 @@ module TRecs
|
|
35
31
|
frames[time] = frame
|
36
32
|
end
|
37
33
|
|
38
|
-
def
|
34
|
+
def render_frames(frames)
|
39
35
|
source.create_recording do |source|
|
40
36
|
source[:format] = "json"
|
41
37
|
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,9 @@ require File.expand_path("../../lib/trecs", __FILE__)
|
|
3
3
|
require "rspec/given"
|
4
4
|
require "ostruct"
|
5
5
|
|
6
|
+
require "recorder"
|
7
|
+
require "writers/in_memory_writer"
|
8
|
+
|
6
9
|
RSpec.configure do |config|
|
7
10
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
8
11
|
config.run_all_when_everything_filtered = true
|
@@ -63,7 +66,6 @@ class Spy
|
|
63
66
|
end
|
64
67
|
end
|
65
68
|
|
66
|
-
|
67
69
|
class CustomTicker
|
68
70
|
attr_accessor :player
|
69
71
|
def initialize(*ticks)
|
data/spec/trecs/frame_spec.rb
CHANGED
@@ -21,6 +21,7 @@ module TRecs
|
|
21
21
|
Given(:frame) { Frame.new("123456") }
|
22
22
|
Then { frame.width == 6 }
|
23
23
|
end
|
24
|
+
|
24
25
|
context "multiple lines" do
|
25
26
|
Given(:frame) { Frame.new(<<FRAME
|
26
27
|
123
|
@@ -30,6 +31,11 @@ FRAME
|
|
30
31
|
) }
|
31
32
|
Then { frame.width == 5 }
|
32
33
|
end
|
34
|
+
|
35
|
+
context "empty frame" do
|
36
|
+
Given(:frame) { Frame.new("") }
|
37
|
+
Then { frame.width == 0 }
|
38
|
+
end
|
33
39
|
end
|
34
40
|
|
35
41
|
context "equality" do
|
data/spec/trecs/recorder_spec.rb
CHANGED
@@ -35,28 +35,24 @@ module TRecs
|
|
35
35
|
|
36
36
|
When { recorder.record }
|
37
37
|
|
38
|
-
Then { Spy.calls[1] == ["
|
39
|
-
Then { Spy.calls[2] == ["strategy", :perform, []] }
|
40
|
-
Then { Spy.calls[3] == ["writer", :render, []] }
|
38
|
+
Then { Spy.calls[1] == ["strategy", :write_frames_to, [writer]] }
|
41
39
|
end
|
42
40
|
|
43
41
|
context "#recording" do
|
44
|
-
Given(:writer) {
|
45
|
-
Given(:strategy) { OpenStruct.new }
|
42
|
+
Given(:writer) { InMemoryWriter.new }
|
46
43
|
Given(:recorder) {
|
47
44
|
Recorder.new(writer: writer, strategy: strategy)
|
48
45
|
}
|
46
|
+
Given(:strategy) { CustomStrategy.new }
|
49
47
|
|
50
48
|
context "before start" do
|
51
49
|
Then { recorder.recording == false }
|
52
50
|
end
|
53
51
|
|
54
52
|
context "when recording" do
|
55
|
-
Given(:strategy) { CustomStrategy.new }
|
56
|
-
|
57
53
|
When(:recording) {
|
58
54
|
result = nil
|
59
|
-
strategy.action
|
55
|
+
strategy.action=( -> { result = recorder.recording })
|
60
56
|
recorder.record
|
61
57
|
result
|
62
58
|
}
|
@@ -69,96 +65,6 @@ module TRecs
|
|
69
65
|
end
|
70
66
|
end
|
71
67
|
|
72
|
-
context "#current_frame" do
|
73
|
-
Given { Spy.clear }
|
74
|
-
Given(:writer) { Spy.new("Writer").ignore(:recorder=, :setup, :render) }
|
75
|
-
Given(:strategy) { CustomStrategy.new }
|
76
|
-
|
77
|
-
Given(:recorder) {
|
78
|
-
Recorder.new(writer: writer, strategy: strategy)
|
79
|
-
}
|
80
|
-
|
81
|
-
context "setting current frame and time" do
|
82
|
-
When(:result) {
|
83
|
-
result = []
|
84
|
-
strategy.action = -> {
|
85
|
-
recorder.current_frame(time: 10, content: "CONTENT")
|
86
|
-
result << {
|
87
|
-
time: recorder.current_time,
|
88
|
-
content: recorder.current_content,
|
89
|
-
}
|
90
|
-
recorder.current_frame(time: 15, content: "CONTENT 2")
|
91
|
-
result << {
|
92
|
-
time: recorder.current_time,
|
93
|
-
content: recorder.current_content,
|
94
|
-
}
|
95
|
-
}
|
96
|
-
recorder.record
|
97
|
-
result
|
98
|
-
}
|
99
|
-
|
100
|
-
Then {
|
101
|
-
result == [
|
102
|
-
{time: 10, content: "CONTENT"},
|
103
|
-
{time: 15, content: "CONTENT 2"},
|
104
|
-
]
|
105
|
-
}
|
106
|
-
Then {
|
107
|
-
writer.calls[1] == [
|
108
|
-
:create_frame,
|
109
|
-
[ { time: 10, content: "CONTENT" } ]
|
110
|
-
]
|
111
|
-
}
|
112
|
-
Then {
|
113
|
-
writer.calls[2] == [
|
114
|
-
:create_frame,
|
115
|
-
[ { time: 15, content: "CONTENT 2" } ]
|
116
|
-
]
|
117
|
-
}
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
context "#current_frame" do
|
122
|
-
Given { Spy.clear }
|
123
|
-
Given(:writer) { Spy.new("Writer").ignore(:recorder=, :setup, :render) }
|
124
|
-
Given(:strategy) { CustomStrategy.new }
|
125
|
-
|
126
|
-
Given(:recorder) {
|
127
|
-
Recorder.new(writer: writer, strategy: strategy)
|
128
|
-
}
|
129
|
-
|
130
|
-
context "setting current frame and time with content duplicates" do
|
131
|
-
When {
|
132
|
-
strategy.action = -> {
|
133
|
-
recorder.current_frame(time: 10, content: "CONTENT")
|
134
|
-
recorder.current_frame(time: 15, content: "CONTENT 2")
|
135
|
-
recorder.current_frame(time: 20, content: "CONTENT 2")
|
136
|
-
recorder.current_frame(time: 25, content: "CONTENT 3")
|
137
|
-
}
|
138
|
-
recorder.record
|
139
|
-
}
|
140
|
-
|
141
|
-
Then {
|
142
|
-
writer.calls[1] == [
|
143
|
-
:create_frame,
|
144
|
-
[ { time: 10, content: "CONTENT" } ]
|
145
|
-
]
|
146
|
-
}
|
147
|
-
Then {
|
148
|
-
writer.calls[2] == [
|
149
|
-
:create_frame,
|
150
|
-
[ { time: 15, content: "CONTENT 2" } ]
|
151
|
-
]
|
152
|
-
}
|
153
|
-
Then {
|
154
|
-
writer.calls[3] == [
|
155
|
-
:create_frame,
|
156
|
-
[ { time: 25, content: "CONTENT 3" } ]
|
157
|
-
]
|
158
|
-
}
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
68
|
context "#next_timestamp" do
|
163
69
|
Given(:writer) { OpenStruct.new }
|
164
70
|
Given(:strategy) { OpenStruct.new }
|
@@ -205,65 +111,5 @@ module TRecs
|
|
205
111
|
|
206
112
|
Then { strategy.calls[1] == [:stop, []] }
|
207
113
|
end
|
208
|
-
|
209
|
-
context "Offset" do
|
210
|
-
context "initialization" do
|
211
|
-
context "from constructor" do
|
212
|
-
Given(:recorder) { Recorder.new(offset: 10, writer: OpenStruct.new, strategy: OpenStruct.new) }
|
213
|
-
Then { recorder.offset == 10 }
|
214
|
-
end
|
215
|
-
|
216
|
-
context "setter" do
|
217
|
-
Given(:recorder) { Recorder.new(offset: 10, writer: OpenStruct.new, strategy: OpenStruct.new) }
|
218
|
-
When { recorder.offset = 30 }
|
219
|
-
Then { recorder.offset == 30 }
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
|
-
Given { Spy.clear }
|
224
|
-
Given(:writer) { Spy.new("Writer").ignore(:recorder=, :setup, :render) }
|
225
|
-
Given(:strategy) { CustomStrategy.new }
|
226
|
-
|
227
|
-
Given(:recorder) {
|
228
|
-
Recorder.new(offset: 7, writer: writer, strategy: strategy, step: 10)
|
229
|
-
}
|
230
|
-
|
231
|
-
When {
|
232
|
-
strategy.action = -> {
|
233
|
-
recorder.current_frame(time: 0, content: "CONTENT")
|
234
|
-
recorder.current_frame(time: 10, content: "CONTENT 2")
|
235
|
-
recorder.current_frame(time: 12, content: "CONTENT 3")
|
236
|
-
recorder.current_frame( content: "CONTENT 4")
|
237
|
-
}
|
238
|
-
recorder.record
|
239
|
-
}
|
240
|
-
|
241
|
-
Then {
|
242
|
-
writer.calls[1] == [
|
243
|
-
:create_frame,
|
244
|
-
[ { time: 7, content: "CONTENT" } ]
|
245
|
-
]
|
246
|
-
}
|
247
|
-
Then {
|
248
|
-
writer.calls[2] == [
|
249
|
-
:create_frame,
|
250
|
-
[ { time: 17, content: "CONTENT 2" } ]
|
251
|
-
]
|
252
|
-
}
|
253
|
-
Then {
|
254
|
-
writer.calls[3] == [
|
255
|
-
:create_frame,
|
256
|
-
[ { time: 19, content: "CONTENT 3" } ]
|
257
|
-
]
|
258
|
-
}
|
259
|
-
Then { recorder.current_time == 22 }
|
260
|
-
Then {
|
261
|
-
writer.calls[4] == [
|
262
|
-
:create_frame,
|
263
|
-
[ { time: 29, content: "CONTENT 4" } ]
|
264
|
-
]
|
265
|
-
}
|
266
|
-
end
|
267
|
-
|
268
114
|
end
|
269
115
|
end
|
@@ -1,36 +1,33 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "strategies/config_strategy"
|
3
|
-
require "recorder"
|
4
3
|
require "strategies/hash_strategy"
|
5
|
-
require "
|
4
|
+
require "recorder"
|
6
5
|
|
7
6
|
module TRecs
|
8
7
|
describe ConfigStrategy do
|
9
8
|
context "options" do
|
10
|
-
|
11
9
|
context "set values" do
|
12
|
-
|
13
10
|
Given(:options) {
|
14
11
|
{
|
15
|
-
step:
|
16
|
-
format:
|
17
|
-
strategies:
|
12
|
+
step: 40,
|
13
|
+
format: "json",
|
14
|
+
strategies: [],
|
18
15
|
spureous_option: "something spureous",
|
19
16
|
}
|
20
17
|
}
|
21
18
|
|
22
19
|
Given(:strategy) { ConfigStrategy.new(options) }
|
23
20
|
|
24
|
-
Then { strategy.step
|
25
|
-
Then { strategy.format
|
21
|
+
Then { strategy.step == 40 }
|
22
|
+
Then { strategy.format == "json" }
|
26
23
|
Then { strategy.strategies == [] }
|
27
24
|
end
|
28
25
|
|
29
26
|
context "default values" do
|
30
27
|
Given(:strategy) { ConfigStrategy.new }
|
31
28
|
|
32
|
-
Then { strategy.step
|
33
|
-
Then { strategy.format
|
29
|
+
Then { strategy.step == 100 }
|
30
|
+
Then { strategy.format == "json" }
|
34
31
|
Then { strategy.strategies == [] }
|
35
32
|
end
|
36
33
|
end
|
@@ -127,3 +124,63 @@ module TRecs
|
|
127
124
|
end
|
128
125
|
end
|
129
126
|
end
|
127
|
+
|
128
|
+
##### Creo que esto va aca
|
129
|
+
### context "Offset" do
|
130
|
+
### context "initialization" do
|
131
|
+
### context "from constructor" do
|
132
|
+
### Given(:recorder) { Recorder.new(offset: 10, writer: OpenStruct.new, strategy: OpenStruct.new) }
|
133
|
+
### Then { recorder.offset == 10 }
|
134
|
+
### end
|
135
|
+
###
|
136
|
+
### context "setter" do
|
137
|
+
### Given(:recorder) { Recorder.new(offset: 10, writer: OpenStruct.new, strategy: OpenStruct.new) }
|
138
|
+
### When { recorder.offset = 30 }
|
139
|
+
### Then { recorder.offset == 30 }
|
140
|
+
### end
|
141
|
+
### end
|
142
|
+
###
|
143
|
+
### Given { Spy.clear }
|
144
|
+
### Given(:writer) { Spy.new("Writer").ignore(:recorder=, :setup, :render) }
|
145
|
+
### Given(:strategy) { CustomStrategy.new }
|
146
|
+
###
|
147
|
+
### Given(:recorder) {
|
148
|
+
### Recorder.new(offset: 7, writer: writer, strategy: strategy, step: 10)
|
149
|
+
### }
|
150
|
+
###
|
151
|
+
### When {
|
152
|
+
### strategy.action = -> {
|
153
|
+
### recorder.current_frame(time: 0, content: "CONTENT")
|
154
|
+
### recorder.current_frame(time: 10, content: "CONTENT 2")
|
155
|
+
### recorder.current_frame(time: 12, content: "CONTENT 3")
|
156
|
+
### recorder.current_frame( content: "CONTENT 4")
|
157
|
+
### }
|
158
|
+
### recorder.record
|
159
|
+
### }
|
160
|
+
###
|
161
|
+
### Then {
|
162
|
+
### writer.calls[1] == [
|
163
|
+
### :create_frame,
|
164
|
+
### [ { time: 7, content: "CONTENT" } ]
|
165
|
+
### ]
|
166
|
+
### }
|
167
|
+
### Then {
|
168
|
+
### writer.calls[2] == [
|
169
|
+
### :create_frame,
|
170
|
+
### [ { time: 17, content: "CONTENT 2" } ]
|
171
|
+
### ]
|
172
|
+
### }
|
173
|
+
### Then {
|
174
|
+
### writer.calls[3] == [
|
175
|
+
### :create_frame,
|
176
|
+
### [ { time: 19, content: "CONTENT 3" } ]
|
177
|
+
### ]
|
178
|
+
### }
|
179
|
+
### Then { recorder.current_time == 22 }
|
180
|
+
### Then {
|
181
|
+
### writer.calls[4] == [
|
182
|
+
### :create_frame,
|
183
|
+
### [ { time: 29, content: "CONTENT 4" } ]
|
184
|
+
### ]
|
185
|
+
### }
|
186
|
+
### end
|
@@ -36,28 +36,32 @@ module TRecs
|
|
36
36
|
end
|
37
37
|
|
38
38
|
context "perform" do
|
39
|
-
Given
|
40
|
-
Given(:recorder) { Spy.new("recorder") }
|
39
|
+
Given(:writer) { InMemoryWriter.new }
|
41
40
|
Given(:strategy) { FlyFromRightStrategy.new(message: "abc", width: 4) }
|
41
|
+
Given(:recorder) { Recorder.new(strategy: strategy, writer: writer) }
|
42
|
+
|
43
|
+
When { strategy.recorder = recorder }
|
44
|
+
When { recorder.record }
|
45
|
+
When { strategy.perform }
|
42
46
|
|
43
47
|
When { recorder.stub(:step) { 100 } }
|
44
48
|
When { strategy.recorder = recorder }
|
45
49
|
When { strategy.perform }
|
46
50
|
|
47
|
-
Then {
|
48
|
-
Then {
|
49
|
-
Then {
|
50
|
-
Then {
|
51
|
-
Then {
|
51
|
+
Then { writer.frames[0] == "" }
|
52
|
+
Then { writer.frames[100] == " a" }
|
53
|
+
Then { writer.frames[200] == " a" }
|
54
|
+
Then { writer.frames[300] == " a" }
|
55
|
+
Then { writer.frames[400] == "a" }
|
52
56
|
|
53
|
-
Then {
|
54
|
-
Then {
|
55
|
-
Then {
|
56
|
-
Then {
|
57
|
+
Then { writer.frames[500] == "a" }
|
58
|
+
Then { writer.frames[600] == "a b" }
|
59
|
+
Then { writer.frames[700] == "a b" }
|
60
|
+
Then { writer.frames[800] == "ab" }
|
57
61
|
|
58
|
-
Then {
|
59
|
-
Then {
|
60
|
-
Then {
|
62
|
+
Then { writer.frames[900] == "ab" }
|
63
|
+
Then { writer.frames[1000] == "ab c" }
|
64
|
+
Then { writer.frames[1100] == "abc" }
|
61
65
|
|
62
66
|
end
|
63
67
|
end
|
@@ -19,8 +19,10 @@ module TRecs
|
|
19
19
|
end
|
20
20
|
|
21
21
|
context "perform" do
|
22
|
-
Given
|
23
|
-
Given(:
|
22
|
+
Given(:writer) { InMemoryWriter.new }
|
23
|
+
Given(:strategy) { IncrementalStrategy.new(message: "Hello World") }
|
24
|
+
Given(:recorder) { Recorder.new(strategy: strategy, writer: writer) }
|
25
|
+
|
24
26
|
Given(:strategy) { HashStrategy.new(
|
25
27
|
{
|
26
28
|
0 => "A",
|
@@ -28,18 +30,19 @@ module TRecs
|
|
28
30
|
"15" => "C",
|
29
31
|
"1a2b3C4" => "h",
|
30
32
|
20 => "D",
|
31
|
-
:"25"
|
33
|
+
:"25" => "E",
|
32
34
|
}
|
33
35
|
) }
|
34
36
|
|
35
37
|
When { strategy.recorder = recorder }
|
38
|
+
When { recorder.record }
|
36
39
|
When { strategy.perform }
|
37
40
|
|
38
|
-
Then {
|
39
|
-
Then {
|
40
|
-
Then {
|
41
|
-
Then {
|
42
|
-
Then {
|
41
|
+
Then { writer.frames[0] == "A" }
|
42
|
+
Then { writer.frames[10] == "B" }
|
43
|
+
Then { writer.frames[15] == "C" }
|
44
|
+
Then { writer.frames[20] == "D" }
|
45
|
+
Then { writer.frames[25] == "E" }
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
@@ -6,7 +6,7 @@ module TRecs
|
|
6
6
|
context "initialization" do
|
7
7
|
When(:strategy1) { IncrementalStrategy.new(message: "HELLO") }
|
8
8
|
Then { strategy1.message == "HELLO" }
|
9
|
-
|
9
|
+
|
10
10
|
When(:strategy2) { IncrementalStrategy.new }
|
11
11
|
Then { expect(strategy2).to have_failed(KeyError, /message/) }
|
12
12
|
end
|
@@ -17,28 +17,28 @@ module TRecs
|
|
17
17
|
When { strategy.recorder = recorder }
|
18
18
|
Then { strategy.recorder == recorder }
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
context "perform" do
|
22
|
-
Given
|
23
|
-
Given(:recorder) { Spy.new("recorder") }
|
22
|
+
Given(:writer) { InMemoryWriter.new }
|
24
23
|
Given(:strategy) { IncrementalStrategy.new(message: "Hello World") }
|
24
|
+
Given(:recorder) { Recorder.new(strategy: strategy, writer: writer) }
|
25
25
|
|
26
|
-
When { recorder.stub(:step) { 100 } }
|
27
26
|
When { strategy.recorder = recorder }
|
27
|
+
When { recorder.record }
|
28
28
|
When { strategy.perform }
|
29
29
|
|
30
|
-
Then {
|
31
|
-
Then {
|
32
|
-
Then {
|
33
|
-
Then {
|
34
|
-
Then {
|
35
|
-
Then {
|
36
|
-
Then {
|
37
|
-
Then {
|
38
|
-
Then {
|
39
|
-
Then {
|
40
|
-
Then {
|
41
|
-
Then {
|
30
|
+
Then { writer.frames[0] == "" }
|
31
|
+
Then { writer.frames[100] == "H" }
|
32
|
+
Then { writer.frames[200] == "He" }
|
33
|
+
Then { writer.frames[300] == "Hel" }
|
34
|
+
Then { writer.frames[400] == "Hell" }
|
35
|
+
Then { writer.frames[500] == "Hello" }
|
36
|
+
Then { writer.frames[600] == "Hello " }
|
37
|
+
Then { writer.frames[700] == "Hello W" }
|
38
|
+
Then { writer.frames[800] == "Hello Wo" }
|
39
|
+
Then { writer.frames[900] == "Hello Wor" }
|
40
|
+
Then { writer.frames[1000] == "Hello Worl" }
|
41
|
+
Then { writer.frames[1100] == "Hello World" }
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -41,33 +41,5 @@ module TRecs
|
|
41
41
|
When { strategy.recorder = recorder }
|
42
42
|
Then { strategy.recorder == recorder }
|
43
43
|
end
|
44
|
-
|
45
|
-
# context "perform" do
|
46
|
-
# Given { Spy.clear }
|
47
|
-
# Given(:recorder) { Spy.new("recorder").ignore }
|
48
|
-
|
49
|
-
# Given(:input_file) { "tmp/input_file.txt" }
|
50
|
-
# Given(:clock) { DummyClock.new }
|
51
|
-
|
52
|
-
# Given(:strategy) {
|
53
|
-
# RawFileStrategy.new(
|
54
|
-
# file: input_file,
|
55
|
-
# clock: clock)
|
56
|
-
# }
|
57
|
-
|
58
|
-
# When { recorder.stub(:step) { 100 } }
|
59
|
-
# When { strategy.recorder = recorder }
|
60
|
-
|
61
|
-
# When { strategy.perform }
|
62
|
-
# When {
|
63
|
-
# File.open(input_file, "rw") do |f|
|
64
|
-
# f.write "A"
|
65
|
-
# clock.sleep()
|
66
|
-
# end
|
67
|
-
# }
|
68
|
-
|
69
|
-
# When { strategy.stop }
|
70
|
-
# Then { recorder.calls[1] == [:current_frame, [ {time: 0, content: "A"} ] ] }
|
71
|
-
# end
|
72
44
|
end
|
73
45
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "strategies/strategy"
|
3
|
+
|
4
|
+
module TRecs
|
5
|
+
class MyStrategy < Strategy
|
6
|
+
attr_accessor :action
|
7
|
+
|
8
|
+
def perform
|
9
|
+
current_time(0)
|
10
|
+
current_content("A")
|
11
|
+
current_format("raw")
|
12
|
+
save_frame
|
13
|
+
|
14
|
+
current_time(10)
|
15
|
+
current_content("<p>B</p>")
|
16
|
+
current_format("html")
|
17
|
+
save_frame
|
18
|
+
|
19
|
+
current_time(50)
|
20
|
+
current_content("C")
|
21
|
+
save_frame
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe Strategy do
|
26
|
+
Given(:strategy) { MyStrategy.new }
|
27
|
+
|
28
|
+
context "recorder" do
|
29
|
+
When { strategy.recorder = :recorder }
|
30
|
+
Then { strategy.recorder == :recorder }
|
31
|
+
end
|
32
|
+
|
33
|
+
context "performing" do
|
34
|
+
Given(:writer) { InMemoryWriter.new }
|
35
|
+
When { strategy.write_frames_to(writer) }
|
36
|
+
|
37
|
+
Then { writer.frames[0].content == "A" }
|
38
|
+
Then { writer.frames[0].format == "raw" }
|
39
|
+
|
40
|
+
Then { writer.frames[10].content == "<p>B</p>" }
|
41
|
+
Then { writer.frames[10].format == "html" }
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -7,65 +7,67 @@ require "writers/in_memory_writer"
|
|
7
7
|
|
8
8
|
module TRecs
|
9
9
|
describe SwipeStrategy do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
10
|
+
skip("Modify Swipe")
|
11
|
+
#context "initialization" do
|
12
|
+
# When(:strategy) { SwipeStrategy.new }
|
13
|
+
# Then { expect(strategy).to have_raised(/key not found.*message/) }
|
14
|
+
#end
|
15
|
+
#
|
16
|
+
#context "performing" do
|
17
|
+
# Given(:writer) { InMemoryWriter.new }
|
18
|
+
# Given(:recorder) { Recorder.new(strategy: strategy, writer: writer) }
|
19
|
+
#
|
20
|
+
# When { strategy.recorder = recorder }
|
21
|
+
# When { recorder.record }
|
22
|
+
# When { strategy.perform }
|
23
|
+
#
|
24
|
+
# context "one char" do
|
25
|
+
# Given(:strategy) { SwipeStrategy.new(message: "a") }
|
26
|
+
# Then { writer.frames[0] == "*" }
|
27
|
+
# Then { writer.frames[100] == "|" }
|
28
|
+
# Then { writer.frames[200] == "a|" }
|
29
|
+
# Then { writer.frames[300] == "a" }
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# context "two chars" do
|
33
|
+
# Given(:strategy) { SwipeStrategy.new(message: "ab", step: 10) }
|
34
|
+
# Then { writer.frames[0] == "**" }
|
35
|
+
# Then { writer.frames[10] == "|*" }
|
36
|
+
# Then { writer.frames[20] == "a|" }
|
37
|
+
# Then { writer.frames[30] == "ab|" }
|
38
|
+
# Then { writer.frames[40] == "ab" }
|
39
|
+
# end
|
40
|
+
#
|
41
|
+
# context "multiple_lines" do
|
42
|
+
# Given(:strategy) { SwipeStrategy.new(message: "FIRST\nSECOND") }
|
43
|
+
# Then { writer.frames[0] == "******\n******" }
|
44
|
+
# Then { writer.frames[100] == "|*****\n|*****" }
|
45
|
+
# Then { writer.frames[200] == "F|****\nS|****" }
|
46
|
+
# Then { writer.frames[300] == "FI|***\nSE|***" }
|
47
|
+
# Then { writer.frames[400] == "FIR|**\nSEC|**" }
|
48
|
+
# Then { writer.frames[500] == "FIRS|*\nSECO|*" }
|
49
|
+
# Then { writer.frames[600] == "FIRST|\nSECON|" }
|
50
|
+
# Then { writer.frames[700] == "FIRST |\nSECOND|" }
|
51
|
+
# Then { writer.frames[800] == "FIRST\nSECOND" }
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
# context "swiper and hider" do
|
55
|
+
# context "swiper" do
|
56
|
+
# Given(:strategy) { SwipeStrategy.new(message: "a", swiper: ">") }
|
57
|
+
# Then { writer.frames[0] == "*" }
|
58
|
+
# Then { writer.frames[100] == ">" }
|
59
|
+
# Then { writer.frames[200] == "a>" }
|
60
|
+
# Then { writer.frames[300] == "a" }
|
61
|
+
# end
|
62
|
+
#
|
63
|
+
# context "hider" do
|
64
|
+
# Given(:strategy) { SwipeStrategy.new(message: "a", hider: "#") }
|
65
|
+
# Then { writer.frames[0] == "#" }
|
66
|
+
# Then { writer.frames[100] == "|" }
|
67
|
+
# Then { writer.frames[200] == "a|" }
|
68
|
+
# Then { writer.frames[300] == "a" }
|
69
|
+
# end
|
70
|
+
# end
|
71
|
+
#end
|
70
72
|
end
|
71
73
|
end
|
@@ -38,8 +38,11 @@ module TRecs
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
context "
|
42
|
-
|
41
|
+
context "render_frames" do
|
42
|
+
Given(:strategy) { InMemoryWriter.new }
|
43
|
+
Given(:frames) { { 0 => "A", 100 => "B" } }
|
44
|
+
When(:result) { strategy.render_frames(frames) }
|
45
|
+
Then { result == frames }
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trecs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
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-10-
|
11
|
+
date: 2014-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- spec/trecs/strategies/incremental_strategy_spec.rb
|
169
169
|
- spec/trecs/strategies/raw_file_strategy_spec.rb
|
170
170
|
- spec/trecs/strategies/shell_command_strategy_spec.rb
|
171
|
+
- spec/trecs/strategies/strategy_spec.rb
|
171
172
|
- spec/trecs/strategies/swipe_strategy_spec.rb
|
172
173
|
- spec/trecs/strategies/trecs_file_strategy_spec.rb
|
173
174
|
- spec/trecs/tickers/clock_ticker_spec.rb
|
@@ -217,6 +218,7 @@ test_files:
|
|
217
218
|
- spec/trecs/strategies/incremental_strategy_spec.rb
|
218
219
|
- spec/trecs/strategies/raw_file_strategy_spec.rb
|
219
220
|
- spec/trecs/strategies/shell_command_strategy_spec.rb
|
221
|
+
- spec/trecs/strategies/strategy_spec.rb
|
220
222
|
- spec/trecs/strategies/swipe_strategy_spec.rb
|
221
223
|
- spec/trecs/strategies/trecs_file_strategy_spec.rb
|
222
224
|
- spec/trecs/tickers/clock_ticker_spec.rb
|