codersdojo 1.5.04 → 1.5.05

Sign up to get free protection for your applications and to get access to all the features.
@@ -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