codersdojo 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/app/codersdojo.rb CHANGED
@@ -5,24 +5,35 @@ require 'controller'
5
5
  require 'argument_parser'
6
6
  require 'scaffolder'
7
7
 
8
- def called_from_spec args
9
- args[0] == "spec"
10
- end
8
+ class CodersDojo
9
+
10
+ def initialize params
11
+ @params = params
12
+ end
13
+
14
+ def run
15
+ if called_from_spec? then return end
16
+ hostname = "http://www.codersdojo.com"
17
+ # hostname = "http://localhost:3000"
11
18
 
12
- # entry from shell
13
- if not called_from_spec(ARGV) then
14
- hostname = "http://www.codersdojo.com"
15
- # hostname = "http://localhost:3000"
19
+ shell = ShellWrapper.new
20
+ scaffolder = Scaffolder.new shell
21
+ view = ConsoleView.new scaffolder
22
+ controller = Controller.new shell, view, scaffolder, hostname
16
23
 
17
- shell = ShellWrapper.new
18
- scaffolder = Scaffolder.new shell
19
- view = ConsoleView.new scaffolder
20
- controller = Controller.new shell, view, scaffolder, hostname
21
-
22
- begin
23
- arg_parser = ArgumentParser.new controller
24
- command = arg_parser.parse ARGV
25
- rescue ShellArgumentException
26
- controller.help
24
+ begin
25
+ arg_parser = ArgumentParser.new controller
26
+ command = arg_parser.parse @params
27
+ rescue ShellArgumentException
28
+ controller.help
29
+ end
30
+ end
31
+
32
+ def called_from_spec?
33
+ @params and @params[0] == "spec"
27
34
  end
35
+
28
36
  end
37
+
38
+ # entry from shell
39
+ CodersDojo.new(ARGV).run
data/app/scaffolder.rb CHANGED
@@ -37,18 +37,25 @@ class Scaffolder
37
37
  to_copy.each do |item|
38
38
  file_path = "#{dir_path}/#{item}"
39
39
  @shell.cp_r file_path, "."
40
- transform_file item
40
+ transform_file_content item
41
+ transform_file_name item
41
42
  end
42
43
  end
43
44
 
44
- def transform_file filename
45
- if File.file?(filename)
45
+ def transform_file_content filename
46
+ if @shell.file?(filename)
46
47
  content = @shell.read_file filename
47
48
  content = @template_machine.render content
48
- new_filename = @template_machine.render filename
49
- @shell.write_file new_filename, content
49
+ @shell.write_file filename, content
50
50
  end
51
51
  end
52
+
53
+ def transform_file_name filename
54
+ new_filename = @template_machine.render filename
55
+ if new_filename != filename
56
+ @shell.rename filename, new_filename
57
+ end
58
+ end
52
59
 
53
60
  def template_path
54
61
  file_path_elements = @shell.current_file.split '/'
data/app/shell_wrapper.rb CHANGED
@@ -20,6 +20,10 @@ class ShellWrapper
20
20
  FileUtils.mkdir_p dirs
21
21
  end
22
22
 
23
+ def rename old_filename, new_filename
24
+ File.rename old_filename, new_filename
25
+ end
26
+
23
27
  def current_file
24
28
  __FILE__
25
29
  end
@@ -64,6 +68,10 @@ class ShellWrapper
64
68
  end
65
69
  end
66
70
 
71
+ def file? filename
72
+ File.file? filename
73
+ end
74
+
67
75
  def remove_command_name
68
76
  windows? ? 'del' : 'rm'
69
77
  end
data/bin/codersdojo CHANGED
@@ -1,8 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
  codersdojo_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'app'))
3
- infrastructure_dir = "#{codersdojo_dir}/infrastructure"
4
- models_dir = "#{codersdojo_dir}/models"
5
3
  $LOAD_PATH.unshift(codersdojo_dir) unless $LOAD_PATH.include?(codersdojo_dir)
6
- $LOAD_PATH.unshift(infrastructure_dir) unless $LOAD_PATH.include?(infrastructure_dir)
7
- $LOAD_PATH.unshift(models_dir) unless $LOAD_PATH.include?(models_dir)
8
4
  require 'codersdojo'
@@ -23,7 +23,9 @@ describe Scaffolder do
23
23
  it "should scaffold the files and directories for a given template" do
24
24
  @shell_mock.should_receive(:real_dir_entries).with("aDir/templates/a.template").and_return ["a", "b"]
25
25
  @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/a", "."
26
+ @shell_mock.should_receive(:file?).with("a").and_return false
26
27
  @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/b", "."
28
+ @shell_mock.should_receive(:file?).with("b").and_return false
27
29
  @scaffolder.scaffold "a.template", 'myKata'
28
30
  end
29
31
 
@@ -31,20 +33,25 @@ describe Scaffolder do
31
33
  @shell_mock.should_receive(:real_dir_entries).with("aDir/templates/unknown.template").and_throw Exception
32
34
  @shell_mock.should_receive(:real_dir_entries).with("aDir/templates/any").and_return ["a"]
33
35
  @shell_mock.should_receive(:cp_r).with "aDir/templates/any/a", "."
36
+ @shell_mock.should_receive(:file?).with("a").and_return false
34
37
  @scaffolder.scaffold "unknown.template", 'myKata'
35
38
  end
36
39
 
37
40
  it "should replace placeholder in template file README and shell scripts" do
38
41
  @shell_mock.should_receive(:real_dir_entries).with("aDir/templates/a.template").
39
- and_return ["a", "README", "run-once.sh", "run-endless.sh"]
42
+ and_return ["a", "README", "run-once.sh", "run-endless.sh"]
40
43
  @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/a", "."
44
+ @shell_mock.should_receive(:file?).with("a").and_return false
41
45
  @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/README", "."
42
- @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/run-once.sh", "."
43
- @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/run-endless.sh", "."
46
+ @shell_mock.should_receive(:file?).with("README").and_return true
44
47
  @shell_mock.should_receive(:read_file).with("README").and_return '%rm% %kata_file%\nb.%sh%\nc%:%d'
45
48
  @shell_mock.should_receive(:write_file).with "README", 'del myKata\nb.cmd\nc;d'
49
+ @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/run-once.sh", "."
50
+ @shell_mock.should_receive(:file?).with("run-once.sh").and_return true
46
51
  @shell_mock.should_receive(:read_file).with("run-once.sh").and_return "%rm% a\nb.%sh%\nc%:%d"
47
52
  @shell_mock.should_receive(:write_file).with "run-once.sh", "del a\nb.cmd\nc;d"
53
+ @shell_mock.should_receive(:cp_r).with "aDir/templates/a.template/run-endless.sh", "."
54
+ @shell_mock.should_receive(:file?).with("run-endless.sh").and_return true
48
55
  @shell_mock.should_receive(:read_file).with("run-endless.sh").and_return "%rm% a\nb.%sh%\nc%:%d"
49
56
  @shell_mock.should_receive(:write_file).with "run-endless.sh", "del a\nb.cmd\nc;d"
50
57
  @scaffolder.scaffold "a.template", 'myKata'
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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
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: 2010-12-27 00:00:00 +01:00
18
+ date: 2010-12-29 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -58,24 +58,24 @@ files:
58
58
  - app/uploader.rb
59
59
  - app/xml_element_extractor.rb
60
60
  - templates/any/README
61
- - templates/any/run-endless.sh
62
- - templates/any/run-once.sh
61
+ - templates/any/run-endless.%sh%
62
+ - templates/any/run-once.%sh%
63
63
  - templates/clojure.is-test/%kata_file%.clj
64
64
  - templates/clojure.is-test/lib/place_your_libs_here
65
65
  - templates/clojure.is-test/README
66
- - templates/clojure.is-test/run-endless.sh
67
- - templates/clojure.is-test/run-once.sh
66
+ - templates/clojure.is-test/run-endless.%sh%
67
+ - templates/clojure.is-test/run-once.%sh%
68
68
  - templates/java.junit/%Kata_file%Test.java
69
69
  - templates/java.junit/bin/place_your_class_files_here
70
70
  - templates/java.junit/lib/place_your_libs_here
71
71
  - templates/java.junit/README
72
- - templates/java.junit/run-endless.sh
73
- - templates/java.junit/run-once.sh
72
+ - templates/java.junit/run-endless.%sh%
73
+ - templates/java.junit/run-once.%sh%
74
74
  - templates/python.pyunit/%kata_file%.py
75
75
  - templates/python.pyunit/README
76
- - templates/python.pyunit/run-endless.sh
77
- - templates/python.pyunit/run-once.sh
78
- - templates/ruby.test-unit/%kata_file%.rb
76
+ - templates/python.pyunit/run-endless.%sh%
77
+ - templates/python.pyunit/run-once.%sh%
78
+ - templates/ruby.test-unit/mykata.rb
79
79
  - templates/ruby.test-unit/README
80
80
  - templates/ruby.test-unit/run-endless.sh
81
81
  - templates/ruby.test-unit/run-once.sh
File without changes
File without changes