newgem 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.16 2006-11-11
2
+
3
+ * Added a newgem_simple_generator to support the creation of a skinny gem
4
+ skeleton [thx wycats]
5
+ * Added '.git*' to default list of ignored files by hoe
6
+ * Cleaned the history join string to make proper \n instead of \\n
7
+ * Checked in empty_log as empty.log was being ignored by svn
8
+
1
9
  == 0.15.0 2007-11-05
2
10
 
3
11
  * Promoted 'application_generator' and 'component_generator' to Rubigen
data/Manifest.txt CHANGED
@@ -12,7 +12,7 @@ app_generators/newgem/templates/Rakefile
12
12
  app_generators/newgem/templates/app.rb
13
13
  app_generators/newgem/templates/config/hoe.rb
14
14
  app_generators/newgem/templates/config/requirements.rb
15
- app_generators/newgem/templates/empty.log
15
+ app_generators/newgem/templates/empty_log
16
16
  app_generators/newgem/templates/module.rb
17
17
  app_generators/newgem/templates/readme
18
18
  app_generators/newgem/templates/setup.rb
@@ -24,6 +24,15 @@ app_generators/newgem/templates/tasks/website.rake
24
24
  app_generators/newgem/templates/test.rb
25
25
  app_generators/newgem/templates/test_helper.rb
26
26
  app_generators/newgem/templates/version.rb
27
+ app_generators/newgem_simple/USAGE
28
+ app_generators/newgem_simple/newgem_simple_generator.rb
29
+ app_generators/newgem_simple/templates/LICENSE
30
+ app_generators/newgem_simple/templates/README
31
+ app_generators/newgem_simple/templates/Rakefile
32
+ app_generators/newgem_simple/templates/TODO
33
+ app_generators/newgem_simple/templates/lib/templates.rb
34
+ app_generators/newgem_simple/templates/spec/spec_helper.rb
35
+ app_generators/newgem_simple/templates/spec/templates_spec.rb.erb
27
36
  bin/newgem
28
37
  bundles/RubyGem.tmbundle/Snippets/History header trunk.tmSnippet
29
38
  bundles/RubyGem.tmbundle/Snippets/History header.tmSnippet
@@ -79,6 +88,7 @@ test/test_install_jruby_generator.rb
79
88
  test/test_install_rspec_generator.rb
80
89
  test/test_install_website_generator.rb
81
90
  test/test_newgem_generator.rb
91
+ test/test_newgem_simple_generator.rb
82
92
  test/test_plain_theme_generator.rb
83
93
  website/images/beginning-ruby.jpg
84
94
  website/index.html
@@ -59,7 +59,7 @@ class NewgemGenerator < RubiGen::Base
59
59
  m.template_copy_each %w( hoe.rb requirements.rb ), "config"
60
60
 
61
61
  %w(debug).each { |file|
62
- m.file "empty.log", "log/#{file}.log", :chmod => 0666
62
+ m.file "empty_log", "log/#{file}.log", :chmod => 0666
63
63
  }
64
64
 
65
65
  # Tasks
@@ -134,6 +134,8 @@ EOS
134
134
  "Default: 0.0.1") { |options[:version]| }
135
135
  opts.on("-W", "--website-disable",
136
136
  "Disables the generation of the website for your RubyGem.") { |options[:disable_website]| }
137
+ opts.on("--simple",
138
+ "Creates a simple RubyGems scaffold.") { |x| }
137
139
  end
138
140
 
139
141
  def extract_options
@@ -55,10 +55,10 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
55
55
  p.url = HOMEPATH
56
56
  p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
57
57
  p.test_globs = ["test/**/test_*.rb"]
58
- p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
58
+ p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '.git*'] #An array of file patterns to delete on clean.
59
59
 
60
60
  # == Optional
61
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\\n\\n")
61
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
62
62
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
63
63
  <% if is_jruby %>
64
64
  # JRuby gem created, e.g. <%= gem_name %>-X.Y.Z-jruby.gem
@@ -0,0 +1,5 @@
1
+ Description:
2
+
3
+
4
+ Usage:
5
+
@@ -0,0 +1,69 @@
1
+ class NewgemSimpleGenerator < RubiGen::Base
2
+
3
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
4
+ Config::CONFIG['ruby_install_name'])
5
+
6
+ default_options :author => nil
7
+
8
+ attr_reader :name
9
+
10
+ def initialize(runtime_args, runtime_options = {})
11
+ super
12
+ usage if args.empty?
13
+ @destination_root = File.expand_path(args.shift)
14
+ @name = base_name
15
+ extract_options
16
+ end
17
+
18
+ def manifest
19
+ record do |m|
20
+ # Ensure appropriate folder(s) exists
21
+ m.directory ''
22
+ BASEDIRS.each { |path| m.directory path }
23
+
24
+ # Create stubs
25
+ # m.template "template.rb", "some_file_after_erb.rb"
26
+ m.file "lib/templates.rb", "lib/#{name}.rb"
27
+ m.template "spec/templates_spec.rb.erb", "spec/#{name}_spec.rb"
28
+
29
+ %w[ LICENSE Rakefile README TODO spec/spec_helper.rb ].each {|file| m.file file, file }
30
+
31
+ m.dependency "install_rubigen_scripts", [destination_root, 'newgem_simple'],
32
+ :shebang => options[:shebang], :collision => :force
33
+ end
34
+ end
35
+
36
+ protected
37
+ def banner
38
+ <<-EOS
39
+ Creates a simple RubyGems scaffold.
40
+
41
+ USAGE: #{spec.name} name --simple"
42
+ EOS
43
+ end
44
+
45
+ def add_options!(opts)
46
+ opts.separator ''
47
+ opts.separator 'Options:'
48
+ # For each option below, place the default
49
+ # at the top of the file next to "default_options"
50
+ # opts.on("-a", "--author=\"Your Name\"", String,
51
+ # "Some comment about this option",
52
+ # "Default: none") { |options[:author]| }
53
+ opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
54
+ end
55
+
56
+ def extract_options
57
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
58
+ # Templates can access these value via the attr_reader-generated methods, but not the
59
+ # raw instance variable value.
60
+ # @author = options[:author]
61
+ end
62
+
63
+ # Installation skeleton. Intermediate directories are automatically
64
+ # created so don't sweat their absence here.
65
+ BASEDIRS = %w(
66
+ lib
67
+ spec
68
+ )
69
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2007 YOUR NAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,4 @@
1
+ templates
2
+ =================
3
+
4
+ A plugin for the Merb framework that provides ....
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'rake/gempackagetask'
3
+
4
+ GEM = "new_gem"
5
+ VERSION = "0.0.1"
6
+ AUTHOR = "Your Name"
7
+ EMAIL = "Your Email"
8
+ HOMEPAGE = "http://example.com"
9
+ SUMMARY = "A gem that provides..."
10
+
11
+ spec = Gem::Specification.new do |s|
12
+ s.name = GEM
13
+ s.version = VERSION
14
+ s.platform = Gem::Platform::RUBY
15
+ s.has_rdoc = true
16
+ s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
17
+ s.summary = SUMMARY
18
+ s.description = s.summary
19
+ s.author = AUTHOR
20
+ s.email = EMAIL
21
+ s.homepage = HOMEPAGE
22
+
23
+ # Uncomment this to add a dependency
24
+ # s.add_dependency "foo"
25
+
26
+ s.require_path = 'lib'
27
+ s.autorequire = GEM
28
+ s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs}/**/*")
29
+ end
30
+
31
+ Rake::GemPackageTask.new(spec) do |pkg|
32
+ pkg.gem_spec = spec
33
+ end
34
+
35
+ task :install => [:package] do
36
+ sh %{sudo gem install pkg/#{GEM}-#{VERSION}}
37
+ end
@@ -0,0 +1,4 @@
1
+ TODO:
2
+ Fix LICENSE with your name
3
+ Fix Rakefile with your name and contact info
4
+ Add your code to lib/<%= name %>.rb
@@ -0,0 +1,2 @@
1
+ $TESTING=true
2
+ $:.push File.join(File.dirname(__FILE__), '..', 'lib')
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "<%= name %>" do
4
+ it "should do nothing" do
5
+ true.should == true
6
+ end
7
+ end
data/bin/newgem CHANGED
@@ -7,7 +7,11 @@ if %w(-v --version).include? ARGV.first
7
7
  exit(0)
8
8
  end
9
9
 
10
-
11
10
  require 'rubigen/scripts/generate'
12
11
  RubiGen::Base.use_application_sources! :rubygems, :newgem, :newgem_theme
13
- RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'newgem')
12
+
13
+ if ARGV.delete "--simple"
14
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'newgem_simple')
15
+ else
16
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'newgem')
17
+ end
@@ -1,7 +1,7 @@
1
1
  module Newgem #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 15
4
+ MINOR = 16
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
@@ -0,0 +1,52 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestNewgemSimpleGenerator < Test::Unit::TestCase
4
+ include RubiGen::GeneratorTestHelper
5
+
6
+ def setup
7
+ bare_setup
8
+ end
9
+
10
+ def teardown
11
+ bare_teardown
12
+ end
13
+
14
+ # Some generator-related assertions:
15
+ # assert_generated_file(name, &block) # block passed the file contents
16
+ # assert_directory_exists(name)
17
+ # assert_generated_class(name, &block)
18
+ # assert_generated_module(name, &block)
19
+ # assert_generated_test_for(name, &block)
20
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
21
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
22
+ #
23
+ # Other helper methods are:
24
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
25
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
26
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
27
+
28
+ def test_generator_without_options
29
+ run_generator('newgem_simple', [APP_ROOT], sources)
30
+ assert_directory_exists "lib"
31
+ assert_generated_file "lib/#{PROJECT_NAME}.rb"
32
+ assert_directory_exists "spec"
33
+ assert_generated_file "spec/spec_helper.rb"
34
+ assert_generated_file "spec/#{PROJECT_NAME}_spec.rb" do |file|
35
+ file =~ /describe "#{PROJECT_NAME}" do/
36
+ end
37
+ assert_generated_file "LICENSE"
38
+ assert_generated_file "Rakefile"
39
+ assert_generated_file "README"
40
+ assert_generated_file "TODO"
41
+ end
42
+
43
+ private
44
+ def sources
45
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
46
+ ]
47
+ end
48
+
49
+ def generator_path
50
+ "app_generators"
51
+ end
52
+ end
data/website/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <h1>New Gem Generator</h1>
34
34
  <div id="version"> <!-- class="clickable" onclick='document.location = ""; return true' -->
35
35
  <p>Get Version</p>
36
- <a href="" class="numbers">0.15.0</a>
36
+ <a href="" class="numbers">0.16.0</a>
37
37
  <p>Featured in</p>
38
38
  <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FBeginning-Ruby-Novice-Professional-Experts%2Fdp%2F1590597664%2F&tag=drnic-20&linkCode=ur2&camp=1789&creative=9325" class="book"><img src="images/beginning-ruby.jpg" /></a>
39
39
  </div>
@@ -336,7 +336,7 @@ other stories and things.</p>
336
336
 
337
337
  <p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
338
338
  <p class="coda">
339
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 16th October 2007<br>
339
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 17th October 2007<br>
340
340
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
341
341
  </p>
342
342
  </div>
@@ -33,7 +33,7 @@
33
33
  <h1>New Gem Generator</h1>
34
34
  <div id="version"> <!-- class="clickable" onclick='document.location = ""; return true' -->
35
35
  <p>Get Version</p>
36
- <a href="" class="numbers">0.15.0</a>
36
+ <a href="" class="numbers">0.16.0</a>
37
37
  <p>Featured in</p>
38
38
  <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FBeginning-Ruby-Novice-Professional-Experts%2Fdp%2F1590597664%2F&tag=drnic-20&linkCode=ur2&camp=1789&creative=9325" class="book"><img src="images/beginning-ruby.jpg" /></a>
39
39
  </div>
@@ -263,7 +263,7 @@ OPTIONS
263
263
  specify whether release_notes/changes are preformatted
264
264
  </pre>
265
265
  <p class="coda">
266
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 23rd June 2007<br>
266
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 24th June 2007<br>
267
267
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
268
268
  </p>
269
269
  </div>
@@ -1,3 +1,3 @@
1
1
  // Announcement JS file
2
- var version = "0.15.0";
2
+ var version = "0.16.0";
3
3
  MagicAnnouncement.show('compositekeys', version);
data/website/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // Version JS file
2
- var version = "0.15.0";
2
+ var version = "0.16.0";
3
3
 
4
4
  document.write(" - " + version);
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4.3
3
3
  specification_version: 1
4
4
  name: newgem
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.15.0
7
- date: 2007-11-05 00:00:00 -08:00
6
+ version: 0.16.0
7
+ date: 2007-11-12 00:00:00 +10:00
8
8
  summary: Make your own gems at home
9
9
  require_paths:
10
10
  - lib
@@ -43,7 +43,7 @@ files:
43
43
  - app_generators/newgem/templates/app.rb
44
44
  - app_generators/newgem/templates/config/hoe.rb
45
45
  - app_generators/newgem/templates/config/requirements.rb
46
- - app_generators/newgem/templates/empty.log
46
+ - app_generators/newgem/templates/empty_log
47
47
  - app_generators/newgem/templates/module.rb
48
48
  - app_generators/newgem/templates/readme
49
49
  - app_generators/newgem/templates/setup.rb
@@ -55,6 +55,15 @@ files:
55
55
  - app_generators/newgem/templates/test.rb
56
56
  - app_generators/newgem/templates/test_helper.rb
57
57
  - app_generators/newgem/templates/version.rb
58
+ - app_generators/newgem_simple/USAGE
59
+ - app_generators/newgem_simple/newgem_simple_generator.rb
60
+ - app_generators/newgem_simple/templates/LICENSE
61
+ - app_generators/newgem_simple/templates/README
62
+ - app_generators/newgem_simple/templates/Rakefile
63
+ - app_generators/newgem_simple/templates/TODO
64
+ - app_generators/newgem_simple/templates/lib/templates.rb
65
+ - app_generators/newgem_simple/templates/spec/spec_helper.rb
66
+ - app_generators/newgem_simple/templates/spec/templates_spec.rb.erb
58
67
  - bin/newgem
59
68
  - bundles/RubyGem.tmbundle/Snippets/History header trunk.tmSnippet
60
69
  - bundles/RubyGem.tmbundle/Snippets/History header.tmSnippet
@@ -110,6 +119,7 @@ files:
110
119
  - test/test_install_rspec_generator.rb
111
120
  - test/test_install_website_generator.rb
112
121
  - test/test_newgem_generator.rb
122
+ - test/test_newgem_simple_generator.rb
113
123
  - test/test_plain_theme_generator.rb
114
124
  - website/images/beginning-ruby.jpg
115
125
  - website/index.html
@@ -132,6 +142,7 @@ test_files:
132
142
  - test/test_install_rspec_generator.rb
133
143
  - test/test_install_website_generator.rb
134
144
  - test/test_newgem_generator.rb
145
+ - test/test_newgem_simple_generator.rb
135
146
  - test/test_plain_theme_generator.rb
136
147
  rdoc_options:
137
148
  - --main