codersdojo 1.1.09 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
data/app/console_view.rb CHANGED
@@ -1,13 +1,15 @@
1
1
  require 'shell_wrapper'
2
+ require 'text_template_machine'
2
3
 
3
4
  class ConsoleView
4
5
 
5
6
  def initialize scaffolder
6
7
  @scaffolder = scaffolder
8
+ @template_machine = TextTemplateMachineFactory.create ShellWrapper.new
7
9
  end
8
10
 
9
11
  def show_help
10
- puts <<-helptext
12
+ show <<-helptext
11
13
  CodersDojo-Client, http://www.codersdojo.org, Copyright by it-agile GmbH (http://www.it-agile.de)
12
14
  CodersDojo-Client automatically runs your code kata, logs the progress and uploads the kata to codersdojo.org.
13
15
 
@@ -16,7 +18,7 @@ helptext
16
18
  end
17
19
 
18
20
  def show_usage
19
- puts <<-helptext
21
+ show <<-helptext
20
22
  Usage: #{$0} command [options]
21
23
  Commands:
22
24
  help, -h, --help Print this help text.
@@ -50,7 +52,7 @@ helptext
50
52
 
51
53
  def show_help_setup
52
54
  templates = @scaffolder.list_templates
53
- puts <<-helptext
55
+ show <<-helptext
54
56
 
55
57
  setup <framework> <kata_file_no_ext> Setup the environment for the kata for the given framework and kata file.
56
58
  The kata_file should not have an extension. Use 'prime' and not 'prime.java'.
@@ -58,13 +60,13 @@ setup <framework> <kata_file_no_ext> Setup the environment for the kata for the
58
60
  Use ??? as framework if your framework isn't in the list.
59
61
 
60
62
  Example:
61
- :/dojo/my_kata% #{$0} setup ruby.test-unit prime
63
+ :%/%dojo%/%my_kata$ #{$0} setup ruby.test-unit prime
62
64
  Show the instructions how to setup the environment for kata execution with Ruby and test/unit.
63
65
  helptext
64
66
  end
65
67
 
66
68
  def show_help_start
67
- puts <<-helptext
69
+ show <<-helptext
68
70
 
69
71
  start <shell_command> <kata_file> Start the continuous test runner, that runs <shell-command> whenever <kata_file>
70
72
  changes. The <kata_file> has to include the whole source code of the kata.
@@ -74,7 +76,7 @@ helptext
74
76
  end
75
77
 
76
78
  def show_help_upload
77
- puts <<-helptext
79
+ show <<-helptext
78
80
 
79
81
  upload Upload the newest kata session in .codersdojo to codersdojo.com.
80
82
 
@@ -82,16 +84,16 @@ upload <session_directory> Upload the kata <session_directory> to codersdojo.co
82
84
  <session_directory> is relative to the working directory.
83
85
 
84
86
  Examples:
85
- :/dojo/my_kata$ #{$0} upload
87
+ :%/%dojo%/%my_kata$ #{$0} upload
86
88
  Upload the newest kata located in directory ".codersdojo" to codersdojo.com.
87
- :/dojo/my_kata$ #{$0} upload .codersdojo/2010-11-02_16-21-53
88
- Upload the kata located in directory ".codersdojo/2010-11-02_16-21-53" to codersdojo.com.
89
+ :%/%dojo%/%my_kata$ #{$0} upload .codersdojo%/%2010-11-02_16-21-53
90
+ Upload the kata located in directory ".codersdojo%/%2010-11-02_16-21-53" to codersdojo.com.
89
91
  helptext
90
92
  end
91
93
 
92
94
  def show_help_upload_with_framework
93
95
  templates = @scaffolder.list_templates
94
- puts <<-helptext
96
+ show <<-helptext
95
97
 
96
98
  upload-with-framework <framework> [<session_directory>]
97
99
  Upload the kata written with <framework> in <session_directory> to codersdojo.com.
@@ -101,36 +103,40 @@ upload-with-framework <framework> [<session_directory>]
101
103
  If you used another framework, use ??? and send an email to codersdojo@it-agile.de
102
104
 
103
105
  Example:
104
- :/dojo/my_kata$ #{$0} upload-with-framework ruby.test-unit .codersdojo/2010-11-02_16-21-53
105
- Upload the kata (written in Ruby with the test/unit framework) located in directory ".codersdojo/2010-11-02_16-21-53" to codersdojo.com.
106
+ :%/%dojo%/%my_kata$ #{$0} upload-with-framework ruby.test-unit .codersdojo%/%2010-11-02_16-21-53
107
+ Upload the kata (written in Ruby with the test/unit framework) located in directory ".codersdojo%/%2010-11-02_16-21-53" to codersdojo.com.
106
108
  helptext
107
109
  end
108
110
 
109
111
  def show_help_unknown command
110
- puts <<-helptext
112
+ show <<-helptext
111
113
  Command #{command} not known. Try '#{$0} help' to list the supported commands.
112
114
  helptext
113
115
  end
114
116
 
115
117
  def show_start_kata command, file, framework
116
- puts "Starting CodersDojo-Client with command #{command} and kata file #{file} with framework #{framework}. Use Ctrl+C to finish the kata."
118
+ show "Starting CodersDojo-Client with command #{command} and kata file #{file} with framework #{framework}. Use Ctrl+C to finish the kata."
117
119
  end
118
120
 
119
121
  def show_missing_command_argument_error command
120
- puts "Command <#{command}> recognized but no argument was provided (at least one argument is required).\n\n"
122
+ show "Command <#{command}> recognized but no argument was provided (at least one argument is required).\n\n"
121
123
  show_usage
122
124
  end
123
125
 
124
126
  def show_upload_start session_directory, hostname, framework
125
- puts "Start upload from #{session_directory} with framework #{framework} to #{hostname}"
127
+ show "Start upload from #{session_directory} with framework #{framework} to #{hostname}"
126
128
  end
127
129
 
128
130
  def show_upload_result result
129
- puts result
131
+ show result
130
132
  end
131
133
 
132
134
  def show_socket_error command
133
- puts "Encountered network error while <#{command}>. Is http://www.codersdojo.com down?"
135
+ show "Encountered network error while <#{command}>. Is http://www.codersdojo.com down?"
136
+ end
137
+
138
+ def show text
139
+ puts @template_machine.render(text)
134
140
  end
135
141
 
136
142
  end
@@ -40,13 +40,9 @@ class FilenameFormatter
40
40
  end
41
41
 
42
42
  def extract_last_path_item dir_path
43
- last = dir_path.split(dir_separator).last
43
+ last = dir_path.split(ShellWrapper.new.dir_separator).last
44
44
  last.nil? ? "" : last
45
45
  end
46
-
47
- def dir_separator
48
- File::ALT_SEPARATOR ? File::ALT_SEPARATOR : File::SEPARATOR
49
- end
50
46
 
51
47
  end
52
48
 
data/app/scaffolder.rb CHANGED
@@ -6,17 +6,7 @@ class Scaffolder
6
6
 
7
7
  def initialize shell
8
8
  @shell = shell
9
- @template_machine = create_template_machine
10
- end
11
-
12
- def create_template_machine
13
- template_machine = TextTemplateMachine.new @shell
14
- template_machine.placeholder_values = {
15
- 'sh' => @shell.shell_extension,
16
- ':' => @shell.path_separator,
17
- 'rm' => @shell.remove_command_name
18
- }
19
- template_machine
9
+ @template_machine = TextTemplateMachineFactory.create @shell
20
10
  end
21
11
 
22
12
  def list_templates
data/app/shell_wrapper.rb CHANGED
@@ -106,6 +106,10 @@ class ShellWrapper
106
106
  windows? ? ';' : ':'
107
107
  end
108
108
 
109
+ def dir_separator
110
+ File::ALT_SEPARATOR ? File::ALT_SEPARATOR : File::SEPARATOR
111
+ end
112
+
109
113
  def windows?
110
114
  platform = RUBY_PLATFORM.downcase
111
115
  platform.include?("windows") or platform.include?("mingw32")
@@ -24,3 +24,18 @@ class TextTemplateMachine
24
24
  end
25
25
 
26
26
  end
27
+
28
+ class TextTemplateMachineFactory
29
+
30
+ def self.create shell
31
+ template_machine = TextTemplateMachine.new shell
32
+ template_machine.placeholder_values = {
33
+ 'sh' => shell.shell_extension,
34
+ ':' => shell.path_separator,
35
+ '/' => shell.dir_separator,
36
+ 'rm' => shell.remove_command_name
37
+ }
38
+ template_machine
39
+ end
40
+
41
+ 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: 1
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 9
10
- version: 1.1.09
9
+ - 10
10
+ version: 1.1.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - CodersDojo-Team