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 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