codersdojo 1.5.04 → 1.5.05

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.
@@ -1,8 +1,8 @@
1
1
  require 'record/session_id_generator'
2
2
  require 'run/runner'
3
3
  require 'state_reader'
4
- require 'shell_argument_exception'
5
- require 'shell_wrapper'
4
+ require 'shellutils/shell_argument_exception'
5
+ require 'shellutils/shell_wrapper'
6
6
  require 'console_view'
7
7
  require 'commands/help_command'
8
8
  require 'commands/xhelp_command'
data/lib/console_view.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'shell_wrapper'
1
+ require 'shellutils/shell_wrapper'
2
2
  require 'scaffold/text_template_machine'
3
3
  require 'property_file_missing_exception'
4
4
 
@@ -1,4 +1,4 @@
1
- require 'shell_wrapper'
1
+ require 'shellutils/shell_wrapper'
2
2
 
3
3
  class FilenameFormatter
4
4
 
@@ -1,17 +1,9 @@
1
+ require 'shellutils/date_time_formatter'
2
+
1
3
  class SessionIdGenerator
2
4
 
3
5
  def generate_id time=Time.new
4
- year = format_to_length time.year, 4
5
- month = format_to_length time.month, 2
6
- day = format_to_length time.day, 2
7
- hour = format_to_length time.hour, 2
8
- minute = format_to_length time.min, 2
9
- second = format_to_length time.sec, 2
10
- "#{year}-#{month}-#{day}_#{hour}-#{minute}-#{second}"
6
+ DateTimeFormatter.new.format time
11
7
  end
12
8
 
13
- def format_to_length value, len
14
- value.to_s.rjust len,"0"
15
- end
16
-
17
9
  end
@@ -0,0 +1,48 @@
1
+ require "record/text_converter"
2
+ require "record/return_code_evaluator"
3
+
4
+ class StateRecorder
5
+
6
+ attr_accessor :step, :session_id
7
+
8
+ def initialize shell, session_id_generator, meta_config_file
9
+ @shell = shell
10
+ @session_id_generator = session_id_generator
11
+ @meta_config_file = meta_config_file
12
+ @filename_formatter = FilenameFormatter.new
13
+ end
14
+
15
+ def init_session
16
+ @step = 0
17
+ @session_id = @session_id_generator.generate_id
18
+ session_dir = @filename_formatter.session_dir @session_id
19
+ @shell.mkdir_p session_dir
20
+ session_dir
21
+ end
22
+
23
+ def record_state files, process
24
+ result = TextConverter.new.remove_escape_sequences process.output
25
+ return_code_evaluator = ReturnCodeEvaluator.new @meta_config_file.success_detection
26
+ return_code = return_code_evaluator.return_code(process)
27
+ state_dir = @filename_formatter.state_dir @session_id, @step
28
+ now = Time.new
29
+ date = now.strftime "%Y-%m-%d"
30
+ time = now.strftime "%H:%M:%S"
31
+ @shell.mkdir state_dir
32
+ @shell.cp_r files, state_dir
33
+ write_result_file state_dir, result
34
+ write_info_file (state_dir, {:return_code => return_code, :date => date, :time => time})
35
+ @step += 1
36
+ end
37
+
38
+ def write_result_file state_dir, result
39
+ @shell.write_file @filename_formatter.result_file(state_dir), result
40
+ end
41
+
42
+ def write_info_file state_dir, properties
43
+ content = properties.collect{|key, value| "#{key}: #{value}"}.join "\n"
44
+ @shell.write_file @filename_formatter.info_file(state_dir), content
45
+ end
46
+
47
+ end
48
+
data/lib/run/runner.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require "info_property_file"
2
2
  require "filename_formatter"
3
- require "run/text_converter"
4
- require "record/return_code_evaluator"
3
+ require "record/state_recorder"
5
4
 
6
5
  class Runner
7
6
 
@@ -9,29 +8,25 @@ class Runner
9
8
 
10
9
  WORKING_DIR = '.'
11
10
 
12
- def initialize shell, session_provider, view, meta_config_file
11
+ def initialize shell, session_id_generator, view, meta_config_file
13
12
  @filename_formatter = FilenameFormatter.new
14
13
  @shell = shell
15
- @session_provider = session_provider
14
+ @session_id_generator = session_id_generator
16
15
  @view = view
17
16
  @meta_config_file = meta_config_file
18
17
  end
19
18
 
20
19
  def start
20
+ @state_recorder = StateRecorder.new(@shell, @session_id_generator, @meta_config_file)
21
21
  init_session
22
22
  execute
23
23
  end
24
24
 
25
25
  def init_session
26
- @step = 0
27
- @session_id = @session_provider.generate_id
28
- session_dir = @filename_formatter.session_dir @session_id
29
- @shell.mkdir_p(session_dir)
30
- session_dir
26
+ @state_recorder.init_session
31
27
  end
32
28
 
33
29
  def execute
34
- return_code_evaluator = ReturnCodeEvaluator.new @meta_config_file.success_detection
35
30
  files = @shell.files_in_dir_tree WORKING_DIR, @source_files
36
31
  newest_dir_entry = @shell.newest_dir_entry WORKING_DIR, files
37
32
  change_time = @shell.modification_time newest_dir_entry
@@ -41,20 +36,13 @@ class Runner
41
36
  end
42
37
  Progress.end
43
38
  @view.show_run_once_message newest_dir_entry, change_time
44
- execute_once files, @session_id, @step, return_code_evaluator
45
- @step += 1
39
+ execute_once files
46
40
  @previous_change_time = change_time
47
41
  end
48
42
 
49
- def execute_once files, session_id, step, return_code_evaluator
43
+ def execute_once files
50
44
  process = @shell.execute @run_command
51
- result = TextConverter.new.remove_escape_sequences process.output
52
- state_dir = @filename_formatter.state_dir session_id, step
53
- return_code = return_code_evaluator.return_code(process)
54
- @shell.mkdir state_dir
55
- @shell.cp_r files, state_dir
56
- @shell.write_file @filename_formatter.result_file(state_dir), result
57
- @shell.write_file @filename_formatter.info_file(state_dir), "#{InfoPropertyFile.RETURN_CODE_PROPERTY}: #{return_code}"
45
+ @state_recorder.record_state files, process
58
46
  end
59
47
 
60
48
  def run_command= command
data/lib/state_reader.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'info_property_file'
2
- require 'filename'
2
+ require 'shellutils/filename'
3
3
  require 'filename_formatter'
4
4
  require 'state'
5
5
 
@@ -2,11 +2,11 @@ require 'json'
2
2
  require 'state'
3
3
  require 'state_reader'
4
4
  require 'upload/xml_element_extractor'
5
- require 'progress'
5
+ require 'shellutils/progress'
6
6
  require 'filename_formatter'
7
7
  require 'rest_client'
8
- require 'shell_wrapper'
9
- require 'session_zipper'
8
+ require 'shellutils/shell_wrapper'
9
+ require 'shellutils/session_zipper'
10
10
 
11
11
  class Uploader
12
12
 
@@ -32,7 +32,7 @@ class Uploader
32
32
  end
33
33
 
34
34
  def upload_kata_and_states
35
- upload_zipped_kata zip_kata
35
+ # upload_zipped_kata zip_kata
36
36
  read_states
37
37
  kata = upload_kata
38
38
  finish_url = "#{@hostname}#{@@description_path}/#{XMLElementExtractor.extract('kata/private-uuid', kata)}"
@@ -56,11 +56,12 @@ class Uploader
56
56
  end
57
57
 
58
58
  def zip_kata
59
- # SessionZipper.new.compress @session_dir
59
+ SessionZipper.new.compress @session_dir
60
60
  end
61
61
 
62
- def upload_zipped_kata zip_file
62
+ def upload_zipped_kata zip_file_name
63
63
  # RestClient.post "#{@hostname}#{@@zipped_kata_path}", {:zipped_kata => zip_file}
64
+ RestClient::Resource.new("#{@hostname}#{@@zipped_kata_path}").post(:transfer => { :path => "kata.zip" }, :upload => File.new(zip_file_name, 'rb'))
64
65
  end
65
66
 
66
67
  private
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 5
8
- - 4
9
- version: 1.5.04
8
+ - 5
9
+ version: 1.5.05
10
10
  platform: ruby
11
11
  authors:
12
12
  - CodersDojo-Team
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-09-15 00:00:00 +02:00
17
+ date: 2011-09-18 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -69,8 +69,8 @@ dependencies:
69
69
  segments:
70
70
  - 0
71
71
  - 0
72
- - 1
73
- version: 0.0.1
72
+ - 6
73
+ version: 0.0.6
74
74
  type: :runtime
75
75
  version_requirements: *id004
76
76
  description: Client executes tests in an endless loop and logs source code and test result for later uplaod.
@@ -100,9 +100,10 @@ files:
100
100
  - lib/property_file_missing_exception.rb
101
101
  - lib/record/return_code_evaluator.rb
102
102
  - lib/record/session_id_generator.rb
103
+ - lib/record/state_recorder.rb
104
+ - lib/record/text_converter.rb
103
105
  - lib/run/runner.rb
104
106
  - lib/run/scheduler.rb
105
- - lib/run/text_converter.rb
106
107
  - lib/scaffold/scaffolder.rb
107
108
  - lib/scaffold/text_template_machine.rb
108
109
  - lib/state.rb
File without changes