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 +5 -0
- data/Manifest.txt +7 -0
- data/app_generators/newgem/templates/config/hoe.rb +4 -4
- data/lib/newgem/version.rb +2 -2
- data/rubygems_generators/extconf/USAGE +5 -0
- data/rubygems_generators/extconf/extconf_generator.rb +57 -0
- data/rubygems_generators/extconf/templates/ext/c_file.c +8 -0
- data/rubygems_generators/extconf/templates/ext/extconf.rb +5 -0
- data/rubygems_generators/extconf/templates/tasks/extconf.rake +13 -0
- data/rubygems_generators/extconf/templates/tasks/extconf_name.rake +38 -0
- data/script/destroy +0 -0
- data/script/generate +0 -0
- data/script/txt2html +0 -0
- data/script/txt2js +0 -0
- data/test/test_extconf_generator.rb +48 -0
- data/website/index.html +1 -1
- data/website/rubyforge.html +2 -2
- data/website/version-raw.js +1 -1
- data/website/version.js +1 -1
- metadata +11 -3
data/History.txt
CHANGED
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'
|
data/lib/newgem/version.rb
CHANGED
@@ -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,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.
|
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>
|
data/website/rubyforge.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.
|
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>,
|
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>
|
data/website/version-raw.js
CHANGED
data/website/version.js
CHANGED
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.
|
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-
|
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
|
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
|