newgem 1.0.7 → 1.1.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.
@@ -1,3 +1,11 @@
1
+ == 1.1.0 2008-11-11
2
+
3
+ * Support for ~/.newgem.yml file for default CLI arguments
4
+ * Example content: `default: -T rspec -i cucumber`
5
+ * executable and extconf generators will create specs or tests depending on what you are using in your RubyGems
6
+ * executable generator: test/spec files give more useful starting point with a StringIO passed into CLI.execute(stdout, args)
7
+ * 'rake manifest' instead of 'rake manifest:refresh' [was actually released in 1.0.7]
8
+
1
9
  == 1.0.7 2008-11-08
2
10
 
3
11
  * Removed 'rake local_deploy' and changed website to reference 'rake install_gem' for same purpose [fixed #9]
@@ -35,6 +35,7 @@ cucumber_generators/feature/templates/steps.erb
35
35
  features/development.feature
36
36
  features/executable_generator.feature
37
37
  features/expected_outputs/newgem.out
38
+ features/extconf.feature
38
39
  features/install_cucumber.feature
39
40
  features/install_website.feature
40
41
  features/newgem_cli.feature
@@ -79,9 +80,10 @@ rubygems_generators/executable/templates/test/test_cli.rb.erb
79
80
  rubygems_generators/extconf/USAGE
80
81
  rubygems_generators/extconf/extconf_generator.rb
81
82
  rubygems_generators/extconf/templates/README.txt
82
- rubygems_generators/extconf/templates/autotest.rb
83
+ rubygems_generators/extconf/templates/autotest.rb.erb
83
84
  rubygems_generators/extconf/templates/ext/c_file.c.erb
84
85
  rubygems_generators/extconf/templates/ext/extconf.rb.erb
86
+ rubygems_generators/extconf/templates/spec/spec.rb.erb
85
87
  rubygems_generators/extconf/templates/tasks/extconf.rake
86
88
  rubygems_generators/extconf/templates/tasks/extconf_name.rake
87
89
  rubygems_generators/extconf/templates/test/test.rb.erb
@@ -27,7 +27,7 @@ class NewgemGenerator < RubiGen::Base
27
27
  attr_reader :is_jruby
28
28
 
29
29
  def initialize(runtime_args, runtime_options = {})
30
- super
30
+ super(config_args_and_runtime_args(runtime_args), runtime_options)
31
31
  usage if args.empty?
32
32
  @destination_root = File.expand_path(args.shift)
33
33
  @gem_name = base_name
@@ -163,6 +163,18 @@ EOS
163
163
  @project_name = options[:project] if options.include?(:project)
164
164
  @install_generators = options[:install] || []
165
165
  end
166
+
167
+ # first attempt to merge config args (single string) and runtime args
168
+ def config_args_and_runtime_args(runtime_args)
169
+ newgem_config = File.expand_path(File.join(ENV['HOME'], '.newgem.yml'))
170
+ if File.exists?(newgem_config)
171
+ config = YAML.load(File.read(newgem_config))
172
+ if config_args = (config["default"] || config[config.keys.first])
173
+ return config_args.split(" ") + runtime_args
174
+ end
175
+ end
176
+ runtime_args
177
+ end
166
178
 
167
179
  # Installation skeleton. Intermediate directories are automatically
168
180
  # created so don't sweat their absence here.
data/bin/newgem CHANGED
@@ -4,7 +4,7 @@ require 'rubygems'
4
4
  require 'rubigen'
5
5
 
6
6
  if %w(-v --version).include? ARGV.first
7
- require 'newgem'
7
+ require File.dirname(__FILE__) + "/../lib/newgem"
8
8
  puts "#{File.basename($0)} #{Newgem::VERSION}"
9
9
  exit(0)
10
10
  end
@@ -9,5 +9,5 @@ Feature: Development processes of newgem itself (rake tasks)
9
9
  And 'pkg' folder is deleted
10
10
  When task 'rake gem' is invoked
11
11
  Then folder 'pkg' is created
12
- And file with name matching 'pkg/*.gem' is created else you should run "rake manifest:refresh" to fix this
12
+ And file with name matching 'pkg/*.gem' is created else you should run "rake manifest" to fix this
13
13
  And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
@@ -39,7 +39,7 @@ Feature: Generate an executable/CLI scaffold
39
39
  When run unit tests for test file 'test/test_my_app_cli.rb'
40
40
  Then all 1 tests pass
41
41
 
42
- Scenario: Run unit tests after executable generator should all pass for rspec
42
+ Scenario: Run examples after executable generator should all pass for rspec
43
43
  Given an existing newgem scaffold using options '-T rspec' [called 'my_project']
44
44
  And 'executable' generator is invoked with arguments 'my_app'
45
45
  When run unit tests for test file 'spec/my_app_cli_spec.rb'
@@ -0,0 +1,38 @@
1
+ Feature: Write and test C-extensions
2
+ In order to leverage existing C libraries
3
+ As a RubyGems developer
4
+ I want to generate a scaffold with test/spec support for writing Ruby C-extensions
5
+
6
+ Scenario: Run extconf generator with name of extension
7
+ Given an existing newgem scaffold [called 'my_project']
8
+ When 'extconf' generator is invoked with arguments 'my_ext'
9
+ Then folder 'ext/my_ext' is created
10
+ And file 'ext/my_ext/extconf.rb' is created
11
+ And file 'ext/my_ext/my_ext.c' is created
12
+ And file 'test/test_my_ext_extn.rb' is created
13
+ And file '.autotest' is created
14
+ And contents of file '.autotest' does match /test\/test_.*_extn\.rb/
15
+
16
+ Scenario: Run extconf generator with name of extension on rspec project
17
+ Given an existing newgem scaffold using options '-T rspec' [called 'my_project']
18
+ When 'extconf' generator is invoked with arguments 'my_ext'
19
+ Then folder 'ext/my_ext' is created
20
+ And file 'ext/my_ext/extconf.rb' is created
21
+ And file 'ext/my_ext/my_ext.c' is created
22
+ And file 'spec/my_ext_extn_spec.rb' is created
23
+ And file '.autotest' is created
24
+ And contents of file '.autotest' does match /spec\/.*_extn_spec\.rb/
25
+
26
+ Scenario: Run unit tests after executable generator should all pass for test/unit
27
+ Given an existing newgem scaffold [called 'my_project']
28
+ And 'extconf' generator is invoked with arguments 'my_ext'
29
+ When task 'rake compile' is invoked
30
+ And run unit tests for test file 'test/test_my_ext_extn.rb'
31
+ Then all 1 tests pass
32
+
33
+ Scenario: Run examples after executable generator should all pass for rspec
34
+ Given an existing newgem scaffold using options '-T rspec' [called 'my_project']
35
+ And 'extconf' generator is invoked with arguments 'my_ext'
36
+ When task 'rake compile' is invoked
37
+ And run unit tests for test file 'spec/my_ext_extn_spec.rb'
38
+ Then all 1 examples pass
@@ -58,6 +58,26 @@ Feature: Can run 'newgem' to create RubyGem scaffolds
58
58
  And does not invoke generator 'install_rspec'
59
59
  And Rakefile can display tasks successfully
60
60
 
61
+ Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and no argument options
62
+ Given a safe folder
63
+ And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
64
+ When newgem is executed for project 'my_project' with options ''
65
+ Then does invoke generator 'install_rspec'
66
+ And does invoke generator 'install_cucumber'
67
+ And does not invoke generator 'install_website'
68
+ And does not invoke generator 'install_test_unit'
69
+ And Rakefile can display tasks successfully
70
+
71
+ Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and merge with runtime args
72
+ Given a safe folder
73
+ And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
74
+ When newgem is executed for project 'my_project' with options '-i website'
75
+ Then does invoke generator 'install_rspec'
76
+ And does invoke generator 'install_cucumber'
77
+ And does invoke generator 'install_website'
78
+ And does not invoke generator 'install_test_unit'
79
+ And Rakefile can display tasks successfully
80
+
61
81
  Scenario: Run newgem and show current version number
62
82
  Given a safe folder
63
83
  When newgem is executed only with options '--version'
@@ -4,7 +4,7 @@ Given %r{^an existing newgem scaffold \[called '(.*)'\]} do |project_name|
4
4
  setup_active_project_folder project_name
5
5
  FileUtils.chdir @tmp_root do
6
6
  @stdout = "newgem.out"
7
- system "ruby #{newgem} #{project_name} > #{@stdout}"
7
+ system "ruby #{newgem} #{project_name} > #{@stdout} 2> #{@stdout}"
8
8
  force_local_lib_override
9
9
  end
10
10
  end
@@ -15,12 +15,12 @@ Given %r{^an existing newgem scaffold using options '(.*)' \[called '(.*)'\]} do
15
15
  setup_active_project_folder project_name
16
16
  FileUtils.chdir @tmp_root do
17
17
  @stdout = "newgem.out"
18
- system "ruby #{newgem} #{arguments} #{project_name} > #{@stdout}"
18
+ system "ruby #{newgem} #{arguments} #{project_name} > #{@stdout} 2> #{@stdout}"
19
19
  force_local_lib_override
20
20
  end
21
21
  end
22
22
 
23
- Given /^project website configuration for safe folder on local machine$/ do
23
+ Given %r{^project website configuration for safe folder on local machine$} do
24
24
  @remote_folder = File.expand_path(File.join(@tmp_root, 'website'))
25
25
  FileUtils.rm_rf @remote_folder
26
26
  FileUtils.mkdir_p @remote_folder
@@ -32,6 +32,15 @@ Given /^project website configuration for safe folder on local machine$/ do
32
32
  end
33
33
  end
34
34
 
35
+ Given %r{^~\/([^\s]+) contains (\{.*\})$} do |file, config|
36
+ in_home_folder do
37
+ File.open(file, 'w') do |f|
38
+ yaml = eval(config)
39
+ f << yaml.to_yaml
40
+ end
41
+ end
42
+ end
43
+
35
44
  def newgem_cmd
36
45
  File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
37
46
  end
@@ -1,12 +1,18 @@
1
1
  def in_project_folder(&block)
2
- project_folder = @active_project_folder
2
+ project_folder = @active_project_folder || @tmp_root
3
3
  FileUtils.chdir(project_folder, &block)
4
4
  end
5
5
 
6
+ def in_home_folder(&block)
7
+ FileUtils.chdir(@home_path, &block)
8
+ end
9
+
6
10
  Given %r{^a safe folder} do
7
11
  FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
8
12
  FileUtils.mkdir_p @tmp_root
13
+ FileUtils.mkdir_p @home_path = File.expand_path(File.join(@tmp_root, "home"))
9
14
  @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
15
+ Given "env variable $HOME set to '#{@home_path}'"
10
16
  end
11
17
 
12
18
  Given %r{^this project is active project folder} do
@@ -114,6 +120,15 @@ Then %r{^output (does|does not) match \/(.*)\/} do |does, regex|
114
120
  actual_output.should_not(match(/#{regex}/))
115
121
  end
116
122
 
123
+ Then %r{^contents of file '(.*)' (does|does not) match \/(.*)\/} do |file, does, regex|
124
+ in_project_folder do
125
+ actual_output = File.read(file)
126
+ (does == 'does') ?
127
+ actual_output.should(match(/#{regex}/)) :
128
+ actual_output.should_not(match(/#{regex}/))
129
+ end
130
+ end
131
+
117
132
  Then %r{^all (\d+) tests pass} do |expected_test_count|
118
133
  expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
119
134
  actual_output = File.read(@stdout)
@@ -4,5 +4,5 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require "hoe-patched"
5
5
 
6
6
  module Newgem
7
- VERSION = '1.0.7'
7
+ VERSION = '1.1.0'
8
8
  end
@@ -26,14 +26,15 @@ class ExecutableGenerator < RubiGen::Base
26
26
  # Ensure bin folder exists
27
27
  m.directory "bin"
28
28
  m.directory "lib/#{bin_name}"
29
- m.directory "test"
30
29
 
31
30
  # App stub
32
31
  m.template "bin/app.rb.erb", "bin/#{bin_name}"
33
32
  m.template "lib/app/cli.rb.erb", "lib/#{bin_name}/cli.rb"
34
33
  if using_rspec?
34
+ m.directory "spec"
35
35
  m.template "spec/cli_spec.rb.erb", "spec/#{bin_name}_cli_spec.rb"
36
36
  else
37
+ m.directory "test"
37
38
  m.template "test/test_cli.rb.erb", "test/test_#{bin_name}_cli.rb"
38
39
  end
39
40
  end
@@ -7,4 +7,4 @@ require File.expand_path(File.dirname(__FILE__) + "/../lib/<%= project_name %>")
7
7
 
8
8
  require "<%= bin_name %>/cli"
9
9
 
10
- <%= module_name %>::CLI.execute(ARGV)
10
+ <%= module_name %>::CLI.execute(STDOUT, ARGV)
@@ -2,7 +2,7 @@ require 'optparse'
2
2
 
3
3
  module <%= module_name %>
4
4
  class CLI
5
- def self.execute(arguments=[])
5
+ def self.execute(stdout, arguments=[])
6
6
 
7
7
  # NOTE: the option -p/--path= is given as an example, and should be replaced in your application.
8
8
 
@@ -23,13 +23,13 @@ module <%= module_name %>
23
23
  opts.on("-p", "--path=PATH", String,
24
24
  "This is a sample message.",
25
25
  "For multiple lines, add more strings.",
26
- "Default: ~") { |arg| OPTIONS[:path] = arg }
26
+ "Default: ~") { |arg| options[:path] = arg }
27
27
  opts.on("-h", "--help",
28
- "Show this help message.") { puts opts; exit }
28
+ "Show this help message.") { stdout.puts opts; exit }
29
29
  opts.parse!(arguments)
30
30
 
31
31
  if mandatory_options && mandatory_options.find { |option| options[option.to_sym].nil? }
32
- puts opts; exit
32
+ stdout.puts opts; exit
33
33
  end
34
34
  end
35
35
 
@@ -1,8 +1,15 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
  require '<%= bin_name %>/cli'
3
3
 
4
- describe "Execute CLI" do
5
- it "should execute" do
6
- <%= module_name %>::CLI.execute
4
+ describe <%= module_name %>::CLI, "execute" do
5
+ before(:each) do
6
+ @stdout_io = StringIO.new
7
+ <%= module_name %>::CLI.execute(@stdout_io, [])
8
+ @stdout_io.rewind
9
+ @stdout = @stdout_io.read
10
+ end
11
+
12
+ it "should do something" do
13
+ @stdout.should_not =~ /To update this executable/
7
14
  end
8
15
  end
@@ -2,7 +2,14 @@ require File.join(File.dirname(__FILE__), "test_helper.rb")
2
2
  require '<%= bin_name %>/cli'
3
3
 
4
4
  class Test<%= module_name %>Cli < Test::Unit::TestCase
5
- def test_execute
6
- <%= module_name %>::CLI.execute
5
+ def setup
6
+ @stdout_io = StringIO.new
7
+ <%= module_name %>::CLI.execute(@stdout_io, [])
8
+ @stdout_io.rewind
9
+ @stdout = @stdout_io.read
10
+ end
11
+
12
+ def test_not_print_default_output
13
+ assert_no_match(/To update this executable/, @stdout)
7
14
  end
8
15
  end
@@ -10,7 +10,6 @@ class ExtconfGenerator < RubiGen::Base
10
10
  @name = args.shift
11
11
  @module_name = name.camelcase
12
12
  @test_module_name = @module_name + "Extn"
13
- extract_options
14
13
  end
15
14
 
16
15
  def manifest
@@ -18,20 +17,30 @@ class ExtconfGenerator < RubiGen::Base
18
17
  # Ensure appropriate folder(s) exists
19
18
  m.directory "ext/#{name}"
20
19
  m.directory "tasks/extconf"
21
- m.directory "test"
22
20
 
23
21
  # Create stubs
24
22
  m.template "ext/c_file.c.erb", "ext/#{name}/#{name}.c"
25
23
  m.template "ext/extconf.rb.erb", "ext/#{name}/extconf.rb"
26
- m.template "test/test.rb.erb", "test/test_#{name}_extn.rb"
24
+ if using_rspec?
25
+ m.directory "spec"
26
+ m.template "spec/spec.rb.erb", "spec/#{name}_extn_spec.rb"
27
+ else
28
+ m.directory "test"
29
+ m.template "test/test.rb.erb", "test/test_#{name}_extn.rb"
30
+ end
31
+
27
32
  m.file "tasks/extconf.rake", "tasks/extconf.rake"
28
33
  m.file "tasks/extconf_name.rake", "tasks/extconf/#{name}.rake"
29
34
 
30
- m.file "autotest.rb", ".autotest"
35
+ m.template "autotest.rb.erb", ".autotest"
31
36
  m.readme "README.txt"
32
37
  end
33
38
  end
34
39
 
40
+ def using_rspec?
41
+ !Dir[File.join(destination_root, 'spec')].empty?
42
+ end
43
+
35
44
  protected
36
45
  def banner
37
46
  <<-EOS
@@ -44,21 +53,4 @@ USAGE: #{$0} #{spec.name} name
44
53
  EOS
45
54
  end
46
55
 
47
- def add_options!(opts)
48
- # opts.separator ''
49
- # opts.separator 'Options:'
50
- # For each option below, place the default
51
- # at the top of the file next to "default_options"
52
- # opts.on("-a", "--author=\"Your Name\"", String,
53
- # "Some comment about this option",
54
- # "Default: none") { |options[:author]| }
55
- # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
56
- end
57
-
58
- def extract_options
59
- # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
60
- # Templates can access these value via the attr_reader-generated methods, but not the
61
- # raw instance variable value.
62
- # @author = options[:author]
63
- end
64
56
  end
@@ -1,6 +1,10 @@
1
1
  Autotest.add_hook :initialize do |at|
2
2
  at.add_mapping(/ext\/.*\/(.*)\.[ch]/) do |_, m|
3
+ <% if using_rspec? -%>
4
+ ["spec/#{m[1]}_extn_spec.rb"]
5
+ <% else -%>
3
6
  ["test/test_#{m[1]}_extn.rb"]
7
+ <% end -%>
4
8
  end
5
9
  end
6
10
 
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ $:.unshift File.dirname(__FILE__) + "/../ext/<%= name %>"
4
+ require "<%= name %>.so"
5
+
6
+ describe "<%= name %>" do
7
+ it "should do nothing" do
8
+ true.should == true
9
+ end
10
+ end
@@ -9,5 +9,5 @@ Feature: Development processes of newgem itself (rake tasks)
9
9
  And 'pkg' folder is deleted
10
10
  When task 'rake gem' is invoked
11
11
  Then folder 'pkg' is created
12
- And file with name matching 'pkg/*.gem' is created else you should run "rake manifest:refresh" to fix this
12
+ And file with name matching 'pkg/*.gem' is created else you should run "rake manifest" to fix this
13
13
  And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
@@ -1,12 +1,18 @@
1
1
  def in_project_folder(&block)
2
- project_folder = @active_project_folder
2
+ project_folder = @active_project_folder || @tmp_root
3
3
  FileUtils.chdir(project_folder, &block)
4
4
  end
5
5
 
6
+ def in_home_folder(&block)
7
+ FileUtils.chdir(@home_path, &block)
8
+ end
9
+
6
10
  Given %r{^a safe folder} do
7
11
  FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
8
12
  FileUtils.mkdir_p @tmp_root
13
+ FileUtils.mkdir_p @home_path = File.expand_path(File.join(@tmp_root, "home"))
9
14
  @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
15
+ Given "env variable $HOME set to '#{@home_path}'"
10
16
  end
11
17
 
12
18
  Given %r{^this project is active project folder} do
@@ -114,6 +120,15 @@ Then %r{^output (does|does not) match \/(.*)\/} do |does, regex|
114
120
  actual_output.should_not(match(/#{regex}/))
115
121
  end
116
122
 
123
+ Then %r{^contents of file '(.*)' (does|does not) match \/(.*)\/} do |file, does, regex|
124
+ in_project_folder do
125
+ actual_output = File.read(file)
126
+ (does == 'does') ?
127
+ actual_output.should(match(/#{regex}/)) :
128
+ actual_output.should_not(match(/#{regex}/))
129
+ end
130
+ end
131
+
117
132
  Then %r{^all (\d+) tests pass} do |expected_test_count|
118
133
  expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
119
134
  actual_output = File.read(@stdout)
@@ -1,2 +1,3 @@
1
+ require 'stringio'
1
2
  require 'test/unit'
2
3
  require File.dirname(__FILE__) + '/../lib/<%= gem_name %>'
@@ -11,20 +11,6 @@ class TestExtconfGenerator < Test::Unit::TestCase
11
11
  bare_teardown
12
12
  end
13
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
14
  def test_generator_without_options
29
15
  name = "my_ext"
30
16
  run_generator('extconf', [name], sources)
@@ -38,6 +24,21 @@ class TestExtconfGenerator < Test::Unit::TestCase
38
24
  assert_generated_file(".autotest")
39
25
  end
40
26
 
27
+ def test_generator_for_rspec_project
28
+ name = "my_ext"
29
+ FileUtils.mkdir_p(File.join(APP_ROOT, 'spec'))
30
+ `touch #{APP_ROOT}/spec/spec_helper.rb`
31
+ run_generator('extconf', [name], sources)
32
+ assert_directory_exists("ext/my_ext")
33
+ assert_directory_exists("tasks/extconf")
34
+ assert_generated_file("ext/my_ext/extconf.rb")
35
+ assert_generated_file("ext/my_ext/my_ext.c")
36
+ assert_generated_file("tasks/extconf.rake")
37
+ assert_generated_file("tasks/extconf/my_ext.rake")
38
+ assert_generated_file("spec/my_ext_extn_spec.rb")
39
+ assert_generated_file(".autotest")
40
+ end
41
+
41
42
  private
42
43
  def sources
43
44
  [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div id="version"> <!-- class="clickable" onclick='document.location = "http://rubyforge.org/projects/newgem"; return true' -->
41
41
  <p>Get Version</p>
42
- <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.7</a>
42
+ <a href="http://rubyforge.org/projects/newgem" class="numbers">1.1.0</a>
43
43
  <p>Featured in</p>
44
44
  <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>
45
45
  </div>
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div id="version"> <!-- class="clickable" onclick='document.location = "http://rubyforge.org/projects/newgem"; return true' -->
41
41
  <p>Get Version</p>
42
- <a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.7</a>
42
+ <a href="http://rubyforge.org/projects/newgem" class="numbers">1.1.0</a>
43
43
  <p>Featured in</p>
44
44
  <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>
45
45
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-08 00:00:00 +10:00
12
+ date: 2008-11-11 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -143,6 +143,7 @@ files:
143
143
  - features/development.feature
144
144
  - features/executable_generator.feature
145
145
  - features/expected_outputs/newgem.out
146
+ - features/extconf.feature
146
147
  - features/install_cucumber.feature
147
148
  - features/install_website.feature
148
149
  - features/newgem_cli.feature
@@ -187,9 +188,10 @@ files:
187
188
  - rubygems_generators/extconf/USAGE
188
189
  - rubygems_generators/extconf/extconf_generator.rb
189
190
  - rubygems_generators/extconf/templates/README.txt
190
- - rubygems_generators/extconf/templates/autotest.rb
191
+ - rubygems_generators/extconf/templates/autotest.rb.erb
191
192
  - rubygems_generators/extconf/templates/ext/c_file.c.erb
192
193
  - rubygems_generators/extconf/templates/ext/extconf.rb.erb
194
+ - rubygems_generators/extconf/templates/spec/spec.rb.erb
193
195
  - rubygems_generators/extconf/templates/tasks/extconf.rake
194
196
  - rubygems_generators/extconf/templates/tasks/extconf_name.rake
195
197
  - rubygems_generators/extconf/templates/test/test.rb.erb