codersdojo 1.0.10 → 1.0.11
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.
- data/app/runner.rb +2 -0
- data/app/text_converter.rb +19 -0
- data/spec/runner_spec.rb +6 -0
- data/spec/text_converter_spec.rb +30 -0
- metadata +7 -4
data/app/runner.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "filename_formatter"
|
|
2
|
+
require "text_converter"
|
|
2
3
|
|
|
3
4
|
class Runner
|
|
4
5
|
|
|
@@ -27,6 +28,7 @@ class Runner
|
|
|
27
28
|
return
|
|
28
29
|
end
|
|
29
30
|
result = @shell.execute @run_command
|
|
31
|
+
result = TextConverter.new.remove_escape_sequences result
|
|
30
32
|
state_dir = @filename_formatter.state_dir @session_id, @step
|
|
31
33
|
@shell.mkdir state_dir
|
|
32
34
|
@shell.cp @file, state_dir
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class TextConverter
|
|
2
|
+
|
|
3
|
+
@@ESCAPE_SEQUENCE_START = 0x1b.chr
|
|
4
|
+
@@ESCAPE_SEQUENCE_END = 0x6d.chr
|
|
5
|
+
|
|
6
|
+
def self.ESCAPE_SEQUENCE_START
|
|
7
|
+
@@ESCAPE_SEQUENCE_START
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.ESCAPE_SEQUENCE_END
|
|
11
|
+
@@ESCAPE_SEQUENCE_END
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def remove_escape_sequences text
|
|
15
|
+
if text.nil? then return nil end
|
|
16
|
+
text.gsub(/#{@@ESCAPE_SEQUENCE_START}.*?#{@@ESCAPE_SEQUENCE_END}/, '')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
data/spec/runner_spec.rb
CHANGED
|
@@ -55,5 +55,11 @@ describe Runner, "in run mode" do
|
|
|
55
55
|
@runner.start
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
+
it "should remove escape sequences" do
|
|
59
|
+
@shell_mock.should_receive(:execute).and_return "#{TextConverter.ESCAPE_SEQUENCE_START}b#{TextConverter.ESCAPE_SEQUENCE_END}c"
|
|
60
|
+
@shell_mock.should_receive(:write_file).with "#{STATE_DIR_PREFIX}0/result.txt", "c"
|
|
61
|
+
@runner.start
|
|
62
|
+
end
|
|
63
|
+
|
|
58
64
|
end
|
|
59
65
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'text_converter'
|
|
2
|
+
|
|
3
|
+
describe TextConverter do
|
|
4
|
+
|
|
5
|
+
before (:each) do
|
|
6
|
+
@escape_sequence_start = 0x1b.chr
|
|
7
|
+
@escape_sequence_end = 0x6d.chr
|
|
8
|
+
@text_converter = TextConverter.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should leave nil as nil" do
|
|
12
|
+
@text_converter.remove_escape_sequences(nil).should be_nil
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should leave text without escape sequences untouched" do
|
|
17
|
+
@text_converter.remove_escape_sequences("text without escape sequence").should == "text without escape sequence"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should remove escape sequences from text" do
|
|
21
|
+
@text_converter.remove_escape_sequences("#{@escape_sequence_start}ab#{@escape_sequence_end}").should == ""
|
|
22
|
+
@text_converter.remove_escape_sequences("a#{@escape_sequence_start}b#{@escape_sequence_end}c").should == "ac"
|
|
23
|
+
@text_converter.remove_escape_sequences("ab#{@escape_sequence_start}#{@escape_sequence_end}cd").should == "abcd"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should remove escape sequences non greedy" do
|
|
27
|
+
@text_converter.remove_escape_sequences("#{@escape_sequence_start}a#{@escape_sequence_end}b#{@escape_sequence_start}c#{@escape_sequence_end}").should == "b"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: codersdojo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 1
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 1.0.
|
|
9
|
+
- 11
|
|
10
|
+
version: 1.0.11
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- CodersDojo-Team
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date:
|
|
18
|
+
date: 2011-01-01 00:00:00 +01:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|
|
@@ -54,6 +54,7 @@ files:
|
|
|
54
54
|
- app/shell_argument_exception.rb
|
|
55
55
|
- app/shell_wrapper.rb
|
|
56
56
|
- app/state_reader.rb
|
|
57
|
+
- app/text_converter.rb
|
|
57
58
|
- app/text_template_machine.rb
|
|
58
59
|
- app/uploader.rb
|
|
59
60
|
- app/xml_element_extractor.rb
|
|
@@ -90,6 +91,7 @@ files:
|
|
|
90
91
|
- spec/scaffolder_spec.rb
|
|
91
92
|
- spec/session_id_generator_spec.rb
|
|
92
93
|
- spec/state_reader_spec.rb
|
|
94
|
+
- spec/text_converter_spec.rb
|
|
93
95
|
- spec/text_template_machine_spec.rb
|
|
94
96
|
- spec/uploader_spec.rb
|
|
95
97
|
- spec/xml_element_extractor_spec.rb
|
|
@@ -135,6 +137,7 @@ test_files:
|
|
|
135
137
|
- spec/scaffolder_spec.rb
|
|
136
138
|
- spec/session_id_generator_spec.rb
|
|
137
139
|
- spec/state_reader_spec.rb
|
|
140
|
+
- spec/text_converter_spec.rb
|
|
138
141
|
- spec/text_template_machine_spec.rb
|
|
139
142
|
- spec/uploader_spec.rb
|
|
140
143
|
- spec/xml_element_extractor_spec.rb
|