newgem 0.20.0 → 0.20.1
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 +9 -0
- data/Manifest.txt +5 -2
- data/app_generators/newgem/templates/config/requirements.rb +0 -2
- data/lib/newgem/version.rb +1 -1
- data/rubygems_generators/extconf/USAGE +23 -1
- data/rubygems_generators/extconf/extconf_generator.rb +12 -5
- data/rubygems_generators/extconf/templates/README.txt +15 -0
- data/rubygems_generators/extconf/templates/autotest.rb +9 -0
- data/rubygems_generators/extconf/templates/ext/{c_file.c → c_file.c.erb} +0 -0
- data/rubygems_generators/extconf/templates/ext/{extconf.rb → extconf.rb.erb} +0 -0
- data/rubygems_generators/extconf/templates/tasks/extconf_name.rake +7 -2
- data/rubygems_generators/extconf/templates/test/test.rb.erb +10 -0
- data/test/test_extconf_generator.rb +13 -11
- data/website/index.html +1 -1
- data/website/rubyforge.html +1 -1
- data/website/version-raw.js +1 -1
- data/website/version.js +1 -1
- metadata +8 -4
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 0.20.1 2008-03-30
|
2
|
+
|
3
|
+
* extconf generator
|
4
|
+
* creates test/test_#{name}_extn.rb test file
|
5
|
+
* creates .autotest file for *.c -> test/test_*_extn.rb
|
6
|
+
* failed compilation destroyes *.o/so/bundle/dll files so tests fail too
|
7
|
+
* USAGE has docco on files to ignore in SCM + hoe
|
8
|
+
* requirements.rb no longer loads main lib file; no idea why it did it before
|
9
|
+
|
1
10
|
== 0.20.0 2008-03-30
|
2
11
|
|
3
12
|
* extconf generator - for C-extensions
|
data/Manifest.txt
CHANGED
@@ -69,10 +69,13 @@ rubygems_generators/executable/executable_generator.rb
|
|
69
69
|
rubygems_generators/executable/templates/app.rb
|
70
70
|
rubygems_generators/extconf/USAGE
|
71
71
|
rubygems_generators/extconf/extconf_generator.rb
|
72
|
-
rubygems_generators/extconf/templates/
|
73
|
-
rubygems_generators/extconf/templates/
|
72
|
+
rubygems_generators/extconf/templates/README.txt
|
73
|
+
rubygems_generators/extconf/templates/autotest.rb
|
74
|
+
rubygems_generators/extconf/templates/ext/c_file.c.erb
|
75
|
+
rubygems_generators/extconf/templates/ext/extconf.rb.erb
|
74
76
|
rubygems_generators/extconf/templates/tasks/extconf.rake
|
75
77
|
rubygems_generators/extconf/templates/tasks/extconf_name.rake
|
78
|
+
rubygems_generators/extconf/templates/test/test.rb.erb
|
76
79
|
rubygems_generators/install_jruby/USAGE
|
77
80
|
rubygems_generators/install_jruby/install_jruby_generator.rb
|
78
81
|
rubygems_generators/install_jruby/templates/tasks/jruby.rake
|
data/lib/newgem/version.rb
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
Description:
|
2
|
+
Creates a C-extension via extconf.
|
3
|
+
|
4
|
+
The extension be automatically built before running tests,
|
5
|
+
and will be built when the RubyGem is installed by users.
|
6
|
+
|
7
|
+
Usage:
|
8
|
+
#{$0} #{spec.name} name
|
9
|
+
|
10
|
+
rake compile - builds the extensions
|
11
|
+
rake - runs your tests, AFTER building your extensions
|
2
12
|
|
13
|
+
Important:
|
14
|
+
You may want to add the following pattern matches to your
|
15
|
+
SCM ignore list (e.g. .gitignore file):
|
3
16
|
|
4
|
-
|
17
|
+
Makefile
|
18
|
+
*.o
|
19
|
+
*.bundle
|
20
|
+
*.so
|
21
|
+
*.dll
|
22
|
+
pkg
|
23
|
+
doc
|
24
|
+
.DS_Store
|
5
25
|
|
26
|
+
Also, in your ~/.hoerc file ADD the following exclusions:
|
27
|
+
exclude: !ruby/regexp /tmp$|CVS|\.svn|_darcs|\.git|local/.*\.rb$|Makefile|.*\.o$|.*\.bundle$|.*\.so$|.*\.dll$/
|
@@ -2,12 +2,14 @@ class ExtconfGenerator < RubiGen::Base
|
|
2
2
|
|
3
3
|
default_options :author => nil
|
4
4
|
|
5
|
-
attr_reader :name
|
5
|
+
attr_reader :name, :module_name, :test_module_name
|
6
6
|
|
7
7
|
def initialize(runtime_args, runtime_options = {})
|
8
8
|
super
|
9
9
|
usage if args.empty?
|
10
10
|
@name = args.shift
|
11
|
+
@module_name = name.camelcase
|
12
|
+
@test_module_name = @module_name + "Extn"
|
11
13
|
extract_options
|
12
14
|
end
|
13
15
|
|
@@ -16,19 +18,24 @@ class ExtconfGenerator < RubiGen::Base
|
|
16
18
|
# Ensure appropriate folder(s) exists
|
17
19
|
m.directory "ext/#{name}"
|
18
20
|
m.directory "tasks/extconf"
|
21
|
+
m.directory "test"
|
19
22
|
|
20
23
|
# Create stubs
|
21
|
-
m.template "ext/c_file.c",
|
22
|
-
m.template "ext/extconf.rb", "ext/#{name}/extconf.rb"
|
23
|
-
m.
|
24
|
+
m.template "ext/c_file.c.erb", "ext/#{name}/#{name}.c"
|
25
|
+
m.template "ext/extconf.rb.erb", "ext/#{name}/extconf.rb"
|
26
|
+
m.template "test/test.rb.erb", "test/test_#{name}_extn.rb"
|
27
|
+
m.file "tasks/extconf.rake", "tasks/extconf.rake"
|
24
28
|
m.file "tasks/extconf_name.rake", "tasks/extconf/#{name}.rake"
|
29
|
+
|
30
|
+
m.file "autotest.rb", ".autotest"
|
31
|
+
m.readme "README.txt"
|
25
32
|
end
|
26
33
|
end
|
27
34
|
|
28
35
|
protected
|
29
36
|
def banner
|
30
37
|
<<-EOS
|
31
|
-
Creates a C-extension via extconf.
|
38
|
+
Creates a C-extension via extconf.
|
32
39
|
|
33
40
|
The extension be automatically built before running tests,
|
34
41
|
and will be built when the RubyGem is installed by users.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Important:
|
2
|
+
You may want to add the following pattern matches to your
|
3
|
+
SCM ignore list (e.g. .gitignore file):
|
4
|
+
|
5
|
+
Makefile
|
6
|
+
*.o
|
7
|
+
*.bundle
|
8
|
+
*.so
|
9
|
+
*.dll
|
10
|
+
pkg
|
11
|
+
doc
|
12
|
+
.DS_Store
|
13
|
+
|
14
|
+
Also, in your ~/.hoerc file ADD the following exclusions:
|
15
|
+
exclude: !ruby/regexp /tmp$|CVS|\.svn|_darcs|\.git|local/.*\.rb$|Makefile|.*\.o$|.*\.bundle$|.*\.so$|.*\.dll$/
|
File without changes
|
File without changes
|
@@ -14,7 +14,7 @@ namespace :extconf do
|
|
14
14
|
|
15
15
|
|
16
16
|
task :compile => extension do
|
17
|
-
if Dir.glob("**/#{extension}
|
17
|
+
if Dir.glob("**/#{extension}.{o,so,dll}").length == 0
|
18
18
|
STDERR.puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
19
19
|
STDERR.puts "Gem actually failed to build. Your system is"
|
20
20
|
STDERR.puts "NOT configured properly to build #{GEM_NAME}."
|
@@ -32,7 +32,12 @@ namespace :extconf do
|
|
32
32
|
|
33
33
|
file ext_so => ext_files do
|
34
34
|
Dir.chdir(ext) do
|
35
|
-
sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
|
35
|
+
sh(PLATFORM =~ /win32/ ? 'nmake' : 'make') do |ok, res|
|
36
|
+
if !ok
|
37
|
+
require "fileutils"
|
38
|
+
FileUtils.rm Dir.glob('*.{so,o,dll,bundle}')
|
39
|
+
end
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
end
|
@@ -6,11 +6,11 @@ class TestExtconfGenerator < Test::Unit::TestCase
|
|
6
6
|
def setup
|
7
7
|
bare_setup
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def teardown
|
11
11
|
bare_teardown
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
# Some generator-related assertions:
|
15
15
|
# assert_generated_file(name, &block) # block passed the file contents
|
16
16
|
# assert_directory_exists(name)
|
@@ -24,24 +24,26 @@ class TestExtconfGenerator < Test::Unit::TestCase
|
|
24
24
|
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
25
25
|
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
26
26
|
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
27
|
-
|
27
|
+
|
28
28
|
def test_generator_without_options
|
29
|
-
name = "
|
29
|
+
name = "my_ext"
|
30
30
|
run_generator('extconf', [name], sources)
|
31
|
-
assert_directory_exists("ext/
|
31
|
+
assert_directory_exists("ext/my_ext")
|
32
32
|
assert_directory_exists("tasks/extconf")
|
33
|
-
assert_generated_file("ext/
|
34
|
-
assert_generated_file("ext/
|
35
|
-
assert_generated_file("tasks/extconf.rake")
|
36
|
-
assert_generated_file("tasks/extconf/
|
33
|
+
assert_generated_file("ext/my_ext/extconf.rb")
|
34
|
+
assert_generated_file("ext/my_ext/my_ext.c")
|
35
|
+
assert_generated_file("tasks/extconf.rake")
|
36
|
+
assert_generated_file("tasks/extconf/my_ext.rake")
|
37
|
+
assert_generated_file("test/test_my_ext_extn.rb")
|
38
|
+
assert_generated_file(".autotest")
|
37
39
|
end
|
38
|
-
|
40
|
+
|
39
41
|
private
|
40
42
|
def sources
|
41
43
|
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
42
44
|
]
|
43
45
|
end
|
44
|
-
|
46
|
+
|
45
47
|
def generator_path
|
46
48
|
"rubygems_generators"
|
47
49
|
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.20.
|
36
|
+
<a href="" class="numbers">0.20.1</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.20.
|
36
|
+
<a href="" class="numbers">0.20.1</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/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.20.
|
4
|
+
version: 0.20.1
|
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-31 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -84,6 +84,7 @@ extra_rdoc_files:
|
|
84
84
|
- app_generators/newgem/templates/README.txt
|
85
85
|
- newgem_generators/install_website/templates/website/index.txt
|
86
86
|
- newgem_theme_generators/long_box_theme/templates/website/index.txt
|
87
|
+
- rubygems_generators/extconf/templates/README.txt
|
87
88
|
- website/index.txt
|
88
89
|
- website/rubyforge.txt
|
89
90
|
- website/version-raw.txt
|
@@ -160,10 +161,13 @@ files:
|
|
160
161
|
- rubygems_generators/executable/templates/app.rb
|
161
162
|
- rubygems_generators/extconf/USAGE
|
162
163
|
- rubygems_generators/extconf/extconf_generator.rb
|
163
|
-
- rubygems_generators/extconf/templates/
|
164
|
-
- rubygems_generators/extconf/templates/
|
164
|
+
- rubygems_generators/extconf/templates/README.txt
|
165
|
+
- rubygems_generators/extconf/templates/autotest.rb
|
166
|
+
- rubygems_generators/extconf/templates/ext/c_file.c.erb
|
167
|
+
- rubygems_generators/extconf/templates/ext/extconf.rb.erb
|
165
168
|
- rubygems_generators/extconf/templates/tasks/extconf.rake
|
166
169
|
- rubygems_generators/extconf/templates/tasks/extconf_name.rake
|
170
|
+
- rubygems_generators/extconf/templates/test/test.rb.erb
|
167
171
|
- rubygems_generators/install_jruby/USAGE
|
168
172
|
- rubygems_generators/install_jruby/install_jruby_generator.rb
|
169
173
|
- rubygems_generators/install_jruby/templates/tasks/jruby.rake
|