rubigen 1.4.0 → 1.5.0

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 (47) hide show
  1. data/.autotest +13 -0
  2. data/History.txt +14 -1
  3. data/Manifest.txt +11 -7
  4. data/{README.txt → README.rdoc} +21 -7
  5. data/Rakefile +20 -3
  6. data/Todo.txt +4 -2
  7. data/bin/install_rubigen_scripts +0 -0
  8. data/bin/rubigen +10 -0
  9. data/bin/ruby_app +0 -0
  10. data/features/development.feature +13 -0
  11. data/features/help.feature +14 -0
  12. data/features/rubigen_cli.feature +10 -0
  13. data/features/steps/common.rb +195 -0
  14. data/features/steps/env.rb +6 -0
  15. data/lib/rubigen/base.rb +11 -1
  16. data/lib/rubigen/cli.rb +31 -0
  17. data/lib/rubigen/commands.rb +76 -80
  18. data/lib/rubigen/lookup.rb +5 -7
  19. data/lib/rubigen/options.rb +7 -0
  20. data/lib/rubigen/scripts/destroy.rb +3 -0
  21. data/lib/rubigen/scripts.rb +15 -8
  22. data/lib/rubigen.rb +6 -1
  23. data/rubygems_generators/application_generator/USAGE +2 -2
  24. data/rubygems_generators/application_generator/application_generator_generator.rb +1 -1
  25. data/rubygems_generators/application_generator/templates/generator.rb +1 -1
  26. data/rubygems_generators/application_generator/templates/readme +2 -2
  27. data/rubygems_generators/component_generator/USAGE +3 -4
  28. data/rubygems_generators/component_generator/component_generator_generator.rb +1 -5
  29. data/rubygems_generators/component_generator/templates/generator.rb +1 -1
  30. data/rubygems_generators/component_generator/templates/readme +1 -1
  31. data/script/console +10 -0
  32. data/script/destroy +1 -1
  33. data/script/generate +1 -1
  34. data/test/test_component_generator_generator.rb +0 -26
  35. data/test/test_generator_helper.rb +3 -1
  36. data/test/test_helper.rb +2 -0
  37. data/test/test_install_rubigen_scripts_generator.rb +1 -1
  38. data/test/test_rubigen_cli.rb +71 -0
  39. data/website/index.html +5 -5
  40. data/website/index.txt +5 -5
  41. metadata +34 -16
  42. data/config/hoe.rb +0 -74
  43. data/config/requirements.rb +0 -17
  44. data/setup.rb +0 -1585
  45. data/tasks/deployment.rake +0 -34
  46. data/tasks/environment.rake +0 -7
  47. data/tasks/website.rake +0 -17
@@ -0,0 +1,71 @@
1
+ require File.dirname(__FILE__) + "/test_generator_helper"
2
+ require 'rubigen/cli'
3
+
4
+ class TestRubigenCli < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+ attr_reader :stdout
7
+
8
+ context "run executable with scope 'rubygems'" do
9
+ setup do
10
+ bare_setup
11
+ Rubigen::CLI.new.execute(@stdout_io = StringIO.new,
12
+ %w[rubygems component_generator name scope], :backtrace => true)
13
+ @stdout_io.rewind
14
+ @stdout = @stdout_io.read
15
+ end
16
+
17
+ should "create main generator manifest" do
18
+ assert_file_exists("scope_generators/name/name_generator.rb")
19
+ end
20
+ end
21
+
22
+ context "run executable with scope 'rubygems'" do
23
+ setup do
24
+ Rubigen::CLI.execute(@stdout_io = StringIO.new, %w[rubygems])
25
+ @stdout_io.rewind
26
+ @stdout = @stdout_io.read
27
+ end
28
+
29
+ should "display help" do
30
+ assert_match(/General Options/, stdout)
31
+ end
32
+
33
+ should "display installed generators for 'rubygems'" do
34
+ assert_match(/Installed Generators/, stdout)
35
+ assert_match(/application_generator/, stdout)
36
+ assert_match(/component_generator/, stdout)
37
+ end
38
+ end
39
+
40
+ context "run executable with multiple scopes 'rubygems' and 'something_else'" do
41
+ setup do
42
+ # rubigen rubygems,something_else a_generator
43
+ Rubigen::CLI.execute(@stdout_io = StringIO.new, ['rubygems,something_else'])
44
+ @stdout_io.rewind
45
+ @stdout = @stdout_io.read
46
+ end
47
+
48
+ should "display help" do
49
+ assert_match(/General Options/, stdout)
50
+ end
51
+
52
+ should "display installed generators for 'rubygems,something_else'" do
53
+ assert_match(/Installed Generators/, stdout)
54
+ assert_match(/application_generator/, stdout)
55
+ assert_match(/component_generator/, stdout)
56
+ end
57
+ end
58
+
59
+ context "run executable without any arguments" do
60
+ setup do
61
+ Rubigen::CLI.execute(@stdout_io = StringIO.new, %w[])
62
+ @stdout_io.rewind
63
+ @stdout = @stdout_io.read
64
+ end
65
+
66
+ should "display main usage" do
67
+ assert_match(/Usage:/, stdout)
68
+ end
69
+ end
70
+
71
+ end
data/website/index.html CHANGED
@@ -35,7 +35,7 @@
35
35
  <div class="sidebar">
36
36
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rubigen"; return false'>
37
37
  <p>Get Version</p>
38
- <a href="http://rubyforge.org/projects/rubigen" class="numbers">1.4.0</a>
38
+ <a href="http://rubyforge.org/projects/rubigen" class="numbers">1.5.0</a>
39
39
  </div>
40
40
 
41
41
  <div id="twitter_search">
@@ -60,7 +60,7 @@
60
60
  <h2>Background</h2>
61
61
  <p>RubiGen is originally extracted from Ruby on Rails (specifically the rails_generator from its railties gem).</p>
62
62
  <p>The rails_generator was hardcoded with Rails-specific dependencies (<code>RAILS_ROOT</code>), Rails generators (&#8216;app&#8217; = Rails application; &#8216;model&#8217; = Rails model+tests+migration), and generally assumed it was the only generator framework within the Ruby world (it was). So, any RubyGem whose name ended with &#8216;_generator&#8217; was assumed to be a generator for a Rails application.</p>
63
- <p>But if you are developing a Merb application, then you may want a different set of generators.<br />
63
+ <p>But if you are developing an Adhearsion application, then you may want a different set of generators.<br />
64
64
  If you are developing a RubyGem, then you will want a different set of generators.</p>
65
65
  <p>RubiGen exists to give different development environments their own generator framework.</p>
66
66
  <h2>Installing</h2>
@@ -84,8 +84,8 @@ If you are developing a RubyGem, then you will want a different set of generator
84
84
  generate components/extensions within the framework. <br /><br />
85
85
  RubiGen allows you to restrict which generators are available. For example, within<br />
86
86
  RubyGem development environment (as generated by <code>newgem</code>), the <code>script/generator</code><br />
87
- only shows <code>rubygem</code>-related generators. Merb could restrict <code>script/generator</code><br />
88
- to only show Merb related generators (or perhaps Merb and/or Rails generators)</li>
87
+ only shows <code>rubygem</code>-related generators. Rails could restrict <code>script/generator</code><br />
88
+ to only show Rails related generators</li>
89
89
  <li>Your framework RubyGem (e.g. <code>newgem</code> or <code>merb</code> RubyGems) needs to add <code>rubigen</code> as a <br />
90
90
  dependency, so that users of your RubyGem can access the generator framework.</li>
91
91
  </ol>
@@ -259,7 +259,7 @@ script/generate component_generator
259
259
  <h2>Contact</h2>
260
260
  <p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a> via the <a href="http://groups.google.com/group/rubigen">forum</a></p>
261
261
  <p class="coda">
262
- <a href="drnicwilliams@gmail.com">Dr Nic Williams</a>, 26th October 2008<br>
262
+ <a href="drnicwilliams@gmail.com">Dr Nic Williams</a>, 27th December 2008<br>
263
263
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
264
264
  </p>
265
265
  </div>
data/website/index.txt CHANGED
@@ -14,7 +14,7 @@ RubiGen is originally extracted from Ruby on Rails (specifically the rails_gener
14
14
 
15
15
  The rails_generator was hardcoded with Rails-specific dependencies (<code>RAILS_ROOT</code>), Rails generators ('app' = Rails application; 'model' = Rails model+tests+migration), and generally assumed it was the only generator framework within the Ruby world (it was). So, any RubyGem whose name ended with '_generator' was assumed to be a generator for a Rails application.
16
16
 
17
- But if you are developing a Merb application, then you may want a different set of generators.
17
+ But if you are developing an Adhearsion application, then you may want a different set of generators.
18
18
  If you are developing a RubyGem, then you will want a different set of generators.
19
19
 
20
20
  RubiGen exists to give different development environments their own generator framework.
@@ -29,7 +29,7 @@ On your development machine:
29
29
 
30
30
  h2. Usage
31
31
 
32
- RubiGen will be normally integrated into another RubyGem, such as <code>newgem</code> or <code>merb</code> or <code>camping</code>, rather than be used on its own.
32
+ RubiGen will be normally integrated into another RubyGem, such as <code>newgem</code> or <code>rails</code> or <code>camping</code>, rather than be used on its own.
33
33
 
34
34
  These frameworks might use RubiGen for two reasons:
35
35
 
@@ -46,9 +46,9 @@ So, there are two steps to integrating RubiGen into your framework:
46
46
  generate components/extensions within the framework. <br />
47
47
  RubiGen allows you to restrict which generators are available. For example, within
48
48
  RubyGem development environment (as generated by <code>newgem</code>), the <code>script/generator</code>
49
- only shows <code>rubygem</code>-related generators. Merb could restrict <code>script/generator</code>
50
- to only show Merb related generators (or perhaps Merb and/or Rails generators)
51
- # Your framework RubyGem (e.g. <code>newgem</code> or <code>merb</code> RubyGems) needs to add <code>rubigen</code> as a
49
+ only shows <code>rubygem</code>-related generators. Rails could restrict <code>script/generator</code>
50
+ to only show Rails related generators
51
+ # Your framework RubyGem (e.g. <code>newgem</code> or <code>rails</code> RubyGems) needs to add <code>rubigen</code> as a
52
52
  dependency, so that users of your RubyGem can access the generator framework.
53
53
 
54
54
  h1. Creating generators
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubigen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-12-11 00:00:00 +10:00
13
+ date: 2008-12-27 00:00:00 +10:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -21,7 +21,17 @@ dependencies:
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 1.4.4
24
+ version: 2.2.2
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: newgem
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.2.2
25
35
  version:
26
36
  - !ruby/object:Gem::Dependency
27
37
  name: hoe
@@ -31,12 +41,15 @@ dependencies:
31
41
  requirements:
32
42
  - - ">="
33
43
  - !ruby/object:Gem::Version
34
- version: 1.8.2
44
+ version: 1.8.0
35
45
  version:
36
- description: "A framework to allow Ruby applications to generate file/folder stubs (like the rails command does for Ruby on Rails, and the \xE2\x80\x98script/generate\xE2\x80\x99 command within a Rails application during development)."
37
- email: drnicwilliams@gmail.com
46
+ description: A framework to allow Ruby applications to generate file/folder stubs (like the `rails` command does for Ruby on Rails, and the 'script/generate' command within a Rails application during development).
47
+ email:
48
+ - drnicwilliams@gmail.com
49
+ - jeremy@bitsweat.net
38
50
  executables:
39
51
  - install_rubigen_scripts
52
+ - rubigen
40
53
  - ruby_app
41
54
  extensions: []
42
55
 
@@ -44,17 +57,18 @@ extra_rdoc_files:
44
57
  - History.txt
45
58
  - License.txt
46
59
  - Manifest.txt
47
- - README.txt
60
+ - README.rdoc
48
61
  - Todo.txt
49
62
  - app_generators/ruby_app/templates/README.txt
50
63
  - website/index.txt
51
64
  - website/version-raw.txt
52
65
  - website/version.txt
53
66
  files:
67
+ - .autotest
54
68
  - History.txt
55
69
  - License.txt
56
70
  - Manifest.txt
57
- - README.txt
71
+ - README.rdoc
58
72
  - Rakefile
59
73
  - Todo.txt
60
74
  - app_generators/ruby_app/USAGE
@@ -64,15 +78,20 @@ files:
64
78
  - app_generators/ruby_app/templates/lib/module.rb
65
79
  - app_generators/ruby_app/templates/test/test_helper.rb.erb
66
80
  - bin/install_rubigen_scripts
81
+ - bin/rubigen
67
82
  - bin/ruby_app
68
- - config/hoe.rb
69
- - config/requirements.rb
83
+ - features/development.feature
84
+ - features/help.feature
85
+ - features/rubigen_cli.feature
86
+ - features/steps/common.rb
87
+ - features/steps/env.rb
70
88
  - generators/install_rubigen_scripts/install_rubigen_scripts_generator.rb
71
89
  - generators/install_rubigen_scripts/templates/script/destroy
72
90
  - generators/install_rubigen_scripts/templates/script/generate
73
91
  - generators/install_rubigen_scripts/templates/script/win_script.cmd
74
92
  - lib/rubigen.rb
75
93
  - lib/rubigen/base.rb
94
+ - lib/rubigen/cli.rb
76
95
  - lib/rubigen/commands.rb
77
96
  - lib/rubigen/generated_attribute.rb
78
97
  - lib/rubigen/helpers/generator_test_helper.rb
@@ -101,13 +120,10 @@ files:
101
120
  - rubygems_generators/component_generator/templates/test.rb
102
121
  - rubygems_generators/component_generator/templates/test_generator_helper.rb
103
122
  - rubygems_generators/component_generator/templates/usage
123
+ - script/console
104
124
  - script/destroy
105
125
  - script/generate
106
126
  - script/txt2html
107
- - setup.rb
108
- - tasks/deployment.rake
109
- - tasks/environment.rake
110
- - tasks/website.rake
111
127
  - test/test_application_generator_generator.rb
112
128
  - test/test_component_generator_generator.rb
113
129
  - test/test_generate_builtin_application.rb
@@ -116,6 +132,7 @@ files:
116
132
  - test/test_helper.rb
117
133
  - test/test_install_rubigen_scripts_generator.rb
118
134
  - test/test_lookup.rb
135
+ - test/test_rubigen_cli.rb
119
136
  - test_unit_generators/test_unit/USAGE
120
137
  - test_unit_generators/test_unit/templates/test.rb
121
138
  - test_unit_generators/test_unit/test_unit_generator.rb
@@ -134,7 +151,7 @@ homepage: http://rubigen.rubyforge.org
134
151
  post_install_message:
135
152
  rdoc_options:
136
153
  - --main
137
- - README.txt
154
+ - README.rdoc
138
155
  require_paths:
139
156
  - lib
140
157
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -155,7 +172,7 @@ rubyforge_project: rubigen
155
172
  rubygems_version: 1.3.1
156
173
  signing_key:
157
174
  specification_version: 2
158
- summary: "A framework to allow Ruby applications to generate file/folder stubs (like the rails command does for Ruby on Rails, and the \xE2\x80\x98script/generate\xE2\x80\x99 command within a Rails application during development)."
175
+ summary: A framework to allow Ruby applications to generate file/folder stubs (like the `rails` command does for Ruby on Rails, and the 'script/generate' command within a Rails application during development).
159
176
  test_files:
160
177
  - test/test_application_generator_generator.rb
161
178
  - test/test_component_generator_generator.rb
@@ -165,3 +182,4 @@ test_files:
165
182
  - test/test_helper.rb
166
183
  - test/test_install_rubigen_scripts_generator.rb
167
184
  - test/test_lookup.rb
185
+ - test/test_rubigen_cli.rb
data/config/hoe.rb DELETED
@@ -1,74 +0,0 @@
1
- require 'rubigen'
2
-
3
- AUTHOR = ['Dr Nic Williams', 'Jeremy Kemper'] # can also be an array of Authors
4
- EMAIL = "drnicwilliams@gmail.com"
5
- DESCRIPTION = <<-EOS
6
- A framework to allow Ruby applications to generate file/folder stubs (like the rails command does for Ruby on Rails, and the ‘script/generate’ command within a Rails application during development).
7
- EOS
8
- GEM_NAME = 'rubigen' # what ppl will type to install your gem
9
-
10
- RUBYFORGE_PROJECT = 'rubigen' # The unix name for your project
11
- HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
12
- DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
13
-
14
- @config_file = "~/.rubyforge/user-config.yml"
15
- @config = nil
16
- RUBYFORGE_USERNAME = "unknown"
17
- def rubyforge_username
18
- unless @config
19
- begin
20
- @config = YAML.load(File.read(File.expand_path(@config_file)))
21
- rescue
22
- puts <<-EOS
23
- ERROR: No rubyforge config file found: #{@config_file}
24
- Run 'rubyforge setup' to prepare your env for access to Rubyforge
25
- - See http://newgem.rubyforge.org/rubyforge.html for more details
26
- EOS
27
- exit
28
- end
29
- end
30
- RUBYFORGE_USERNAME.replace @config["username"]
31
- end
32
-
33
-
34
- REV = nil
35
- # UNCOMMENT IF REQUIRED:
36
- # REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil
37
- VERS = RubiGen::VERSION
38
- RDOC_OPTS = ['--quiet', '--title', 'rubigen documentation',
39
- "--opname", "index.html",
40
- "--line-numbers",
41
- "--main", "README",
42
- "--inline-source"]
43
-
44
- class Hoe
45
- def extra_deps
46
- @extra_deps.reject! { |x| Array(x).first == 'hoe' }
47
- @extra_deps
48
- end
49
- end
50
-
51
- # Generate all the Rake tasks
52
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
53
- hoe = Hoe.new(GEM_NAME, VERS) do |p|
54
- p.author = AUTHOR
55
- p.description = DESCRIPTION
56
- p.email = EMAIL
57
- p.summary = DESCRIPTION
58
- p.url = HOMEPATH
59
- p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
60
- p.test_globs = ["test/**/test_*.rb"]
61
- p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
62
-
63
- # == Optional
64
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
65
- p.extra_deps = [ [ 'activesupport', '>= 1.4.4'] ] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
66
-
67
- #p.spec_extras = {} # A hash of extra values to set in the gemspec.
68
-
69
- end
70
-
71
- CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
72
- PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
73
- hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
74
- hoe.rsync_args = '-av --delete --ignore-errors'
@@ -1,17 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
-
4
- require 'rubygems'
5
- %w[rake hoe].each do |req_gem|
6
- begin
7
- require req_gem
8
- rescue LoadError
9
- puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
- puts "Installation: gem install #{req_gem} -y"
11
- exit
12
- end
13
- end
14
-
15
- $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
16
-
17
- require 'rubigen'