codersdojo 1.0.14 → 1.0.15
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/filename_formatter.rb +6 -1
- data/app/state_reader.rb +7 -2
- data/app/uploader.rb +2 -1
- data/spec/filename_formatter_spec.rb +17 -0
- data/spec/state_reader_spec.rb +1 -1
- data/spec/uploader_spec.rb +2 -2
- metadata +6 -4
data/app/filename_formatter.rb
CHANGED
@@ -10,7 +10,7 @@ class FilenameFormatter
|
|
10
10
|
|
11
11
|
def source_code_file state_dir
|
12
12
|
Dir.entries(state_dir).each { |file|
|
13
|
-
return state_file state_dir, file unless file =='..' || file == '.' ||file == RESULT_FILE }
|
13
|
+
return state_file state_dir, file unless file =='..' || file == '.' || file == RESULT_FILE }
|
14
14
|
end
|
15
15
|
|
16
16
|
def result_file state_dir
|
@@ -30,5 +30,10 @@ class FilenameFormatter
|
|
30
30
|
"#{CODERSDOJO_WORKSPACE}/#{session_id}"
|
31
31
|
end
|
32
32
|
|
33
|
+
def extract_last_path_item dir_path
|
34
|
+
last = dir_path.split(File::Separator).last
|
35
|
+
last.nil? ? "" : last
|
36
|
+
end
|
37
|
+
|
33
38
|
end
|
34
39
|
|
data/app/state_reader.rb
CHANGED
@@ -2,7 +2,7 @@ require 'filename_formatter'
|
|
2
2
|
|
3
3
|
class StateReader
|
4
4
|
|
5
|
-
attr_accessor :session_id, :next_step
|
5
|
+
attr_accessor :session_id, :session_dir, :next_step
|
6
6
|
|
7
7
|
def initialize shell
|
8
8
|
@filename_formatter = FilenameFormatter.new
|
@@ -10,6 +10,11 @@ class StateReader
|
|
10
10
|
@next_step = 0
|
11
11
|
end
|
12
12
|
|
13
|
+
def session_dir= session_dir
|
14
|
+
@session_dir = session_dir
|
15
|
+
@session_id = @filename_formatter.extract_last_path_item @session_dir
|
16
|
+
end
|
17
|
+
|
13
18
|
def state_count
|
14
19
|
dummy_dirs_current_and_parent = 2
|
15
20
|
Dir.new(@filename_formatter.session_dir @session_id).count - dummy_dirs_current_and_parent
|
@@ -34,7 +39,7 @@ class StateReader
|
|
34
39
|
def read_next_state
|
35
40
|
state = State.new
|
36
41
|
state_dir = get_state_dir
|
37
|
-
state.time = @shell.
|
42
|
+
state.time = @shell.creation_time state_dir
|
38
43
|
state.code = @shell.read_file @filename_formatter.source_code_file(state_dir)
|
39
44
|
state.result = @shell.read_file @filename_formatter.result_file(state_dir)
|
40
45
|
@next_step += 1
|
data/app/uploader.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'state_reader'
|
2
2
|
require 'progress'
|
3
|
+
require 'filename_formatter'
|
3
4
|
require 'xml_element_extractor'
|
4
5
|
require 'rest_client'
|
5
6
|
|
@@ -9,7 +10,7 @@ class Uploader
|
|
9
10
|
@hostname = hostname
|
10
11
|
@framework = framework
|
11
12
|
@state_reader = state_reader
|
12
|
-
@state_reader.
|
13
|
+
@state_reader.session_dir = session_dir
|
13
14
|
end
|
14
15
|
|
15
16
|
def upload_kata
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'filename_formatter'
|
2
|
+
|
3
|
+
describe FilenameFormatter do
|
4
|
+
|
5
|
+
before (:each) do
|
6
|
+
@formatter = FilenameFormatter.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'extract the last element of a dir path' do
|
10
|
+
@formatter.extract_last_path_item("").should == ""
|
11
|
+
@formatter.extract_last_path_item("/").should == ""
|
12
|
+
@formatter.extract_last_path_item("a").should == "a"
|
13
|
+
@formatter.extract_last_path_item("a/b/").should == "b"
|
14
|
+
@formatter.extract_last_path_item("/a/b/c").should == "c"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/spec/state_reader_spec.rb
CHANGED
@@ -12,7 +12,7 @@ describe StateReader do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should read a stored kata state" do
|
15
|
-
@shell_mock.should_receive(:
|
15
|
+
@shell_mock.should_receive(:creation_time).with(".codersdojo/id0815/#{@state_dir_prefix}0").and_return @a_time
|
16
16
|
Dir.should_receive(:entries).with(".codersdojo/id0815/#{@state_dir_prefix}0").and_return(['.','..','file.rb', 'result.txt'])
|
17
17
|
@shell_mock.should_receive(:read_file).with(".codersdojo/id0815/#{@state_dir_prefix}0/result.txt").and_return "result"
|
18
18
|
@shell_mock.should_receive(:read_file).with(".codersdojo/id0815/#{@state_dir_prefix}0/file.rb").and_return "source code"
|
data/spec/uploader_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Uploader do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should convert session-dir to session-id" do
|
10
|
-
@state_reader_mock.should_receive(:
|
10
|
+
@state_reader_mock.should_receive(:session_dir=).with(".codersdojo/session_id")
|
11
11
|
Uploader.new "http://dummy_host", "dummy.framework", ".codersdojo/session_id", @state_reader_mock
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ describe Uploader do
|
|
15
15
|
|
16
16
|
before (:each) do
|
17
17
|
@state_reader_mock = mock StateReader
|
18
|
-
@state_reader_mock.should_receive(:
|
18
|
+
@state_reader_mock.should_receive(:session_dir=).with("path_to_kata")
|
19
19
|
@uploader = Uploader.new "http://dummy_host", "dummy.framework", "path_to_kata", @state_reader_mock
|
20
20
|
end
|
21
21
|
|
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: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 15
|
10
|
+
version: 1.0.15
|
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: 2011-01-
|
18
|
+
date: 2011-01-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- templates/ruby.test-unit/run-once.%sh%
|
87
87
|
- lib/place_libs_here
|
88
88
|
- spec/argument_parser_spec.rb
|
89
|
+
- spec/filename_formatter_spec.rb
|
89
90
|
- spec/progress_spec.rb
|
90
91
|
- spec/runner_spec.rb
|
91
92
|
- spec/scaffolder_spec.rb
|
@@ -132,6 +133,7 @@ specification_version: 3
|
|
132
133
|
summary: Client for CodersDojo.org
|
133
134
|
test_files:
|
134
135
|
- spec/argument_parser_spec.rb
|
136
|
+
- spec/filename_formatter_spec.rb
|
135
137
|
- spec/progress_spec.rb
|
136
138
|
- spec/runner_spec.rb
|
137
139
|
- spec/scaffolder_spec.rb
|