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.
@@ -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.ctime state_dir
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.session_id = session_dir.gsub('.codersdojo/', '')
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
@@ -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(:ctime).with(".codersdojo/id0815/#{@state_dir_prefix}0").and_return @a_time
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"
@@ -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(:session_id=).with("session_id")
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(:session_id=).with("path_to_kata")
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: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 14
10
- version: 1.0.14
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-01 00:00:00 +01:00
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