newjs 1.0.1 → 1.0.2
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 +7 -0
- data/Manifest.txt +1 -0
- data/app_generators/newjs/newjs_generator.rb +1 -1
- data/app_generators/newjs/templates/Rakefile.erb +17 -10
- data/app_generators/newjs/templates/tasks/deploy.rake +29 -0
- data/lib/newjs/version.rb +1 -1
- data/test/test_newjs_generator.rb +1 -0
- data/website/index.html +54 -5
- data/website/index.txt +42 -4
- metadata +2 -1
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -16,6 +16,7 @@ app_generators/newjs/templates/script/js_autotest
|
|
16
16
|
app_generators/newjs/templates/script/rstakeout
|
17
17
|
app_generators/newjs/templates/src/HEADER.erb
|
18
18
|
app_generators/newjs/templates/src/library.js.erb
|
19
|
+
app_generators/newjs/templates/tasks/deploy.rake
|
19
20
|
app_generators/newjs/templates/tasks/environment.rake
|
20
21
|
app_generators/newjs/templates/tasks/javascript_test_autotest_tasks.rake
|
21
22
|
app_generators/newjs/templates/test/assets/prototype.js
|
@@ -37,7 +37,7 @@ class NewjsGenerator < RubiGen::Base
|
|
37
37
|
# m.template "template.rb", "some_file_after_erb.rb"
|
38
38
|
# m.file "file", "some_file_copied"
|
39
39
|
m.file_copy_each %w[unittest.css unittest.js prototype.js], "test/assets"
|
40
|
-
m.file_copy_each %w[javascript_test_autotest_tasks.rake environment.rake], "tasks"
|
40
|
+
m.file_copy_each %w[javascript_test_autotest_tasks.rake environment.rake deploy.rake], "tasks"
|
41
41
|
m.file_copy_each %w[javascript_test_autotest.yml.sample], "config"
|
42
42
|
m.file_copy_each %w[protodoc.rb jstest.rb], "lib"
|
43
43
|
m.file_copy_each %w[README.txt]
|
@@ -12,11 +12,15 @@ require 'rake/packagetask'
|
|
12
12
|
|
13
13
|
$:.unshift File.dirname(__FILE__) + "/lib"
|
14
14
|
|
15
|
+
APP_VERSION = '<%= version_str %>'
|
16
|
+
APP_NAME = '<%= name %>'
|
17
|
+
RUBYFORGE_PROJECT = APP_NAME
|
18
|
+
APP_FILE_NAME= "#{APP_NAME}.js"
|
19
|
+
|
15
20
|
APP_ROOT = File.expand_path(File.dirname(__FILE__))
|
16
21
|
APP_SRC_DIR = File.join(APP_ROOT, 'src')
|
17
22
|
APP_DIST_DIR = File.join(APP_ROOT, 'dist')
|
18
23
|
APP_PKG_DIR = File.join(APP_ROOT, 'pkg')
|
19
|
-
APP_VERSION = '<%= version_str %>'
|
20
24
|
|
21
25
|
|
22
26
|
unless ENV['rakefile_just_config']
|
@@ -29,21 +33,24 @@ task :dist do
|
|
29
33
|
require 'protodoc'
|
30
34
|
require 'fileutils'
|
31
35
|
FileUtils.mkdir_p APP_DIST_DIR
|
32
|
-
|
36
|
+
|
33
37
|
Dir.chdir(APP_SRC_DIR) do
|
34
|
-
File.open(File.join(APP_DIST_DIR,
|
35
|
-
dist << Protodoc::Preprocessor.new(
|
38
|
+
File.open(File.join(APP_DIST_DIR, APP_FILE_NAME), 'w+') do |dist|
|
39
|
+
dist << Protodoc::Preprocessor.new(APP_FILE_NAME)
|
36
40
|
end
|
37
41
|
end
|
42
|
+
Dir.chdir(APP_DIST_DIR) do
|
43
|
+
FileUtils.copy_file APP_FILE_NAME, "#{APP_NAME}-#{APP_VERSION}.js"
|
44
|
+
end
|
38
45
|
end
|
39
46
|
|
40
|
-
Rake::PackageTask.new(
|
47
|
+
Rake::PackageTask.new(APP_NAME, APP_VERSION) do |package|
|
41
48
|
package.need_tar_gz = true
|
42
49
|
package.package_dir = APP_PKG_DIR
|
43
50
|
package.package_files.include(
|
44
51
|
'[A-Z]*',
|
45
52
|
'config/*.sample',
|
46
|
-
|
53
|
+
"dist/#{APP_FILE_NAME}",
|
47
54
|
'lib/**',
|
48
55
|
'src/**',
|
49
56
|
'script/**',
|
@@ -62,24 +69,24 @@ JavaScriptTestTask.new(:test_units) do |t|
|
|
62
69
|
testcases = ENV['TESTCASES']
|
63
70
|
tests_to_run = ENV['TESTS'] && ENV['TESTS'].split(',')
|
64
71
|
browsers_to_test = ENV['BROWSERS'] && ENV['BROWSERS'].split(',')
|
65
|
-
|
72
|
+
|
66
73
|
t.mount("/dist")
|
67
74
|
t.mount("/src")
|
68
75
|
t.mount("/test")
|
69
|
-
|
76
|
+
|
70
77
|
Dir["test/*_test.html"].sort.each do |test_file|
|
71
78
|
tests = testcases ? { :url => "/#{test_file}", :testcases => testcases } : "/#{test_file}"
|
72
79
|
test_filename = test_file[/.*\/(.+?)\.html/, 1]
|
73
80
|
t.run(tests) unless tests_to_run && !tests_to_run.include?(test_filename)
|
74
81
|
end
|
75
|
-
|
82
|
+
|
76
83
|
%w( safari firefox ie konqueror opera ).each do |browser|
|
77
84
|
t.browser(browser.to_sym) unless browsers_to_test && !browsers_to_test.include?(browser)
|
78
85
|
end
|
79
86
|
end
|
80
87
|
|
81
88
|
task :clean_package_source do
|
82
|
-
rm_rf File.join(APP_PKG_DIR, "
|
89
|
+
rm_rf File.join(APP_PKG_DIR, "#{APP_NAME}-#{APP_VERSION}")
|
83
90
|
end
|
84
91
|
|
85
92
|
Dir['tasks/**/*.rake'].each { |rake| load rake }
|
@@ -0,0 +1,29 @@
|
|
1
|
+
desc 'Package and upload the release to rubyforge.'
|
2
|
+
task :release => [:clean, :dist, :package] do |t|
|
3
|
+
require 'rubyforge'
|
4
|
+
version = APP_VERSION
|
5
|
+
name = APP_NAME
|
6
|
+
rubyforge_name = RUBYFORGE_PROJECT
|
7
|
+
v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
|
8
|
+
abort "Versions don't match #{v} vs #{version}" if v != version
|
9
|
+
pkg = "pkg/#{name}-#{version}"
|
10
|
+
|
11
|
+
if $DEBUG then
|
12
|
+
puts "release_id = rf.add_release #{rubyforge_name.inspect}, #{name.inspect}, #{version.inspect}, \"#{pkg}.tgz\""
|
13
|
+
puts "rf.add_file #{rubyforge_name.inspect}, #{name.inspect}, release_id, \"#{pkg}.gem\""
|
14
|
+
end
|
15
|
+
|
16
|
+
rf = RubyForge.new
|
17
|
+
puts "Logging in"
|
18
|
+
rf.login
|
19
|
+
|
20
|
+
c = rf.userconfig
|
21
|
+
c["release_notes"] = APP_DESCRIPTION if Object.const_defined?("APP_DESCRIPTION")
|
22
|
+
c["release_changes"] = APP_CHANGES if Object.const_defined?("APP_CHANGES")
|
23
|
+
c["preformatted"] = true
|
24
|
+
|
25
|
+
files = ["#{pkg}.tar.gz", "dist/#{name}-#{version}.js"].compact
|
26
|
+
|
27
|
+
puts "Releasing #{name} v. #{version}"
|
28
|
+
rf.add_release rubyforge_name, name, version, *files
|
29
|
+
end
|
data/lib/newjs/version.rb
CHANGED
@@ -44,6 +44,7 @@ class TestNewjsGenerator < Test::Unit::TestCase
|
|
44
44
|
assert_generated_file "script/js_autotest"
|
45
45
|
assert_generated_file "tasks/javascript_test_autotest_tasks.rake"
|
46
46
|
assert_generated_file "tasks/environment.rake"
|
47
|
+
assert_generated_file "tasks/deploy.rake"
|
47
48
|
assert_generated_file "config/javascript_test_autotest.yml.sample"
|
48
49
|
assert_generated_file "src/myproject.js"
|
49
50
|
assert_generated_file "src/HEADER"
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>JavaScript Project Generator</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/newjs"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/newjs" class="numbers">1.0.
|
36
|
+
<a href="http://rubyforge.org/projects/newjs" class="numbers">1.0.2</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘newjs’</h1>
|
39
39
|
|
@@ -220,15 +220,53 @@ The project’s version number is automatically inserted into the page
|
|
220
220
|
(change version numbers via <code>APP_VERSION</code> in <code>Rakefile</code>).</p>
|
221
221
|
|
222
222
|
|
223
|
+
<h3>Configuration of website upload</h3>
|
224
|
+
|
225
|
+
|
226
|
+
<p>It is assumed you will upload your website files to rubyforge.org server.
|
227
|
+
To push files to an alternate server, modify the <code>tasks/website.rake</code> file.</p>
|
228
|
+
|
229
|
+
|
230
|
+
<p>To configure which rubyforge project to upload to, create <code>config/website.yml</code>.
|
231
|
+
There is an example in <code>code/website.yml.sample</code>.</p>
|
232
|
+
|
233
|
+
|
234
|
+
<p>An example might be:</p>
|
235
|
+
|
236
|
+
|
237
|
+
<pre>host: nicwilliams@rubyforge.org
|
238
|
+
remote_dir: /var/www/gforge-projects/drnicutilities/drnic_js_test_helpers
|
239
|
+
</pre>
|
240
|
+
|
241
|
+
<p>Here, the files will be uploaded into the <code>drnicutilities</code> rubyforge
|
242
|
+
project, under a sub-directory <code>drnic_js_test_helpers</code>. This site
|
243
|
+
would be visible at <a href="http://drnicutilities.rubyforge.org/drnic_js_test_helpers">http://drnicutilities.rubyforge.org/drnic_js_test_helpers</a></p>
|
244
|
+
|
245
|
+
|
246
|
+
<p>If your website lives in its own rubyforge project, then just specify the project
|
247
|
+
name, and the website will be uploaded into the root folder.</p>
|
248
|
+
|
249
|
+
|
250
|
+
<p>For example, the website would be available at <a href="http://drnicutilities.rubyforge.org/">http://drnicutilities.rubyforge.org/</a> if your
|
251
|
+
configuration was:</p>
|
252
|
+
|
253
|
+
|
254
|
+
<pre>host: nicwilliams@rubyforge.org
|
255
|
+
remote_dir: /var/www/gforge-projects/drnicutilities
|
256
|
+
</pre>
|
257
|
+
|
258
|
+
<h3>Uploading website to server</h3>
|
259
|
+
|
260
|
+
|
223
261
|
<p>To upload the website (and its <span class="caps">CSS</span> etc) run:</p>
|
224
262
|
|
225
263
|
|
226
|
-
<pre>rake
|
264
|
+
<pre>rake website_upload</pre>
|
265
|
+
|
266
|
+
<p>More commonly, to generate and upload the website:</p>
|
227
267
|
|
228
|
-
<p>The default <code>tasks/website.rake</code> file pushes the files
|
229
|
-
to a <a href="http://rubyforge.org">rubyforge.org</a> project account. Modify it
|
230
|
-
to rsync files elsewhere.</p>
|
231
268
|
|
269
|
+
<pre>rake website</pre>
|
232
270
|
|
233
271
|
<h2>Screencast coming soon</h2>
|
234
272
|
|
@@ -241,6 +279,17 @@ and you’ll love every minute of it.</p>
|
|
241
279
|
<p>Subscribe to PeepCode’s blog for announcement details.</p>
|
242
280
|
|
243
281
|
|
282
|
+
<h2>Examples</h2>
|
283
|
+
|
284
|
+
|
285
|
+
<p>The development of <code>newjs</code> was done in parallel with
|
286
|
+
<a href="http://drnicutilities.rubyforge.org/drnic_js_test_helpers/">Dr Nic’s JavaScript Test Helpers</a>
|
287
|
+
(source: <a href="http://github.com/drnic/drnic_js_test_helpers/tree/master">git</a>).</p>
|
288
|
+
|
289
|
+
|
290
|
+
<p>Checkout this project to see examples of unit tests, configuration etc.</p>
|
291
|
+
|
292
|
+
|
244
293
|
<h2>Forum</h2>
|
245
294
|
|
246
295
|
|
data/website/index.txt
CHANGED
@@ -150,13 +150,43 @@ And open <code>website/index.html</code> in your browser to preview.
|
|
150
150
|
The project's version number is automatically inserted into the page
|
151
151
|
(change version numbers via <code>APP_VERSION</code> in <code>Rakefile</code>).
|
152
152
|
|
153
|
+
h3. Configuration of website upload
|
154
|
+
|
155
|
+
It is assumed you will upload your website files to rubyforge.org server.
|
156
|
+
To push files to an alternate server, modify the <code>tasks/website.rake</code> file.
|
157
|
+
|
158
|
+
To configure which rubyforge project to upload to, create <code>config/website.yml</code>.
|
159
|
+
There is an example in <code>code/website.yml.sample</code>.
|
160
|
+
|
161
|
+
An example might be:
|
162
|
+
|
163
|
+
<pre>host: nicwilliams@rubyforge.org
|
164
|
+
remote_dir: /var/www/gforge-projects/drnicutilities/drnic_js_test_helpers
|
165
|
+
</pre>
|
166
|
+
|
167
|
+
Here, the files will be uploaded into the <code>drnicutilities</code> rubyforge
|
168
|
+
project, under a sub-directory <code>drnic_js_test_helpers</code>. This site
|
169
|
+
would be visible at "http://drnicutilities.rubyforge.org/drnic_js_test_helpers":http://drnicutilities.rubyforge.org/drnic_js_test_helpers
|
170
|
+
|
171
|
+
If your website lives in its own rubyforge project, then just specify the project
|
172
|
+
name, and the website will be uploaded into the root folder.
|
173
|
+
|
174
|
+
For example, the website would be available at "http://drnicutilities.rubyforge.org/":http://drnicutilities.rubyforge.org/ if your
|
175
|
+
configuration was:
|
176
|
+
|
177
|
+
<pre>host: nicwilliams@rubyforge.org
|
178
|
+
remote_dir: /var/www/gforge-projects/drnicutilities
|
179
|
+
</pre>
|
180
|
+
|
181
|
+
h3. Uploading website to server
|
182
|
+
|
153
183
|
To upload the website (and its CSS etc) run:
|
154
184
|
|
155
|
-
<pre>rake
|
185
|
+
<pre>rake website_upload</pre>
|
156
186
|
|
157
|
-
|
158
|
-
|
159
|
-
|
187
|
+
More commonly, to generate and upload the website:
|
188
|
+
|
189
|
+
<pre>rake website</pre>
|
160
190
|
|
161
191
|
h2. Screencast coming soon
|
162
192
|
|
@@ -166,6 +196,14 @@ and you'll love every minute of it.
|
|
166
196
|
|
167
197
|
Subscribe to PeepCode's blog for announcement details.
|
168
198
|
|
199
|
+
h2. Examples
|
200
|
+
|
201
|
+
The development of <code>newjs</code> was done in parallel with
|
202
|
+
"Dr Nic's JavaScript Test Helpers":http://drnicutilities.rubyforge.org/drnic_js_test_helpers/
|
203
|
+
(source: "git":http://github.com/drnic/drnic_js_test_helpers/tree/master).
|
204
|
+
|
205
|
+
Checkout this project to see examples of unit tests, configuration etc.
|
206
|
+
|
169
207
|
h2. Forum
|
170
208
|
|
171
209
|
"http://groups.google.com/group/javascript-project-generator":http://groups.google.com/group/javascript-project-generator
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dr Nic Williams
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- app_generators/newjs/templates/script/rstakeout
|
83
83
|
- app_generators/newjs/templates/src/HEADER.erb
|
84
84
|
- app_generators/newjs/templates/src/library.js.erb
|
85
|
+
- app_generators/newjs/templates/tasks/deploy.rake
|
85
86
|
- app_generators/newjs/templates/tasks/environment.rake
|
86
87
|
- app_generators/newjs/templates/tasks/javascript_test_autotest_tasks.rake
|
87
88
|
- app_generators/newjs/templates/test/assets/prototype.js
|