codersdojo 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
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: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 10
10
- version: 1.0.10
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: 2010-12-30 00:00:00 +01:00
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