masterview 0.0.5 → 0.0.6

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.
Files changed (4) hide show
  1. data/CHANGELOG +4 -0
  2. data/RELEASE_NOTES +65 -0
  3. data/Rakefile +230 -49
  4. metadata +2 -1
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 0.0.6 - April 18, 2006 - Working on generator packaging
2
+
3
+ 0.0.5 - April 18, 2006 - Changed packaging
4
+
1
5
  0.0.4 - April 18, 2006 - Updated documentation
2
6
 
3
7
  0.0.3 - April 18, 2006 - Repackaging
data/RELEASE_NOTES ADDED
@@ -0,0 +1,65 @@
1
+ = MasterView - Rails-optimized (x)html friendly template engine
2
+
3
+ MasterView is a ruby/rails optimized HTML/XHTML friendly template engine.
4
+ It is designed to use the full power and productivity of rails including
5
+ layouts, partials, and rails html helpers while still being editable/styleable
6
+ in a WYSIWYG HTML editor.
7
+
8
+ MasterView is distributed as a gem or a plugin. You may install it as a gem and then generate a lightweight plugin which mainly refers to the gem *or* you can simply install as a plugin which is self contained. I personally prefer installing as a gem for ease of management, however if you are running at a shared hosting environment you might not have authority to install this gem so you may install as a self contained plugin.
9
+
10
+ If you are interested in the background story behind all this, it is at the end of this page.
11
+
12
+ Author:: Jeff Barczewski
13
+ Email:: jeff.barczewski @ gmail.com
14
+ Rubyforge project:: masterview
15
+ Website:: http://masterview.org
16
+ License:: MIT open source license like Rails
17
+
18
+ == Goals
19
+
20
+ - Create/extend a template engine for rails that would be XHTML friendly and thus could be edited/styled with a WYSIWYG HTML editor even late in development without breaking template.
21
+ - Keep it simple. DRY. No extra config files, simple syntax with ruby flavor.
22
+ - Design it specifically for ruby and rails. Use the full power and not be limited in its capabilities over what can be done with ERb
23
+ - Work nicely with layouts, partials, and rails html helpers.
24
+ - Reduce complexity, work with existing rails code, no extra view logic or hashes than what is used by ERb. Scaffold generate initial templates or work from existing html prototype.
25
+ - Use one master file to drive all related sections, simplifying editing.
26
+ - Preview in browser without running an app. Allow for dummy data in the template so that the page can be viewed and styled independently of the application.
27
+ - Performance equal to ERb
28
+
29
+ == Prerequisites
30
+
31
+ Requires::
32
+ No external dependencies
33
+
34
+ Optional::
35
+ tidy (gem) and tidy library - if these are installed you can use tidy to cleanup html into valid xhtml for use by MasterView
36
+ log4r (gem) - if this gem is installed then MasterView will use it for logging otherwise it defaults to using built in Logger.
37
+
38
+ == Installation
39
+
40
+ Install in one of the two following ways depending on whether you can use gems or not.
41
+
42
+ === Installation using gems (if you are able to use gems)
43
+
44
+ If you can use gems you may simply do the following
45
+
46
+ gem install masterview
47
+
48
+ Now your gem is installed and you can skip that step in the future. After creating your rails directory, change directory to it and run the following to create a very lightweight plugin instance for this application mainly consisting of an init.rb file which will get loaded at runtime. This init.rb refers to the gem for everything but allows you to override any constants or setup that has been provided. See MasterView module masterview.rb for a list of the available constants.
49
+
50
+ script/generate masterview_plugin
51
+
52
+ After this MasterView is ready for use. Skip down to the Usage section for more details.
53
+
54
+ === Installation without using gems, install as plugin
55
+
56
+ script/plugin install masterview
57
+
58
+ This will copy entire MasterView system into your vendor/plugin/masterview directory. You may tweak its init.rb to override any MasterView constants at runtime. See MasterView module masterview.rb for a list of available constants. You may also retrieve the plugin package (.tgz and .zip) from Rubyforge.org searching for the project masterview_complete.
59
+
60
+ == Usage
61
+
62
+ You may add MasterView attributes to existing (x)html or you may use the masterview generator to create a complete working application. The generator can create controllers, models, and the MasterView template file similar to how the built-in generator works. Simply change directory to your rails application and run the following
63
+
64
+ script/generate masterview YourModelName
65
+
data/Rakefile CHANGED
@@ -1,10 +1,22 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rubygems'
3
+ require 'meta_project'
4
+
3
5
  require 'rake'
4
6
  require 'rake/testtask'
5
7
  require 'rake/rdoctask'
6
8
  require 'rake/gempackagetask'
7
9
  require 'rake/contrib/rubyforgepublisher'
10
+ require 'rake/contrib/xforge'
11
+ require 'rake/clean'
12
+
13
+ require 'gmailer'
14
+
15
+ #require 'archive/tar/minitar'
16
+ #require 'zlib'
17
+
18
+
19
+
8
20
 
9
21
  $LOAD_PATH.unshift( File.join( File.dirname(__FILE__), 'lib') )
10
22
  require 'masterview'
@@ -94,6 +106,19 @@ end
94
106
  # Rake::SshDirPublisher.new("foobar.com", "dist/api/#{PKG_NAME}", "doc").upload
95
107
  #end
96
108
 
109
+ MASTERVIEW = MetaProject::Project::XForge::RubyForge.new('masterview')
110
+
111
+ task :verify_rubyforge do
112
+ raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
113
+ raise "RUBYFORGE_PASSWORD environment variable not set!" unless ENV['RUBYFORGE_PASSWORD']
114
+ end
115
+
116
+ task :verify_gmail do
117
+ raise "GMAIL_USER environment variable not set!" unless ENV['GMAIL_USER']
118
+ raise "GMAIL_PASSWORD environment variable not set!" unless ENV['GMAIL_PASSWORD']
119
+ end
120
+
121
+
97
122
  desc 'Build all packages'
98
123
  task :package_all => ['masterview_complete:package',
99
124
  'masterview:package',
@@ -108,6 +133,13 @@ task :repackage_all => ['masterview_complete:repackage',
108
133
  'masterview_generator:repackage',
109
134
  'masterview_plugin_generator:repackage']
110
135
 
136
+ desc 'Release all files'
137
+ task :release_all_files => ['masterview_complete:release_files',
138
+ 'masterview:release_files',
139
+ 'masterview_parser:release_files',
140
+ 'masterview_generator:release_files',
141
+ 'masterview_plugin_generator:release_files']
142
+
111
143
  namespace 'masterview_complete' do
112
144
  module MasterViewComplete
113
145
  PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
@@ -147,16 +179,39 @@ namespace 'masterview_complete' do
147
179
  p.need_zip = true
148
180
  end
149
181
 
150
- # --- Ruby forge release manager by florian gross -------------------------------------------------
151
- RUBY_FORGE_PACKAGEID = "1909" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
152
- desc "Publish the masterview_complete release files to RubyForge."
153
- task :release => [:gem, :package] do
154
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
155
-
156
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
157
-
158
- files.each do |file|
159
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
182
+ desc "Release files on RubyForge."
183
+ task :release_files => [ :verify_rubyforge ] do
184
+ release_files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
185
+
186
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
187
+ release.user_name = ENV['RUBYFORGE_USER']
188
+ release.password = ENV['RUBYFORGE_PASSWORD']
189
+ release.files = release_files.to_a
190
+ release.release_name = RELEASE_NAME
191
+ release.package_name = PKG_NAME
192
+
193
+ notes = []
194
+ File.open("RELEASE_NOTES") do |file|
195
+ file.each do |line|
196
+ line.chomp!
197
+ line.gsub!(/^#.*$/, '') and next
198
+ notes << line
199
+ end
200
+ end
201
+ release.release_notes = notes.join("\n")
202
+
203
+ changes = []
204
+ File.open("CHANGELOG") do |file|
205
+ current = true
206
+
207
+ file.each do |line|
208
+ line.chomp!
209
+ current = false if current and line =~ /^==/
210
+ break if line.empty? and not current
211
+ changes << line
212
+ end
213
+ end
214
+ release.release_changes = changes.join("\n")
160
215
  end
161
216
  end
162
217
  end
@@ -197,16 +252,39 @@ namespace 'masterview' do
197
252
  p.need_zip = false
198
253
  end
199
254
 
200
- # --- Ruby forge release manager by florian gross -------------------------------------------------
201
- RUBY_FORGE_PACKAGEID = "1581" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
202
- desc "Publish the masterview_complete release files to RubyForge."
203
- task :release => [:gem, :package] do
204
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
205
-
206
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
207
-
208
- files.each do |file|
209
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
255
+ desc "Release files on RubyForge."
256
+ task :release_files => [ :verify_rubyforge ] do
257
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
258
+
259
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
260
+ release.user_name = ENV['RUBYFORGE_USER']
261
+ release.password = ENV['RUBYFORGE_PASSWORD']
262
+ release.files = release_files.to_a
263
+ release.release_name = RELEASE_NAME
264
+ release.package_name = PKG_NAME
265
+
266
+ notes = []
267
+ File.open("RELEASE_NOTES") do |file|
268
+ file.each do |line|
269
+ line.chomp!
270
+ line.gsub!(/^#.*$/, '') and next
271
+ notes << line
272
+ end
273
+ end
274
+ release.release_notes = notes.join("\n")
275
+
276
+ changes = []
277
+ File.open("CHANGELOG") do |file|
278
+ current = true
279
+
280
+ file.each do |line|
281
+ line.chomp!
282
+ current = false if current and line =~ /^==/
283
+ break if line.empty? and not current
284
+ changes << line
285
+ end
286
+ end
287
+ release.release_changes = changes.join("\n")
210
288
  end
211
289
  end
212
290
  end
@@ -250,16 +328,39 @@ namespace 'masterview_parser' do
250
328
  p.need_zip = false
251
329
  end
252
330
 
253
- # --- Ruby forge release manager by florian gross -------------------------------------------------
254
- RUBY_FORGE_PACKAGEID = "1910" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
255
- desc "Publish the masterview_parser release files to RubyForge."
256
- task :release => [:gem, :package] do
257
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
258
-
259
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
260
-
261
- files.each do |file|
262
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
331
+ desc "Release files on RubyForge."
332
+ task :release_files => [ :verify_rubyforge ] do
333
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
334
+
335
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
336
+ release.user_name = ENV['RUBYFORGE_USER']
337
+ release.password = ENV['RUBYFORGE_PASSWORD']
338
+ release.files = release_files.to_a
339
+ release.release_name = RELEASE_NAME
340
+ release.package_name = PKG_NAME
341
+
342
+ notes = []
343
+ File.open("RELEASE_NOTES") do |file|
344
+ file.each do |line|
345
+ line.chomp!
346
+ line.gsub!(/^#.*$/, '') and next
347
+ notes << line
348
+ end
349
+ end
350
+ release.release_notes = notes.join("\n")
351
+
352
+ changes = []
353
+ File.open("CHANGELOG") do |file|
354
+ current = true
355
+
356
+ file.each do |line|
357
+ line.chomp!
358
+ current = false if current and line =~ /^==/
359
+ break if line.empty? and not current
360
+ changes << line
361
+ end
362
+ end
363
+ release.release_changes = changes.join("\n")
263
364
  end
264
365
  end
265
366
  end
@@ -299,16 +400,39 @@ namespace 'masterview_generator' do
299
400
  p.need_zip = false
300
401
  end
301
402
 
302
- # --- Ruby forge release manager by florian gross -------------------------------------------------
303
- RUBY_FORGE_PACKAGEID = "1911" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
304
- desc "Publish the masterview_generator release files to RubyForge."
305
- task :release => [:gem, :package] do
306
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
307
-
308
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
309
-
310
- files.each do |file|
311
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
403
+ desc "Release files on RubyForge."
404
+ task :release_files => [ :verify_rubyforge ] do
405
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
406
+
407
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
408
+ release.user_name = ENV['RUBYFORGE_USER']
409
+ release.password = ENV['RUBYFORGE_PASSWORD']
410
+ release.files = release_files.to_a
411
+ release.release_name = RELEASE_NAME
412
+ release.package_name = PKG_NAME
413
+
414
+ notes = []
415
+ File.open("RELEASE_NOTES") do |file|
416
+ file.each do |line|
417
+ line.chomp!
418
+ line.gsub!(/^#.*$/, '') and next
419
+ notes << line
420
+ end
421
+ end
422
+ release.release_notes = notes.join("\n")
423
+
424
+ changes = []
425
+ File.open("CHANGELOG") do |file|
426
+ current = true
427
+
428
+ file.each do |line|
429
+ line.chomp!
430
+ current = false if current and line =~ /^==/
431
+ break if line.empty? and not current
432
+ changes << line
433
+ end
434
+ end
435
+ release.release_changes = changes.join("\n")
312
436
  end
313
437
  end
314
438
  end
@@ -349,19 +473,76 @@ namespace 'masterview_plugin_generator' do
349
473
  p.need_zip = false
350
474
  end
351
475
 
352
- # --- Ruby forge release manager by florian gross -------------------------------------------------
353
- RUBY_FORGE_PACKAGEID = "1912" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
354
- desc "Publish the masterview_plugin_generator release files to RubyForge."
355
- task :release => [:gem, :package] do
356
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
476
+ desc "Release files on RubyForge."
477
+ task :release_files => [ :verify_rubyforge ] do
478
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
479
+
480
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
481
+ release.user_name = ENV['RUBYFORGE_USER']
482
+ release.password = ENV['RUBYFORGE_PASSWORD']
483
+ release.files = release_files.to_a
484
+ release.release_name = RELEASE_NAME
485
+ release.package_name = PKG_NAME
486
+
487
+ notes = []
488
+ File.open("RELEASE_NOTES") do |file|
489
+ file.each do |line|
490
+ line.chomp!
491
+ line.gsub!(/^#.*$/, '') and next
492
+ notes << line
493
+ end
494
+ end
495
+ release.release_notes = notes.join("\n")
496
+
497
+ changes = []
498
+ File.open("CHANGELOG") do |file|
499
+ current = true
500
+
501
+ file.each do |line|
502
+ line.chomp!
503
+ current = false if current and line =~ /^==/
504
+ break if line.empty? and not current
505
+ changes << line
506
+ end
507
+ end
508
+ release.release_changes = changes.join("\n")
509
+ end
510
+ end
511
+ end
512
+ end
513
+
357
514
 
358
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
359
-
360
- files.each do |file|
361
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
515
+
516
+
517
+ desc "Publish news on RubyForge"
518
+ task :publish_news => [ :verify_rubyforge, :tar, :gem, :demotar] do
519
+ Rake::XForge::NewsPublisher.new(Ruby_PDF) do |news|
520
+ news.user_name = ENV['RUBYFORGE_USER']
521
+ news.password = ENV['RUBYFORGE_PASSWORD']
522
+ news.subject = "PDF::Writer #{PDF::Writer::VERSION} Released"
523
+ news.changes_file = nil
524
+
525
+ details = []
526
+ File.open("Release-Announcement") do |file|
527
+ file.each do |line|
528
+ line.chomp!
529
+ break if line =~ /^=/
530
+ details << line
362
531
  end
363
532
  end
533
+ news.details = details.join("\n")
364
534
  end
365
535
  end
366
536
 
537
+ desc "Post a release announcement via GMail."
538
+ #task :email_announcement => [ :verify_gmail, :tar, :gem, :demotar] do
539
+ task :email_announcement => [ :verify_gmail ] do
540
+ GMailer.connect(ENV["GMAIL_USER"], ENV["GMAIL_PASSWORD"]) do |gmail|
541
+ gmail.send :to => "ruby-talk@ruby-lang.org",
542
+ :subject => "[ANN] PDF::Writer #{PDF::Writer::VERSION}",
543
+ :body => File.read("Release-Announcement")
544
+ end
545
+ end
546
+
547
+
367
548
 
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: masterview
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.5
6
+ version: 0.0.6
7
7
  date: 2006-04-18 00:00:00 -05:00
8
8
  summary: A (x)html friendly template engine for rails with the power of layouts, and partials. Main gem which requires all others
9
9
  require_paths:
@@ -32,6 +32,7 @@ files:
32
32
  - MIT-LICENSE
33
33
  - Rakefile
34
34
  - README
35
+ - RELEASE_NOTES
35
36
  test_files: []
36
37
 
37
38
  rdoc_options: []