newgem 0.19.1 → 0.20.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.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.20.0 2008-03-30
2
+
3
+ * extconf generator - for C-extensions
4
+ * Hoe instance stored in $hoe so can be accessed from tasks/*.rake
5
+
1
6
  == 0.19.1 2008-03-27
2
7
 
3
8
  * rspec "rake spec" supports spec/**/*_spec.rb search now [Steven Parkes]
data/Manifest.txt CHANGED
@@ -67,6 +67,12 @@ newgem_theme_generators/plain_theme/templates/website/template.rhtml
67
67
  rubygems_generators/executable/USAGE
68
68
  rubygems_generators/executable/executable_generator.rb
69
69
  rubygems_generators/executable/templates/app.rb
70
+ rubygems_generators/extconf/USAGE
71
+ rubygems_generators/extconf/extconf_generator.rb
72
+ rubygems_generators/extconf/templates/ext/c_file.c
73
+ rubygems_generators/extconf/templates/ext/extconf.rb
74
+ rubygems_generators/extconf/templates/tasks/extconf.rake
75
+ rubygems_generators/extconf/templates/tasks/extconf_name.rake
70
76
  rubygems_generators/install_jruby/USAGE
71
77
  rubygems_generators/install_jruby/install_jruby_generator.rb
72
78
  rubygems_generators/install_jruby/templates/tasks/jruby.rake
@@ -88,6 +94,7 @@ tasks/environment.rake
88
94
  tasks/generator_report.rake
89
95
  tasks/website.rake
90
96
  test/test_executable_generator.rb
97
+ test/test_extconf_generator.rb
91
98
  test/test_generator_helper.rb
92
99
  test/test_helper.rb
93
100
  test/test_install_jruby_generator.rb
@@ -47,7 +47,7 @@ end
47
47
 
48
48
  # Generate all the Rake tasks
49
49
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
50
- hoe = Hoe.new(GEM_NAME, VERS) do |p|
50
+ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
51
51
  p.developer(AUTHOR, EMAIL)
52
52
  p.description = DESCRIPTION
53
53
  p.summary = DESCRIPTION
@@ -67,7 +67,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
67
67
  <% end %>
68
68
  end
69
69
 
70
- CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
70
+ CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
71
71
  PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
72
- hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
73
- hoe.rsync_args = '-av --delete --ignore-errors'
72
+ $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
73
+ $hoe.rsync_args = '-av --delete --ignore-errors'
@@ -1,8 +1,8 @@
1
1
  module Newgem #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 19
5
- TINY = 1
4
+ MINOR = 20
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,5 @@
1
+ Description:
2
+
3
+
4
+ Usage:
5
+
@@ -0,0 +1,57 @@
1
+ class ExtconfGenerator < RubiGen::Base
2
+
3
+ default_options :author => nil
4
+
5
+ attr_reader :name
6
+
7
+ def initialize(runtime_args, runtime_options = {})
8
+ super
9
+ usage if args.empty?
10
+ @name = args.shift
11
+ extract_options
12
+ end
13
+
14
+ def manifest
15
+ record do |m|
16
+ # Ensure appropriate folder(s) exists
17
+ m.directory "ext/#{name}"
18
+ m.directory "tasks/extconf"
19
+
20
+ # Create stubs
21
+ m.template "ext/c_file.c", "ext/#{name}/#{name}.c"
22
+ m.template "ext/extconf.rb", "ext/#{name}/extconf.rb"
23
+ m.file "tasks/extconf.rake", "tasks/extconf.rake"
24
+ m.file "tasks/extconf_name.rake", "tasks/extconf/#{name}.rake"
25
+ end
26
+ end
27
+
28
+ protected
29
+ def banner
30
+ <<-EOS
31
+ Creates a C-extension via extconf.
32
+
33
+ The extension be automatically built before running tests,
34
+ and will be built when the RubyGem is installed by users.
35
+
36
+ USAGE: #{$0} #{spec.name} name
37
+ EOS
38
+ end
39
+
40
+ def add_options!(opts)
41
+ # opts.separator ''
42
+ # opts.separator 'Options:'
43
+ # For each option below, place the default
44
+ # at the top of the file next to "default_options"
45
+ # opts.on("-a", "--author=\"Your Name\"", String,
46
+ # "Some comment about this option",
47
+ # "Default: none") { |options[:author]| }
48
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
49
+ end
50
+
51
+ def extract_options
52
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
53
+ # Templates can access these value via the attr_reader-generated methods, but not the
54
+ # raw instance variable value.
55
+ # @author = options[:author]
56
+ end
57
+ end
@@ -0,0 +1,8 @@
1
+ #include <ruby.h>
2
+
3
+ void
4
+ Init_<%= name %>()
5
+ {
6
+ /* nothing here yet */
7
+ printf("extension <%= name %> got loaded!"); /* TODO: remove me */
8
+ }
@@ -0,0 +1,5 @@
1
+ require 'mkmf'
2
+
3
+ dir_config("<%= name %>")
4
+
5
+ create_makefile("<%= name %>")
@@ -0,0 +1,13 @@
1
+ namespace :extconf do
2
+ desc "Compiles the Ruby extension"
3
+ task :compile
4
+ end
5
+
6
+ task :compile => "extconf:compile"
7
+
8
+ task :test => :compile
9
+
10
+ BIN = "*.{bundle,jar,so,obj,pdb,lib,def,exp}"
11
+ $hoe.clean_globs |= ["ext/**/#{BIN}", "lib/**/#{BIN}", 'ext/**/Makefile']
12
+ $hoe.spec.require_paths = Dir['{lib,ext/*}']
13
+ $hoe.spec.extensions = FileList["ext/**/extconf.rb"].to_a
@@ -0,0 +1,38 @@
1
+ namespace :extconf do
2
+ extension = File.basename(__FILE__, '.rake')
3
+
4
+ ext = "ext/#{extension}"
5
+ ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
6
+ ext_files = FileList[
7
+ "#{ext}/*.c",
8
+ "#{ext}/*.h",
9
+ "#{ext}/*.rl",
10
+ "#{ext}/extconf.rb",
11
+ "#{ext}/Makefile",
12
+ # "lib"
13
+ ]
14
+
15
+
16
+ task :compile => extension do
17
+ if Dir.glob("**/#{extension}.*").length == 0
18
+ STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
19
+ STDERR.puts "Gem actually failed to build. Your system is"
20
+ STDERR.puts "NOT configured properly to build #{GEM_NAME}."
21
+ STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
22
+ exit(1)
23
+ end
24
+ end
25
+
26
+ desc "Builds just the #{extension} extension"
27
+ task extension.to_sym => ["#{ext}/Makefile", ext_so ]
28
+
29
+ file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
30
+ Dir.chdir(ext) do ruby "extconf.rb" end
31
+ end
32
+
33
+ file ext_so => ext_files do
34
+ Dir.chdir(ext) do
35
+ sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
36
+ end
37
+ end
38
+ end
data/script/destroy CHANGED
File without changes
data/script/generate CHANGED
File without changes
data/script/txt2html CHANGED
File without changes
data/script/txt2js CHANGED
File without changes
@@ -0,0 +1,48 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestExtconfGenerator < 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
+ name = "myext"
30
+ run_generator('extconf', [name], sources)
31
+ assert_directory_exists("ext/myext")
32
+ assert_directory_exists("tasks/extconf")
33
+ assert_generated_file("ext/myext/extconf.rb")
34
+ assert_generated_file("ext/myext/myext.c")
35
+ assert_generated_file("tasks/extconf.rake")
36
+ assert_generated_file("tasks/extconf/myext.rake")
37
+ end
38
+
39
+ private
40
+ def sources
41
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
42
+ ]
43
+ end
44
+
45
+ def generator_path
46
+ "rubygems_generators"
47
+ end
48
+ 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.19.1</a>
36
+ <a href="" class="numbers">0.20.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>
@@ -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.19.1</a>
36
+ <a href="" class="numbers">0.20.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>, 5th March 2008<br>
266
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 4th March 2008<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.19.1";
2
+ var version = "0.20.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.19.1";
2
+ var version = "0.20.0";
3
3
 
4
4
  document.write(" - " + version);
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: 0.19.1
4
+ version: 0.20.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-03-27 00:00:00 +10:00
12
+ date: 2008-03-29 23:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -158,6 +158,12 @@ files:
158
158
  - rubygems_generators/executable/USAGE
159
159
  - rubygems_generators/executable/executable_generator.rb
160
160
  - rubygems_generators/executable/templates/app.rb
161
+ - rubygems_generators/extconf/USAGE
162
+ - rubygems_generators/extconf/extconf_generator.rb
163
+ - rubygems_generators/extconf/templates/ext/c_file.c
164
+ - rubygems_generators/extconf/templates/ext/extconf.rb
165
+ - rubygems_generators/extconf/templates/tasks/extconf.rake
166
+ - rubygems_generators/extconf/templates/tasks/extconf_name.rake
161
167
  - rubygems_generators/install_jruby/USAGE
162
168
  - rubygems_generators/install_jruby/install_jruby_generator.rb
163
169
  - rubygems_generators/install_jruby/templates/tasks/jruby.rake
@@ -179,6 +185,7 @@ files:
179
185
  - tasks/generator_report.rake
180
186
  - tasks/website.rake
181
187
  - test/test_executable_generator.rb
188
+ - test/test_extconf_generator.rb
182
189
  - test/test_generator_helper.rb
183
190
  - test/test_helper.rb
184
191
  - test/test_install_jruby_generator.rb
@@ -223,12 +230,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
230
  requirements: []
224
231
 
225
232
  rubyforge_project: newgem
226
- rubygems_version: 1.0.1
233
+ rubygems_version: 1.1.0
227
234
  signing_key:
228
235
  specification_version: 2
229
236
  summary: Make your own gems at home
230
237
  test_files:
231
238
  - test/test_executable_generator.rb
239
+ - test/test_extconf_generator.rb
232
240
  - test/test_generator_helper.rb
233
241
  - test/test_helper.rb
234
242
  - test/test_install_jruby_generator.rb