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.
- data/CHANGELOG +4 -0
- data/RELEASE_NOTES +65 -0
- data/Rakefile +230 -49
- metadata +2 -1
data/CHANGELOG
CHANGED
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
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
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
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
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
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
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
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
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
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
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
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
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.
|
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: []
|