trecs 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/Gemfile.lock +13 -1
- data/bin/trecs_message +4 -0
- data/lib/trecs/player.rb +128 -0
- data/lib/trecs/recorder.rb +59 -0
- data/lib/trecs/recording_strategies/custom_strategy.rb +5 -0
- data/lib/trecs/recording_strategies/hash_strategy.rb +17 -0
- data/lib/{recording_strategies/incremental_recording_strategy.rb → trecs/recording_strategies/incremental_strategy.rb} +4 -3
- data/lib/trecs/recording_strategies/raw_file_strategy.rb +54 -0
- data/lib/{recording_strategies → trecs/recording_strategies}/ttyrec_recording_strategy.rb +0 -0
- data/lib/{screens → trecs/screens}/terminal_screen.rb +0 -0
- data/lib/trecs/version.rb +1 -1
- data/lib/trecs/writers/in_memory_writer.rb +17 -0
- data/lib/{recorders/zip_file_recorder.rb → trecs/writers/zip_file_writer.rb} +9 -7
- data/lib/trecs.rb +3 -0
- data/{spec → old_specs}/player_spec.rb +0 -0
- data/{spec → old_specs/recorders}/zip_file_recorder_spec.rb +11 -5
- data/{spec → old_specs}/timestamps_spec.rb +0 -0
- data/{spec → old_specs}/trecs_message_spec.rb +0 -0
- data/{spec → old_specs}/trecs_spec.rb +0 -0
- data/pkg/trecs-0.0.3.gem +0 -0
- data/spec/spec_helper.rb +90 -20
- data/spec/trecs/player_spec.rb +76 -0
- data/spec/trecs/recorder_spec.rb +227 -0
- data/spec/trecs/recording_strategies/incremental_strategy_spec.rb +43 -0
- data/spec/trecs/recording_strategies/raw_file_strategy_spec.rb +66 -0
- data/spec/trecs/writers/in_memory_writer_spec.rb +45 -0
- data/trecs.gemspec +4 -1
- metadata +78 -41
- data/lib/player.rb +0 -76
- data/lib/recorder.rb +0 -74
- data/lib/recording_strategies/raw_file_recording_strategy.rb +0 -42
- data/spec/recorder_spec.rb +0 -249
@@ -0,0 +1,227 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "recorder"
|
3
|
+
require "recording_strategies/hash_strategy"
|
4
|
+
require "recording_strategies/custom_strategy"
|
5
|
+
|
6
|
+
module TRecs
|
7
|
+
describe Recorder do
|
8
|
+
context "initialization" do
|
9
|
+
Given(:writer) { OpenStruct.new }
|
10
|
+
Given(:strategy) { OpenStruct.new }
|
11
|
+
|
12
|
+
When(:recorder) {
|
13
|
+
Recorder.new(
|
14
|
+
writer: writer,
|
15
|
+
strategy: strategy,
|
16
|
+
)
|
17
|
+
}
|
18
|
+
|
19
|
+
Then { recorder.writer == writer }
|
20
|
+
Then { writer.recorder == recorder}
|
21
|
+
|
22
|
+
Then { recorder.strategy == strategy }
|
23
|
+
Then { strategy.recorder == recorder}
|
24
|
+
|
25
|
+
Then { recorder.step == 100}
|
26
|
+
end
|
27
|
+
|
28
|
+
context "Recording" do
|
29
|
+
Given { Spy.clear }
|
30
|
+
Given(:writer) { Spy.new("writer").ignore(:recorder=) }
|
31
|
+
Given(:strategy) { Spy.new("strategy").ignore(:recorder=) }
|
32
|
+
Given(:recorder) {
|
33
|
+
Recorder.new(writer: writer, strategy: strategy)
|
34
|
+
}
|
35
|
+
|
36
|
+
When { recorder.record }
|
37
|
+
|
38
|
+
Then { Spy.calls[1] == ["writer", :setup, []] }
|
39
|
+
Then { Spy.calls[2] == ["strategy", :perform, []] }
|
40
|
+
Then { Spy.calls[3] == ["writer", :render, []] }
|
41
|
+
end
|
42
|
+
|
43
|
+
context "#recording" do
|
44
|
+
Given(:writer) { OpenStruct.new }
|
45
|
+
Given(:strategy) { OpenStruct.new }
|
46
|
+
Given(:recorder) {
|
47
|
+
Recorder.new(writer: writer, strategy: strategy)
|
48
|
+
}
|
49
|
+
|
50
|
+
context "before start" do
|
51
|
+
Then { recorder.recording == false }
|
52
|
+
end
|
53
|
+
|
54
|
+
context "when recording" do
|
55
|
+
Given(:strategy) { CustomStrategy.new }
|
56
|
+
|
57
|
+
When(:recording) {
|
58
|
+
result = nil
|
59
|
+
strategy.action = -> { result = recorder.recording }
|
60
|
+
recorder.record
|
61
|
+
result
|
62
|
+
}
|
63
|
+
Then { recording == true }
|
64
|
+
end
|
65
|
+
|
66
|
+
context "after finished start" do
|
67
|
+
When { recorder.record }
|
68
|
+
Then { recorder.recording == false }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
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(:result) {
|
132
|
+
result = []
|
133
|
+
strategy.action = -> {
|
134
|
+
recorder.current_frame(time: 10, content: "CONTENT")
|
135
|
+
result << {
|
136
|
+
time: recorder.current_time,
|
137
|
+
content: recorder.current_content,
|
138
|
+
}
|
139
|
+
recorder.current_frame(time: 15, content: "CONTENT 2")
|
140
|
+
result << {
|
141
|
+
time: recorder.current_time,
|
142
|
+
content: recorder.current_content,
|
143
|
+
}
|
144
|
+
recorder.current_frame(time: 20, content: "CONTENT 2")
|
145
|
+
result << {
|
146
|
+
time: recorder.current_time,
|
147
|
+
content: recorder.current_content,
|
148
|
+
}
|
149
|
+
recorder.current_frame(time: 25, content: "CONTENT 3")
|
150
|
+
result << {
|
151
|
+
time: recorder.current_time,
|
152
|
+
content: recorder.current_content,
|
153
|
+
}
|
154
|
+
}
|
155
|
+
recorder.record
|
156
|
+
result
|
157
|
+
}
|
158
|
+
|
159
|
+
Then {
|
160
|
+
writer.calls[1] == [
|
161
|
+
:create_frame,
|
162
|
+
[ { time: 10, content: "CONTENT" } ]
|
163
|
+
]
|
164
|
+
}
|
165
|
+
Then {
|
166
|
+
writer.calls[2] == [
|
167
|
+
:create_frame,
|
168
|
+
[ { time: 15, content: "CONTENT 2" } ]
|
169
|
+
]
|
170
|
+
}
|
171
|
+
Then {
|
172
|
+
writer.calls[3] == [
|
173
|
+
:create_frame,
|
174
|
+
[ { time: 25, content: "CONTENT 3" } ]
|
175
|
+
]
|
176
|
+
}
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context "#next_timestamp" do
|
181
|
+
Given(:writer) { OpenStruct.new }
|
182
|
+
Given(:strategy) { OpenStruct.new }
|
183
|
+
|
184
|
+
Given(:recorder) {
|
185
|
+
Recorder.new(
|
186
|
+
writer: writer,
|
187
|
+
strategy: strategy,
|
188
|
+
step: 50
|
189
|
+
)
|
190
|
+
}
|
191
|
+
|
192
|
+
context "no stepping" do
|
193
|
+
Then { recorder.current_time == nil }
|
194
|
+
end
|
195
|
+
|
196
|
+
context "one step" do
|
197
|
+
When { recorder.next_timestamp == 0 }
|
198
|
+
Then { recorder.current_time == 0 }
|
199
|
+
end
|
200
|
+
|
201
|
+
context "two step" do
|
202
|
+
When {
|
203
|
+
recorder.next_timestamp
|
204
|
+
recorder.next_timestamp == 50
|
205
|
+
}
|
206
|
+
Then { recorder.current_time == 50 }
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
context "#next_timestamp" do
|
211
|
+
Given { Spy.clear }
|
212
|
+
Given(:writer) { OpenStruct.new }
|
213
|
+
Given(:strategy) { Spy.new("strategy").ignore(:recorder=) }
|
214
|
+
|
215
|
+
Given(:recorder) {
|
216
|
+
Recorder.new(
|
217
|
+
writer: writer,
|
218
|
+
strategy: strategy,
|
219
|
+
)
|
220
|
+
}
|
221
|
+
|
222
|
+
When { recorder.stop }
|
223
|
+
|
224
|
+
Then { strategy.calls[1] == [:stop, []] }
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "recording_strategies/incremental_strategy"
|
3
|
+
|
4
|
+
module TRecs
|
5
|
+
describe IncrementalStrategy do
|
6
|
+
context "initialization" do
|
7
|
+
When(:strategy1) { IncrementalStrategy.new(message: "HELLO") }
|
8
|
+
Then { strategy1.message == "HELLO" }
|
9
|
+
|
10
|
+
When(:strategy2) { IncrementalStrategy.new }
|
11
|
+
Then { expect(strategy2).to have_failed(KeyError, /message/) }
|
12
|
+
end
|
13
|
+
|
14
|
+
context "recorder" do
|
15
|
+
Given(:strategy) { IncrementalStrategy.new(message: "HELLO") }
|
16
|
+
Given(:recorder) { Object.new }
|
17
|
+
When { strategy.recorder = recorder }
|
18
|
+
Then { strategy.recorder == recorder }
|
19
|
+
end
|
20
|
+
|
21
|
+
context "perform" do
|
22
|
+
Given { Spy.clear }
|
23
|
+
Given(:recorder) { Spy.new("recorder") }
|
24
|
+
Given(:strategy) { IncrementalStrategy.new(message: "Hello World") }
|
25
|
+
|
26
|
+
When { recorder.stub(:step) { 100 } }
|
27
|
+
When { strategy.recorder = recorder }
|
28
|
+
When { strategy.perform }
|
29
|
+
|
30
|
+
Then { recorder.calls[1] == [:current_frame, [ {time: 0, content: "H"} ] ] }
|
31
|
+
Then { recorder.calls[2] == [:current_frame, [ {time: 100, content: "He"} ] ] }
|
32
|
+
Then { recorder.calls[3] == [:current_frame, [ {time: 200, content: "Hel"} ] ] }
|
33
|
+
Then { recorder.calls[4] == [:current_frame, [ {time: 300, content: "Hell"} ] ] }
|
34
|
+
Then { recorder.calls[5] == [:current_frame, [ {time: 400, content: "Hello"} ] ] }
|
35
|
+
Then { recorder.calls[6] == [:current_frame, [ {time: 500, content: "Hello "} ] ] }
|
36
|
+
Then { recorder.calls[7] == [:current_frame, [ {time: 600, content: "Hello W"} ] ] }
|
37
|
+
Then { recorder.calls[8] == [:current_frame, [ {time: 700, content: "Hello Wo"} ] ] }
|
38
|
+
Then { recorder.calls[9] == [:current_frame, [ {time: 800, content: "Hello Wor"} ] ] }
|
39
|
+
Then { recorder.calls[10] == [:current_frame, [ {time: 900, content: "Hello Worl"} ] ] }
|
40
|
+
Then { recorder.calls[11] == [:current_frame, [ {time: 1000, content: "Hello World"} ] ] }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "recording_strategies/raw_file_strategy"
|
3
|
+
|
4
|
+
module TRecs
|
5
|
+
describe RawFileStrategy do
|
6
|
+
context "initialization" do
|
7
|
+
When(:strategy) { RawFileStrategy.new(file: "tmp/input_file.txt") }
|
8
|
+
Then { Pathname(strategy.file).to_s == "tmp/input_file.txt" }
|
9
|
+
|
10
|
+
context "file keyword" do
|
11
|
+
When(:strategy) { RawFileStrategy.new }
|
12
|
+
Then { expect(strategy).to have_failed(KeyError, /file/) }
|
13
|
+
end
|
14
|
+
|
15
|
+
context "file existence" do
|
16
|
+
Given(:existent) { "tmp/exist.txt" }
|
17
|
+
Given(:inexistent) { "tmp/nope.txt" }
|
18
|
+
Given { FileUtils.touch(existent) }
|
19
|
+
Given { FileUtils.rm(inexistent, force: true) }
|
20
|
+
|
21
|
+
When(:strategy1) { RawFileStrategy.new(file: existent) }
|
22
|
+
Then { expect(strategy1).not_to have_failed }
|
23
|
+
|
24
|
+
When(:strategy2) { RawFileStrategy.new(file: inexistent) }
|
25
|
+
Then { expect(strategy2).to have_failed(Errno::ENOENT, /No such file or directory/) }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "recorder" do
|
30
|
+
Given(:strategy) {
|
31
|
+
RawFileStrategy.new(file: "tmp/input_file.txt")
|
32
|
+
}
|
33
|
+
Given(:recorder) { Object.new }
|
34
|
+
When { strategy.recorder = recorder }
|
35
|
+
Then { strategy.recorder == recorder }
|
36
|
+
end
|
37
|
+
|
38
|
+
# context "perform" do
|
39
|
+
# Given { Spy.clear }
|
40
|
+
# Given(:recorder) { Spy.new("recorder").ignore }
|
41
|
+
|
42
|
+
# Given(:input_file) { "tmp/input_file.txt" }
|
43
|
+
# Given(:clock) { DummyClock.new }
|
44
|
+
|
45
|
+
# Given(:strategy) {
|
46
|
+
# RawFileStrategy.new(
|
47
|
+
# file: input_file,
|
48
|
+
# clock: clock)
|
49
|
+
# }
|
50
|
+
|
51
|
+
# When { recorder.stub(:step) { 100 } }
|
52
|
+
# When { strategy.recorder = recorder }
|
53
|
+
|
54
|
+
# When { strategy.perform }
|
55
|
+
# When {
|
56
|
+
# File.open(input_file, "rw") do |f|
|
57
|
+
# f.write "A"
|
58
|
+
# clock.sleep()
|
59
|
+
# end
|
60
|
+
# }
|
61
|
+
|
62
|
+
# When { strategy.stop }
|
63
|
+
# Then { recorder.calls[1] == [:current_frame, [ {time: 0, content: "A"} ] ] }
|
64
|
+
# end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "writers/in_memory_writer"
|
3
|
+
|
4
|
+
module TRecs
|
5
|
+
describe InMemoryWriter do
|
6
|
+
context "recorder" do
|
7
|
+
Given(:writer) {
|
8
|
+
InMemoryWriter.new
|
9
|
+
}
|
10
|
+
Given(:recorder) { Object.new }
|
11
|
+
When { writer.recorder = recorder }
|
12
|
+
Then { writer.recorder == recorder }
|
13
|
+
end
|
14
|
+
|
15
|
+
context "recording frames" do
|
16
|
+
Given(:writer) {
|
17
|
+
InMemoryWriter.new
|
18
|
+
}
|
19
|
+
Given(:recorder) { Object.new }
|
20
|
+
|
21
|
+
context "after setup" do
|
22
|
+
When { writer.setup }
|
23
|
+
Then { writer.frames == {} }
|
24
|
+
end
|
25
|
+
|
26
|
+
context "after recording frames" do
|
27
|
+
When { writer.setup }
|
28
|
+
When { writer.create_frame(time: 0, content: "A") }
|
29
|
+
When { writer.create_frame(time: 100, content: "B") }
|
30
|
+
When { writer.create_frame(time: 200, content: "C") }
|
31
|
+
|
32
|
+
Then {
|
33
|
+
writer.frames == {
|
34
|
+
0 => "A",
|
35
|
+
100 => "B",
|
36
|
+
200 => "C",
|
37
|
+
} }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "render" do
|
42
|
+
Then { InMemoryWriter.new.respond_to?(:render) == true }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/trecs.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0")
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
-
spec.require_paths = ["lib", "bin"]
|
20
|
+
spec.require_paths = ["lib", "lib/trecs", "bin"]
|
21
21
|
|
22
22
|
# Dependencies
|
23
23
|
spec.add_dependency "rubyzip", "~> 1.1.4"
|
@@ -28,4 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency "rake"
|
29
29
|
spec.add_development_dependency "rspec", "~> 2.12"
|
30
30
|
spec.add_development_dependency "rspec-given", "~> 3.5.4"
|
31
|
+
|
32
|
+
spec.add_development_dependency "pry"
|
33
|
+
spec.add_development_dependency "pry-nav"
|
31
34
|
end
|
metadata
CHANGED
@@ -1,99 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trecs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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-06-
|
11
|
+
date: 2014-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.1.4
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.1.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: trollop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.6'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.6'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '2.12'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.12'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec-given
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 3.5.4
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 3.5.4
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-nav
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: Record text screencasts.
|
98
126
|
email:
|
99
127
|
- iachetti.federico@gmail.com
|
@@ -105,11 +133,11 @@ executables:
|
|
105
133
|
extensions: []
|
106
134
|
extra_rdoc_files: []
|
107
135
|
files:
|
108
|
-
- .bundle/config
|
109
|
-
- .gitignore
|
110
|
-
- .rspec
|
111
|
-
- .spec
|
112
|
-
- .travis.yml
|
136
|
+
- ".bundle/config"
|
137
|
+
- ".gitignore"
|
138
|
+
- ".rspec"
|
139
|
+
- ".spec"
|
140
|
+
- ".travis.yml"
|
113
141
|
- Gemfile
|
114
142
|
- Gemfile.lock
|
115
143
|
- LICENCE.txt
|
@@ -120,37 +148,46 @@ files:
|
|
120
148
|
- bin/trecs_raw_file
|
121
149
|
- bin/trecs_terminal
|
122
150
|
- doc/steps.org
|
123
|
-
- lib/player.rb
|
124
151
|
- lib/players/zip_file_player.rb
|
125
|
-
- lib/recorder.rb
|
126
152
|
- lib/recorders/message_recorder.rb
|
127
153
|
- lib/recorders/raw_file_recorder.rb
|
128
154
|
- lib/recorders/ttyrec_recorder.rb
|
129
|
-
- lib/recorders/zip_file_recorder.rb
|
130
|
-
- lib/recording_strategies/incremental_recording_strategy.rb
|
131
|
-
- lib/recording_strategies/raw_file_recording_strategy.rb
|
132
|
-
- lib/recording_strategies/ttyrec_recording_strategy.rb
|
133
155
|
- lib/recording_strategy.rb
|
134
|
-
- lib/screens/terminal_screen.rb
|
135
156
|
- lib/timestamps.rb
|
157
|
+
- lib/trecs.rb
|
158
|
+
- lib/trecs/player.rb
|
159
|
+
- lib/trecs/recorder.rb
|
160
|
+
- lib/trecs/recording_strategies/custom_strategy.rb
|
161
|
+
- lib/trecs/recording_strategies/hash_strategy.rb
|
162
|
+
- lib/trecs/recording_strategies/incremental_strategy.rb
|
163
|
+
- lib/trecs/recording_strategies/raw_file_strategy.rb
|
164
|
+
- lib/trecs/recording_strategies/ttyrec_recording_strategy.rb
|
165
|
+
- lib/trecs/screens/terminal_screen.rb
|
136
166
|
- lib/trecs/version.rb
|
167
|
+
- lib/trecs/writers/in_memory_writer.rb
|
168
|
+
- lib/trecs/writers/zip_file_writer.rb
|
169
|
+
- old_specs/player_spec.rb
|
170
|
+
- old_specs/recorders/zip_file_recorder_spec.rb
|
171
|
+
- old_specs/timestamps_spec.rb
|
172
|
+
- old_specs/trecs_message_spec.rb
|
173
|
+
- old_specs/trecs_spec.rb
|
137
174
|
- pkg/trecs-0.0.1.alpha.gem
|
138
175
|
- pkg/trecs-0.0.1.alpha2.gem
|
139
176
|
- pkg/trecs-0.0.2.alpha.gem
|
140
177
|
- pkg/trecs-0.0.2.alpha2.gem
|
178
|
+
- pkg/trecs-0.0.3.gem
|
141
179
|
- sandbox/create_recording.rb
|
142
180
|
- sandbox/lipsum_end
|
143
181
|
- sandbox/lipsum_start
|
144
182
|
- sandbox/record
|
145
183
|
- sandbox/record_diff
|
146
184
|
- sandbox/record_script_file
|
147
|
-
- spec/player_spec.rb
|
148
|
-
- spec/recorder_spec.rb
|
149
185
|
- spec/spec_helper.rb
|
150
|
-
- spec/
|
151
|
-
- spec/
|
152
|
-
- spec/
|
153
|
-
- spec/
|
186
|
+
- spec/trecs/player_spec.rb
|
187
|
+
- spec/trecs/recorder_spec.rb
|
188
|
+
- spec/trecs/recording_strategies/incremental_strategy_spec.rb
|
189
|
+
- spec/trecs/recording_strategies/raw_file_strategy_spec.rb
|
190
|
+
- spec/trecs/writers/in_memory_writer_spec.rb
|
154
191
|
- tmp/.gitignore
|
155
192
|
- trecs.gemspec
|
156
193
|
homepage: ''
|
@@ -161,15 +198,16 @@ post_install_message:
|
|
161
198
|
rdoc_options: []
|
162
199
|
require_paths:
|
163
200
|
- lib
|
201
|
+
- lib/trecs
|
164
202
|
- bin
|
165
203
|
required_ruby_version: !ruby/object:Gem::Requirement
|
166
204
|
requirements:
|
167
|
-
- -
|
205
|
+
- - ">="
|
168
206
|
- !ruby/object:Gem::Version
|
169
207
|
version: '0'
|
170
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
209
|
requirements:
|
172
|
-
- -
|
210
|
+
- - ">="
|
173
211
|
- !ruby/object:Gem::Version
|
174
212
|
version: '0'
|
175
213
|
requirements: []
|
@@ -177,12 +215,11 @@ rubyforge_project:
|
|
177
215
|
rubygems_version: 2.2.2
|
178
216
|
signing_key:
|
179
217
|
specification_version: 4
|
180
|
-
summary:
|
218
|
+
summary: 'TRecs: Text Recordings.'
|
181
219
|
test_files:
|
182
|
-
- spec/player_spec.rb
|
183
|
-
- spec/recorder_spec.rb
|
184
220
|
- spec/spec_helper.rb
|
185
|
-
- spec/
|
186
|
-
- spec/
|
187
|
-
- spec/
|
188
|
-
- spec/
|
221
|
+
- spec/trecs/player_spec.rb
|
222
|
+
- spec/trecs/recorder_spec.rb
|
223
|
+
- spec/trecs/recording_strategies/incremental_strategy_spec.rb
|
224
|
+
- spec/trecs/recording_strategies/raw_file_strategy_spec.rb
|
225
|
+
- spec/trecs/writers/in_memory_writer_spec.rb
|