newgem 1.0.6 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/bin/newgem +1 -1
- data/features/development.feature +1 -1
- data/features/install_cucumber.feature +1 -1
- data/features/newgem_cli.feature +5 -0
- data/features/rubygem_tasks.feature +1 -1
- data/features/steps/cli.rb +22 -4
- data/features/steps/common.rb +15 -15
- data/lib/newgem.rb +1 -1
- data/rubygems_generators/install_cucumber/templates/features/development.feature +1 -1
- data/rubygems_generators/install_cucumber/templates/features/steps/common.rb +15 -15
- data/tasks/deployment.rake +3 -8
- data/website/index.html +4 -4
- data/website/index.txt +2 -2
- data/website/rubyforge.html +1 -1
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 1.0.7 2008-11-08
|
2
|
+
|
3
|
+
* Removed 'rake local_deploy' and changed website to reference 'rake install_gem' for same purpose [fixed #9]
|
4
|
+
* Fixed --version option (+ added cucumber scenario) [fixed #8]
|
5
|
+
* Cleaned up the common.rb steps
|
6
|
+
|
1
7
|
== 1.0.6 2008-11-05
|
2
8
|
|
3
9
|
* Removed cucumber references in newgem's Rakefile, hopefully fixing #7
|
data/bin/newgem
CHANGED
@@ -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 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:refresh" to fix this
|
13
13
|
And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
|
@@ -24,6 +24,6 @@ Feature: RubyGems have features to be described and tested
|
|
24
24
|
When task 'rake features' is invoked
|
25
25
|
Then task 'rake features' is executed successfully
|
26
26
|
And output does match /Feature: Development processes of newgem itself \(rake tasks\)/
|
27
|
-
And output does match /And file matching 'pkg/\*\.gem' is created/
|
27
|
+
And output does match /And file with name matching 'pkg/\*\.gem' is created/
|
28
28
|
And output does not match /You can use these snippets to implement pending steps/
|
29
29
|
|
data/features/newgem_cli.feature
CHANGED
@@ -58,3 +58,8 @@ 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 and show current version number
|
62
|
+
Given a safe folder
|
63
|
+
When newgem is executed only with options '--version'
|
64
|
+
Then shows version number
|
65
|
+
|
@@ -8,7 +8,7 @@ Feature: Generated RubyGems have various rake tasks to aide their development
|
|
8
8
|
And 'pkg' folder is deleted
|
9
9
|
When task 'rake gem' is invoked
|
10
10
|
Then folder 'pkg' is created
|
11
|
-
And file matching 'pkg/my_project-0.0.1.gem' is created
|
11
|
+
And file with name matching 'pkg/my_project-0.0.1.gem' is created
|
12
12
|
And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
|
13
13
|
And gem spec key 'dependencies' contains /newgem \(>= [\d.]+, development\)/
|
14
14
|
|
data/features/steps/cli.rb
CHANGED
@@ -32,26 +32,39 @@ Given /^project website configuration for safe folder on local machine$/ do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
+
def newgem_cmd
|
36
|
+
File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
|
37
|
+
end
|
38
|
+
|
35
39
|
When %r{^newgem is executed for project '(.*)' with no options$} do |project_name|
|
36
|
-
|
40
|
+
@newgem_cmd = newgem_cmd
|
37
41
|
setup_active_project_folder project_name
|
38
42
|
FileUtils.chdir @tmp_root do
|
39
43
|
@stdout = "newgem.out"
|
40
|
-
system "ruby #{
|
44
|
+
system "ruby #{@newgem_cmd} #{project_name} > #{@stdout}"
|
41
45
|
force_local_lib_override
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
45
49
|
When %r{^newgem is executed for project '(.*)' with options '(.*)'$} do |project_name, arguments|
|
46
|
-
|
50
|
+
@newgem_cmd = newgem_cmd
|
47
51
|
setup_active_project_folder project_name
|
48
52
|
FileUtils.chdir @tmp_root do
|
49
53
|
@stdout = "newgem.out"
|
50
|
-
system "ruby #{
|
54
|
+
system "ruby #{@newgem_cmd} #{arguments} #{project_name} > #{@stdout}"
|
51
55
|
force_local_lib_override
|
52
56
|
end
|
53
57
|
end
|
54
58
|
|
59
|
+
When /^newgem is executed only with options '(.*)'$/ do |arguments|
|
60
|
+
@newgem_cmd = newgem_cmd
|
61
|
+
FileUtils.chdir @tmp_root do
|
62
|
+
@stdout = "newgem.out"
|
63
|
+
system "ruby #{@newgem_cmd} #{arguments} > #{@stdout}"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
55
68
|
When /^run unit tests for test file '(.*)'$/ do |test_file|
|
56
69
|
@stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
|
57
70
|
FileUtils.chdir(@active_project_folder) do
|
@@ -70,3 +83,8 @@ Then %r{^remote file '(.*)' (is|is not) created} do |file, is|
|
|
70
83
|
File.exists?(file).should(is == 'is' ? be_true : be_false)
|
71
84
|
end
|
72
85
|
end
|
86
|
+
|
87
|
+
Then /^shows version number$/ do
|
88
|
+
stdout = File.read(File.join(@tmp_root, @stdout))
|
89
|
+
stdout.should =~ /#{Newgem::VERSION}/
|
90
|
+
end
|
data/features/steps/common.rb
CHANGED
@@ -9,12 +9,12 @@ Given %r{^a safe folder} do
|
|
9
9
|
@lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
|
10
10
|
end
|
11
11
|
|
12
|
-
Given
|
12
|
+
Given %r{^this project is active project folder} do
|
13
13
|
Given "a safe folder"
|
14
14
|
@active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
|
15
15
|
end
|
16
16
|
|
17
|
-
Given
|
17
|
+
Given %r{^env variable \$([\w_]+) set to '(.*)'} do |env_var, value|
|
18
18
|
ENV[env_var] = value
|
19
19
|
end
|
20
20
|
|
@@ -31,7 +31,7 @@ def setup_active_project_folder project_name
|
|
31
31
|
@project_name = project_name
|
32
32
|
end
|
33
33
|
|
34
|
-
Given
|
34
|
+
Given %r{'(.*)' folder is deleted} do |folder|
|
35
35
|
in_project_folder do
|
36
36
|
FileUtils.rm_rf folder
|
37
37
|
end
|
@@ -48,14 +48,14 @@ When %r{^'(.*)' generator is invoked with arguments '(.*)'$} do |generator, argu
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
When
|
51
|
+
When %r{run executable '(.*)' with arguments '(.*)'} do |executable, arguments|
|
52
52
|
@stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
|
53
53
|
FileUtils.chdir(@active_project_folder) do
|
54
54
|
system "ruby #{executable} #{arguments} > #{@stdout}"
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
When
|
58
|
+
When %r{^task 'rake (.*)' is invoked$} do |task|
|
59
59
|
@stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
|
60
60
|
FileUtils.chdir(@active_project_folder) do
|
61
61
|
system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
|
@@ -74,13 +74,13 @@ Then %r{^file '(.*)' (is|is not) created} do |file, is|
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
Then
|
77
|
+
Then %r{^file with name matching '(.*)' is created} do |pattern|
|
78
78
|
in_project_folder do
|
79
79
|
Dir[pattern].should_not be_empty
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
Then
|
83
|
+
Then %r{gem file '(.*)' and generated file '(.*)' should be the same} do |gem_file, project_file|
|
84
84
|
File.exists?(gem_file).should be_true
|
85
85
|
File.exists?(project_file).should be_true
|
86
86
|
gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}")
|
@@ -101,39 +101,39 @@ Then %r{^(does|does not) invoke generator '(.*)'$} do |does_invoke, generator|
|
|
101
101
|
actual_output.should_not(match(/dependency\s+#{generator}/))
|
102
102
|
end
|
103
103
|
|
104
|
-
Then
|
104
|
+
Then %r{help options '(.*)' and '(.*)' are displayed} do |opt1, opt2|
|
105
105
|
actual_output = File.read(@stdout)
|
106
106
|
actual_output.should match(/#{opt1}/)
|
107
107
|
actual_output.should match(/#{opt2}/)
|
108
108
|
end
|
109
109
|
|
110
|
-
Then
|
110
|
+
Then %r{^output (does|does not) match \/(.*)\/} do |does, regex|
|
111
111
|
actual_output = File.read(@stdout)
|
112
112
|
(does == 'does') ?
|
113
113
|
actual_output.should(match(/#{regex}/)) :
|
114
114
|
actual_output.should_not(match(/#{regex}/))
|
115
115
|
end
|
116
116
|
|
117
|
-
Then
|
117
|
+
Then %r{^all (\d+) tests pass} do |expected_test_count|
|
118
118
|
expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
|
119
119
|
actual_output = File.read(@stdout)
|
120
120
|
actual_output.should match(expected)
|
121
121
|
end
|
122
122
|
|
123
|
-
Then
|
123
|
+
Then %r{^all (\d+) examples pass} do |expected_test_count|
|
124
124
|
expected = %r{^#{expected_test_count} examples?, 0 failures}
|
125
125
|
actual_output = File.read(@stdout)
|
126
126
|
actual_output.should match(expected)
|
127
127
|
end
|
128
128
|
|
129
|
-
Then
|
129
|
+
Then %r{^yaml file '(.*)' contains (\{.*\})} do |file, yaml|
|
130
130
|
in_project_folder do
|
131
131
|
yaml = eval yaml
|
132
132
|
YAML.load(File.read(file)).should == yaml
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
Then
|
136
|
+
Then %r{^Rakefile can display tasks successfully} do
|
137
137
|
@stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
|
138
138
|
FileUtils.chdir(@active_project_folder) do
|
139
139
|
system "rake -T > #{@stdout} 2> #{@stdout}"
|
@@ -142,14 +142,14 @@ Then /^Rakefile can display tasks successfully$/ do
|
|
142
142
|
actual_output.should match(/^rake\s+\w+\s+#\s.*/)
|
143
143
|
end
|
144
144
|
|
145
|
-
Then
|
145
|
+
Then %r{^task 'rake (.*)' is executed successfully} do |task|
|
146
146
|
@stdout.should_not be_nil
|
147
147
|
actual_output = File.read(@stdout)
|
148
148
|
actual_output.should_not match(/^Don't know how to build task '#{task}'/)
|
149
149
|
actual_output.should_not match(/Error/i)
|
150
150
|
end
|
151
151
|
|
152
|
-
Then
|
152
|
+
Then %r{^gem spec key '(.*)' contains \/(.*)\/} do |key, regex|
|
153
153
|
in_project_folder do
|
154
154
|
gem_file = Dir["pkg/*.gem"].first
|
155
155
|
gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
|
data/lib/newgem.rb
CHANGED
@@ -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 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:refresh" to fix this
|
13
13
|
And gem spec key 'rdoc_options' contains /--mainREADME.rdoc/
|
@@ -9,12 +9,12 @@ Given %r{^a safe folder} do
|
|
9
9
|
@lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
|
10
10
|
end
|
11
11
|
|
12
|
-
Given
|
12
|
+
Given %r{^this project is active project folder} do
|
13
13
|
Given "a safe folder"
|
14
14
|
@active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
|
15
15
|
end
|
16
16
|
|
17
|
-
Given
|
17
|
+
Given %r{^env variable \$([\w_]+) set to '(.*)'} do |env_var, value|
|
18
18
|
ENV[env_var] = value
|
19
19
|
end
|
20
20
|
|
@@ -31,7 +31,7 @@ def setup_active_project_folder project_name
|
|
31
31
|
@project_name = project_name
|
32
32
|
end
|
33
33
|
|
34
|
-
Given
|
34
|
+
Given %r{'(.*)' folder is deleted} do |folder|
|
35
35
|
in_project_folder do
|
36
36
|
FileUtils.rm_rf folder
|
37
37
|
end
|
@@ -48,14 +48,14 @@ When %r{^'(.*)' generator is invoked with arguments '(.*)'$} do |generator, argu
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
When
|
51
|
+
When %r{run executable '(.*)' with arguments '(.*)'} do |executable, arguments|
|
52
52
|
@stdout = File.expand_path(File.join(@tmp_root, "executable.out"))
|
53
53
|
FileUtils.chdir(@active_project_folder) do
|
54
54
|
system "ruby #{executable} #{arguments} > #{@stdout}"
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
When
|
58
|
+
When %r{^task 'rake (.*)' is invoked$} do |task|
|
59
59
|
@stdout = File.expand_path(File.join(@tmp_root, "tests.out"))
|
60
60
|
FileUtils.chdir(@active_project_folder) do
|
61
61
|
system "rake #{task} --trace > #{@stdout} 2> #{@stdout}"
|
@@ -74,13 +74,13 @@ Then %r{^file '(.*)' (is|is not) created} do |file, is|
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
Then
|
77
|
+
Then %r{^file with name matching '(.*)' is created} do |pattern|
|
78
78
|
in_project_folder do
|
79
79
|
Dir[pattern].should_not be_empty
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
Then
|
83
|
+
Then %r{gem file '(.*)' and generated file '(.*)' should be the same} do |gem_file, project_file|
|
84
84
|
File.exists?(gem_file).should be_true
|
85
85
|
File.exists?(project_file).should be_true
|
86
86
|
gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}")
|
@@ -101,39 +101,39 @@ Then %r{^(does|does not) invoke generator '(.*)'$} do |does_invoke, generator|
|
|
101
101
|
actual_output.should_not(match(/dependency\s+#{generator}/))
|
102
102
|
end
|
103
103
|
|
104
|
-
Then
|
104
|
+
Then %r{help options '(.*)' and '(.*)' are displayed} do |opt1, opt2|
|
105
105
|
actual_output = File.read(@stdout)
|
106
106
|
actual_output.should match(/#{opt1}/)
|
107
107
|
actual_output.should match(/#{opt2}/)
|
108
108
|
end
|
109
109
|
|
110
|
-
Then
|
110
|
+
Then %r{^output (does|does not) match \/(.*)\/} do |does, regex|
|
111
111
|
actual_output = File.read(@stdout)
|
112
112
|
(does == 'does') ?
|
113
113
|
actual_output.should(match(/#{regex}/)) :
|
114
114
|
actual_output.should_not(match(/#{regex}/))
|
115
115
|
end
|
116
116
|
|
117
|
-
Then
|
117
|
+
Then %r{^all (\d+) tests pass} do |expected_test_count|
|
118
118
|
expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors}
|
119
119
|
actual_output = File.read(@stdout)
|
120
120
|
actual_output.should match(expected)
|
121
121
|
end
|
122
122
|
|
123
|
-
Then
|
123
|
+
Then %r{^all (\d+) examples pass} do |expected_test_count|
|
124
124
|
expected = %r{^#{expected_test_count} examples?, 0 failures}
|
125
125
|
actual_output = File.read(@stdout)
|
126
126
|
actual_output.should match(expected)
|
127
127
|
end
|
128
128
|
|
129
|
-
Then
|
129
|
+
Then %r{^yaml file '(.*)' contains (\{.*\})} do |file, yaml|
|
130
130
|
in_project_folder do
|
131
131
|
yaml = eval yaml
|
132
132
|
YAML.load(File.read(file)).should == yaml
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
Then
|
136
|
+
Then %r{^Rakefile can display tasks successfully} do
|
137
137
|
@stdout = File.expand_path(File.join(@tmp_root, "rakefile.out"))
|
138
138
|
FileUtils.chdir(@active_project_folder) do
|
139
139
|
system "rake -T > #{@stdout} 2> #{@stdout}"
|
@@ -142,14 +142,14 @@ Then /^Rakefile can display tasks successfully$/ do
|
|
142
142
|
actual_output.should match(/^rake\s+\w+\s+#\s.*/)
|
143
143
|
end
|
144
144
|
|
145
|
-
Then
|
145
|
+
Then %r{^task 'rake (.*)' is executed successfully} do |task|
|
146
146
|
@stdout.should_not be_nil
|
147
147
|
actual_output = File.read(@stdout)
|
148
148
|
actual_output.should_not match(/^Don't know how to build task '#{task}'/)
|
149
149
|
actual_output.should_not match(/Error/i)
|
150
150
|
end
|
151
151
|
|
152
|
-
Then
|
152
|
+
Then %r{^gem spec key '(.*)' contains \/(.*)\/} do |key, regex|
|
153
153
|
in_project_folder do
|
154
154
|
gem_file = Dir["pkg/*.gem"].first
|
155
155
|
gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`)
|
data/tasks/deployment.rake
CHANGED
@@ -15,9 +15,6 @@ task :release do
|
|
15
15
|
EOS
|
16
16
|
end
|
17
17
|
|
18
|
-
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
19
|
-
task :local_deploy => [:generator_report, :website_generate, :install_gem]
|
20
|
-
|
21
18
|
task :check_version do
|
22
19
|
unless ENV['VERSION']
|
23
20
|
puts 'Must pass a VERSION=x.y.z release version'
|
@@ -34,9 +31,7 @@ task :install_gem_no_doc => [:clean, :package] do
|
|
34
31
|
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
35
32
|
end
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
`rake check_manifest | patch -p0 > Manifest.txt`
|
41
|
-
end
|
34
|
+
desc 'Recreate Manifest.txt to include ALL files'
|
35
|
+
task :manifest do
|
36
|
+
`rake check_manifest | patch -p0 > Manifest.txt`
|
42
37
|
end
|
data/website/index.html
CHANGED
@@ -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.
|
42
|
+
<a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.7</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>
|
@@ -138,8 +138,8 @@ Important
|
|
138
138
|
<p>The results show a <em>diff</em> of the two.</p>
|
139
139
|
<h2>Package and test locally</h2>
|
140
140
|
<p>Before releasing a new version of a gem, it is a great idea to install the gem locally and do some sanity checks. You know, to limit the chance of you looking like a noob.</p>
|
141
|
-
<pre>rake
|
142
|
-
<p>This
|
141
|
+
<pre>rake install_gem</pre>
|
142
|
+
<p>This locally installs the gem, ready for testing and local use.</p>
|
143
143
|
<p>Now pretend to be a user, and do some tests – especially of new functionality – so you are comfortable all the files have been packaged up, and you haven’t missed anything in the <code>Manifest.txt</code>.</p>
|
144
144
|
<p>One set of tests you should do is to repeat any tutorials you include in your website. If your gem is dependent on other gems that are rapidly changing, its possible your tutorial might be invalid even if your unit tests are successful. Best you find any errors before the users start emailing you!</p>
|
145
145
|
<h2>Releasing your gem to the world</h2>
|
@@ -225,7 +225,7 @@ rake install_gem</pre>
|
|
225
225
|
<h2>Contact</h2>
|
226
226
|
<p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
|
227
227
|
<p class="coda">
|
228
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>,
|
228
|
+
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 8th November 2008<br>
|
229
229
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
230
230
|
</p>
|
231
231
|
</div>
|
data/website/index.txt
CHANGED
@@ -115,9 +115,9 @@ h2. Package and test locally
|
|
115
115
|
|
116
116
|
Before releasing a new version of a gem, it is a great idea to install the gem locally and do some sanity checks. You know, to limit the chance of you looking like a noob.
|
117
117
|
|
118
|
-
<pre>rake
|
118
|
+
<pre>rake install_gem</pre>
|
119
119
|
|
120
|
-
This
|
120
|
+
This locally installs the gem, ready for testing and local use.
|
121
121
|
|
122
122
|
Now pretend to be a user, and do some tests - especially of new functionality - so you are comfortable all the files have been packaged up, and you haven't missed anything in the <code>Manifest.txt</code>.
|
123
123
|
|
data/website/rubyforge.html
CHANGED
@@ -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.
|
42
|
+
<a href="http://rubyforge.org/projects/newgem" class="numbers">1.0.7</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.
|
4
|
+
version: 1.0.7
|
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-
|
12
|
+
date: 2008-11-08 00:00:00 +10:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|