shubox 0.9

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.
Files changed (58) hide show
  1. data/History.txt +57 -0
  2. data/MIT-LICENSE +22 -0
  3. data/Manifest.txt +57 -0
  4. data/PostInstall.txt +6 -0
  5. data/README.rdoc +128 -0
  6. data/Rakefile +61 -0
  7. data/app_generators/clojure/USAGE +15 -0
  8. data/app_generators/clojure/clojure_generator.rb +46 -0
  9. data/app_generators/clojure/templates/README.rdoc +29 -0
  10. data/app_generators/clojure/templates/bin/repl.sh +3 -0
  11. data/app_generators/clojure/templates/bin/runtests.sh +3 -0
  12. data/app_generators/clojure/templates/lib/clojure-contrib.jar +0 -0
  13. data/app_generators/clojure/templates/lib/clojure.jar +0 -0
  14. data/app_generators/clojure/templates/lib/jline-0.9.94.jar +0 -0
  15. data/app_generators/clojure/templates/project.iml +19 -0
  16. data/app_generators/clojure/templates/project.ipr +261 -0
  17. data/app_generators/clojure/templates/src/repl.clj +3 -0
  18. data/app_generators/clojure/templates/test/core/about_clojure_testing.clj +21 -0
  19. data/app_generators/clojure/templates/test/core/about_forms.clj +22 -0
  20. data/app_generators/clojure/templates/test/tests.clj +11 -0
  21. data/app_generators/java/USAGE +14 -0
  22. data/app_generators/java/java_generator.rb +39 -0
  23. data/app_generators/java/templates/Greeting.java +24 -0
  24. data/app_generators/java/templates/GreetingTest.java +18 -0
  25. data/app_generators/java/templates/build.xml +55 -0
  26. data/app_generators/java/templates/lib/hamcrest-core.jar +0 -0
  27. data/app_generators/java/templates/lib/junit.jar +0 -0
  28. data/app_generators/java/templates/project.iml +22 -0
  29. data/app_generators/java/templates/project.ipr +259 -0
  30. data/app_generators/ruby/USAGE +12 -0
  31. data/app_generators/ruby/ruby_generator.rb +37 -0
  32. data/app_generators/ruby/templates/file.txt +3 -0
  33. data/app_generators/ruby/templates/rakefile.rb +9 -0
  34. data/app_generators/ruby/templates/right_triangle.rb +18 -0
  35. data/app_generators/ruby/templates/shubox.rb +6 -0
  36. data/app_generators/ruby/templates/test_helper.rb +9 -0
  37. data/app_generators/ruby/templates/test_io.rb +15 -0
  38. data/app_generators/ruby/templates/test_right_triangle.rb +21 -0
  39. data/bin/shubox +24 -0
  40. data/cleaner_generators/test_unit_cleaner/USAGE +7 -0
  41. data/cleaner_generators/test_unit_cleaner/lib/test_unit_cleaner.rb +93 -0
  42. data/cleaner_generators/test_unit_cleaner/templates/clean_test_unit +12 -0
  43. data/cleaner_generators/test_unit_cleaner/templates/filter_test_unit +13 -0
  44. data/cleaner_generators/test_unit_cleaner/test_unit_cleaner_generator.rb +27 -0
  45. data/lib/languages.rb +20 -0
  46. data/lib/shubox.rb +11 -0
  47. data/lib/shubox_app_generator.rb +40 -0
  48. data/script/console +10 -0
  49. data/script/destroy +14 -0
  50. data/script/generate +14 -0
  51. data/test/cleaners/test_test_unit_cleaner.rb +111 -0
  52. data/test/generators/test_clojure_generator.rb +44 -0
  53. data/test/generators/test_java_generator.rb +37 -0
  54. data/test/generators/test_ruby_generator.rb +34 -0
  55. data/test/lib/test_languages.rb +38 -0
  56. data/test/test_generator_helper.rb +72 -0
  57. data/test/test_helper.rb +4 -0
  58. metadata +144 -0
@@ -0,0 +1,34 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_generator_helper.rb")
2
+ require 'fileutils'
3
+ require 'languages'
4
+
5
+ class TestRubyGenerator < Test::Unit::TestCase
6
+ include RubiGen::GeneratorTestHelper
7
+
8
+ def setup
9
+ bare_setup
10
+ end
11
+
12
+ def teardown
13
+ bare_teardown
14
+ end
15
+
16
+ def test_generator_without_options
17
+ run_generator('ruby', [APP_ROOT], sources)
18
+
19
+ assert_generated_file "rakefile.rb"
20
+ assert_directory_exists "lib/samples"
21
+ assert_generated_file "lib/samples/right_triangle.rb"
22
+ assert_generated_file "lib/shubox.rb"
23
+ assert_directory_exists "test/samples"
24
+ assert_generated_file "test/samples/test_right_triangle.rb"
25
+ assert_directory_exists "test/data"
26
+ assert_generated_file "test/data/file.txt"
27
+ assert_generated_file "test/test_io.rb"
28
+ assert_generated_file "test/test_helper.rb"
29
+ assert_generated_file "script/clean_test_unit"
30
+ assert_generated_file "script/filter_test_unit"
31
+
32
+ run_generated_build_script("rake")
33
+ end
34
+ end
@@ -0,0 +1,38 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_generator_helper.rb")
2
+ require 'languages'
3
+
4
+ class TestLanguages < Test::Unit::TestCase
5
+
6
+ def test_list_current_languages
7
+ langs = Languages.current
8
+ assert(langs.length > 1)
9
+ assert(!langs.include?("."))
10
+ assert(!langs.include?(".."))
11
+ end
12
+
13
+ def test_ruby_is_default_language
14
+ assert_equal("ruby", Languages.parse(""))
15
+ end
16
+
17
+ def test_parse_command_for_valid_language
18
+ args = %w{-l=java MyAppName}
19
+ assert_equal("java", Languages.parse(args))
20
+ args = %w{--language=ruby app_name}
21
+ assert_equal("ruby", Languages.parse(args))
22
+ args = %w{--language=clojure app_name}
23
+ assert_equal("clojure", Languages.parse(args))
24
+ end
25
+
26
+ def test_reject_invalid_language
27
+ args = %w{-l=nonsense}
28
+ assert_raise RuntimeError do
29
+ Languages.parse(args)
30
+ end
31
+ end
32
+
33
+ def test_print_languages
34
+ base = "clojure|java|ruby"
35
+ print = Languages.print
36
+ assert(print.include?(base))
37
+ end
38
+ end
@@ -0,0 +1,72 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
30
+
31
+ module RubiGen::GeneratorTestHelper
32
+ def assert_file_contains(keyword, filename)
33
+ ipr = IO.readlines(File.join(APP_ROOT, filename)).to_s
34
+ assert(ipr =~ Regexp.new(keyword))
35
+ end
36
+
37
+ def run_generated_build_script(cmd)
38
+ FileUtils::cd(APP_ROOT) do
39
+ puts "Running generated build script in #{FileUtils::pwd} with #{cmd}"
40
+ `#{cmd}`
41
+ raise "Exit code #{$?} while running generated build script with #{cmd}" if ($?.to_s != "0")
42
+ end
43
+ end
44
+
45
+ def run_generated_cleaner(cmd)
46
+ FileUtils::cd(APP_ROOT + '/script') do
47
+ puts "Running generated clean script in #{FileUtils::pwd} with #{cmd}"
48
+ `#{cmd}`
49
+ raise "Exit code #{$?} while running generated build script with #{cmd}" if ($?.to_s != "0")
50
+ end
51
+ end
52
+
53
+ def sources
54
+ [ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__), "..", "app_generators")),
55
+ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__), "..", "cleaner_generators"))]
56
+ end
57
+
58
+ # Some generator-related assertions:
59
+ # assert_generated_file(name, &block) # block passed the file contents
60
+ # assert_directory_exists(name)
61
+ # assert_generated_class(name, &block)
62
+ # assert_generated_module(name, &block)
63
+ # assert_generated_test_for(name, &block)
64
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
65
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
66
+ #
67
+ # Other helper methods are:
68
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
69
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
70
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
71
+ end
72
+
@@ -0,0 +1,4 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/shubox'
4
+
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shubox
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.9"
5
+ platform: ruby
6
+ authors:
7
+ - Bobby Norton
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-22 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: newgem
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.5.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.3.3
34
+ version:
35
+ description: |-
36
+ shubox lowers the barrier to entry for test-driven learning by providing a basic infrastructure in which
37
+ to start coding: A directory structure, some classes and unit tests to get started, and a build script.
38
+ email:
39
+ - codeculturist@gmail.com
40
+ executables:
41
+ - shubox
42
+ extensions: []
43
+
44
+ extra_rdoc_files:
45
+ - History.txt
46
+ - Manifest.txt
47
+ - PostInstall.txt
48
+ - app_generators/ruby/templates/file.txt
49
+ - README.rdoc
50
+ files:
51
+ - History.txt
52
+ - MIT-LICENSE
53
+ - Manifest.txt
54
+ - PostInstall.txt
55
+ - README.rdoc
56
+ - Rakefile
57
+ - app_generators/clojure/USAGE
58
+ - app_generators/clojure/clojure_generator.rb
59
+ - app_generators/clojure/templates/README.rdoc
60
+ - app_generators/clojure/templates/bin/repl.sh
61
+ - app_generators/clojure/templates/bin/runtests.sh
62
+ - app_generators/clojure/templates/lib/clojure-contrib.jar
63
+ - app_generators/clojure/templates/lib/clojure.jar
64
+ - app_generators/clojure/templates/lib/jline-0.9.94.jar
65
+ - app_generators/clojure/templates/project.iml
66
+ - app_generators/clojure/templates/project.ipr
67
+ - app_generators/clojure/templates/src/repl.clj
68
+ - app_generators/clojure/templates/test/core/about_clojure_testing.clj
69
+ - app_generators/clojure/templates/test/core/about_forms.clj
70
+ - app_generators/clojure/templates/test/tests.clj
71
+ - app_generators/java/USAGE
72
+ - app_generators/java/java_generator.rb
73
+ - app_generators/java/templates/Greeting.java
74
+ - app_generators/java/templates/GreetingTest.java
75
+ - app_generators/java/templates/build.xml
76
+ - app_generators/java/templates/lib/hamcrest-core.jar
77
+ - app_generators/java/templates/lib/junit.jar
78
+ - app_generators/java/templates/project.iml
79
+ - app_generators/java/templates/project.ipr
80
+ - app_generators/ruby/USAGE
81
+ - app_generators/ruby/ruby_generator.rb
82
+ - app_generators/ruby/templates/file.txt
83
+ - app_generators/ruby/templates/rakefile.rb
84
+ - app_generators/ruby/templates/right_triangle.rb
85
+ - app_generators/ruby/templates/shubox.rb
86
+ - app_generators/ruby/templates/test_helper.rb
87
+ - app_generators/ruby/templates/test_io.rb
88
+ - app_generators/ruby/templates/test_right_triangle.rb
89
+ - bin/shubox
90
+ - cleaner_generators/test_unit_cleaner/USAGE
91
+ - cleaner_generators/test_unit_cleaner/lib/test_unit_cleaner.rb
92
+ - cleaner_generators/test_unit_cleaner/templates/clean_test_unit
93
+ - cleaner_generators/test_unit_cleaner/templates/filter_test_unit
94
+ - cleaner_generators/test_unit_cleaner/test_unit_cleaner_generator.rb
95
+ - lib/languages.rb
96
+ - lib/shubox.rb
97
+ - lib/shubox_app_generator.rb
98
+ - script/console
99
+ - script/destroy
100
+ - script/generate
101
+ - test/cleaners/test_test_unit_cleaner.rb
102
+ - test/generators/test_clojure_generator.rb
103
+ - test/generators/test_java_generator.rb
104
+ - test/generators/test_ruby_generator.rb
105
+ - test/lib/test_languages.rb
106
+ - test/test_generator_helper.rb
107
+ - test/test_helper.rb
108
+ has_rdoc: true
109
+ homepage: http://github.com/bobbyno/shubox/tree/master
110
+ licenses: []
111
+
112
+ post_install_message: PostInstall.txt
113
+ rdoc_options:
114
+ - --main
115
+ - README.rdoc
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ version:
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: "0"
129
+ version:
130
+ requirements: []
131
+
132
+ rubyforge_project: shubox
133
+ rubygems_version: 1.3.5
134
+ signing_key:
135
+ specification_version: 3
136
+ summary: "shubox lowers the barrier to entry for test-driven learning by providing a basic infrastructure in which to start coding: A directory structure, some classes and unit tests to get started, and a build script."
137
+ test_files:
138
+ - test/cleaners/test_test_unit_cleaner.rb
139
+ - test/generators/test_clojure_generator.rb
140
+ - test/generators/test_java_generator.rb
141
+ - test/generators/test_ruby_generator.rb
142
+ - test/lib/test_languages.rb
143
+ - test/test_generator_helper.rb
144
+ - test/test_helper.rb