masterview_gem_pack 0.1.5 → 0.2.0
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 +17 -0
 - data/README +36 -504
 - data/RELEASE_NOTES +126 -45
 - data/Rakefile +215 -86
 - data/TODO +8 -3
 - metadata +6 -6
 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,3 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            0.2.0 - June 20th, 2006 - Big release. Added capability for eliminating rhtml generation, extends rails so that rhtml can be pulled directly from MasterView. 
         
     | 
| 
      
 2 
     | 
    
         
            +
            Support template compilation directly into Rails view cache for templates in app/views (rhtml generation now optional)
         
     | 
| 
      
 3 
     | 
    
         
            +
            New mechanism for configuring MasterView from settings files; internal initialization rework. Configuration can now be driven by editing config/masterview/settings.rb and/or config/masterview/environments/*.rb.
         
     | 
| 
      
 4 
     | 
    
         
            +
            Add support for configuring MasterView logger and log_level; default level INFO for dev, WARN otherwise
         
     | 
| 
      
 5 
     | 
    
         
            +
            Add keyword substitution for generate/import attributes (mv:generate="{template_path}" notation)
         
     | 
| 
      
 6 
     | 
    
         
            +
            Added capability to view rhtml from MasterView Admin pages.
         
     | 
| 
      
 7 
     | 
    
         
            +
            Add 'View Configuration' page in MasterView Admin pages to display config settings.
         
     | 
| 
      
 8 
     | 
    
         
            +
            Reorganize and enhance documentation: doc/index.html; improved installation guide, added config guide, improved User Guide
         
     | 
| 
      
 9 
     | 
    
         
            +
            Internals: Renamed PartialExtension to GeneratedFileDefaultExtension
         
     | 
| 
      
 10 
     | 
    
         
            +
            Internals: Renamed partial_filename_extension to generated_file_default_extension
         
     | 
| 
      
 11 
     | 
    
         
            +
            Internals: Major internal rework of file handling and I/O.
         
     | 
| 
      
 12 
     | 
    
         
            +
            --UPGRADE NOTE: you *must* redo any config customizations in plugin init.rb to use new settings file and config vars
         
     | 
| 
      
 13 
     | 
    
         
            +
            --UPGRADE NOTE: default location for masterview template files is now the app/views directory in your Rails app
         
     | 
| 
      
 14 
     | 
    
         
            +
            --UPGRADE NOTE: directive gen_render was renamed gen_partial for clarity, update any templates which reference gen_render
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            0.1.6 - June 2nd - Implement basic dateselect and datetime_select in generator. Simplify only empty elements that are specified as empty in xhtml-1.0-Strict DTD.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       1 
18 
     | 
    
         
             
            0.1.5 - May 31st - Remove app_[ENV] customization hook in leau of a block based initializer approach (similar to rails) from Deborah Lewis which would allow customization from the environment config files.
         
     | 
| 
       2 
19 
     | 
    
         | 
| 
       3 
20 
     | 
    
         
             
            0.1.4 - May 30th - Apply patch by Deborah Lewis to allow customized generated comment. Add omit_tag directive to conditionally suppress output of element tag. Add user configuration user.rb, user_RAILS_ENV.rb
         
     | 
    
        data/README
    CHANGED
    
    | 
         @@ -5,14 +5,20 @@ It is designed to use the full power and productivity of rails including 
     | 
|
| 
       5 
5 
     | 
    
         
             
            layouts, partials, and rails html helpers while still being editable/styleable 
         
     | 
| 
       6 
6 
     | 
    
         
             
            in a WYSIWYG HTML editor.  
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
            MasterView is distributed as a gem or a plugin. You may install it as a gem and  
     | 
| 
      
 8 
     | 
    
         
            +
            MasterView is distributed as a gem or a plugin. You may install it as a gem and 
         
     | 
| 
      
 9 
     | 
    
         
            +
            then generate a lightweight plugin which mainly refers to the gem *or* you can 
         
     | 
| 
      
 10 
     | 
    
         
            +
            simply install as a plugin which is self contained. I personally prefer installing 
         
     | 
| 
      
 11 
     | 
    
         
            +
            as a gem for ease of management, however if you are running at a shared hosting 
         
     | 
| 
      
 12 
     | 
    
         
            +
            environment you might not have authority to install this gem so you may install 
         
     | 
| 
      
 13 
     | 
    
         
            +
            as a self contained plugin.
         
     | 
| 
       9 
14 
     | 
    
         | 
| 
       10 
15 
     | 
    
         
             
            If you are interested in the background story behind all this, it is at the end of this page.
         
     | 
| 
       11 
16 
     | 
    
         | 
| 
       12 
17 
     | 
    
         
             
            Author:: Jeff Barczewski
         
     | 
| 
       13 
18 
     | 
    
         
             
            Email:: jeff.barczewski @ gmail.com
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
            Primary developers:: Jeff Barczewski, Deb Lewis
         
     | 
| 
       15 
20 
     | 
    
         
             
            Website:: http://masterview.org
         
     | 
| 
      
 21 
     | 
    
         
            +
            Rubyforge project:: masterview
         
     | 
| 
       16 
22 
     | 
    
         
             
            License:: MIT open source license like Rails
         
     | 
| 
       17 
23 
     | 
    
         | 
| 
       18 
24 
     | 
    
         
             
            == Goals
         
     | 
| 
         @@ -35,513 +41,32 @@ Optional:: 
     | 
|
| 
       35 
41 
     | 
    
         
             
            	tidy (gem) and tidy library - if these are installed you can use tidy to cleanup html into valid xhtml for use by MasterView
         
     | 
| 
       36 
42 
     | 
    
         
             
            	log4r (gem) - if this gem is installed then MasterView will use it for logging otherwise it defaults to using built in Logger.
         
     | 
| 
       37 
43 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
            ==  
     | 
| 
       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)
         
     | 
| 
      
 44 
     | 
    
         
            +
            == User Documentation
         
     | 
| 
       43 
45 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
      
 46 
     | 
    
         
            +
            MasterView documentation is available online at the MasterView site:
         
     | 
| 
      
 47 
     | 
    
         
            +
              http://www.masterview.org 
         
     | 
| 
      
 48 
     | 
    
         
            +
            and on the rubyforge project
         
     | 
| 
      
 49 
     | 
    
         
            +
              http://rubyforge.org/projects/masterview/
         
     | 
| 
       45 
50 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
            Now your gem is installed and you can skip these steps 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
         
     | 
| 
      
 51 
     | 
    
         
            +
            == Installation
         
     | 
| 
       55 
52 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
      
 53 
     | 
    
         
            +
            Detailed installation instructions for installing the masterview gems
         
     | 
| 
      
 54 
     | 
    
         
            +
            or a self-contained copy of the plugin is provided in the MasterView
         
     | 
| 
      
 55 
     | 
    
         
            +
            Installation Guide.
         
     | 
| 
       57 
56 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
      
 57 
     | 
    
         
            +
            The Configuration Guide describes how to customize the configuration
         
     | 
| 
      
 58 
     | 
    
         
            +
            of the MasterView template engine for your application.
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
            == Usage
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
            By adding the --single-file switch MasterView will create a single file and to make it easier to use this template at design time, some design time css stylesheets are included in the file to hide all sections except one. By default the NEW section is the only one shown. Other options are --show-all which makes all sections visible or [--show-only list] which shows only the LIST section. When you are editing the masterview file you may comment/uncomment one of the other css files to show a different section. The --style param allows you to suppress default style generation and specify an existing stylesheet to use, if you exlude the stylesheet none will be used, if you include this option multiple times with different stylesheets each will be used.
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
            Once it is done generating, the generated MasterView template file(s) will be created in app/views/masterview/. These files are html and can be edited with any standard html editor. The rails specific logic is contained in simple attributes which are ignored by html editors. The syntax for these attributes is heavily derived from the rails helper tags themselves so it should feel natural to the rails developer.
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
            Another interesting thing to know is that while all of the pages for this Model have been bundled up into a few html file for ease of editing, at runtime these templates gets rendered into the exact same layouts and partials that you would use if you were building from scratch. Its jsut that now you can see what your pages will render like in your wysiwyg html editor and change and layout accordingly. Additionally MasterView supplies some javascript to show only one action view at time (list, new, show, edit, destroy) so you can view in your browser without running in Rails. Dummy html can be included to improve the accuracy of the page which can be easily removed at runtime. To make it easier to work with in an editor, design time stylesheets are included in the file to allow you to hide all sections except the one you are working on, simply uncomment the appropriate stylesheet for the section you would like to work with.
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
            MasterView is designed to be easy for a developer and designer to work together. By keeping the template in an html friendly format, designers can apply style, layout changes, wording changes, without causing havoc on the rails view code. The designer can be involved at anytime during the development cycle including being able to change style and layout after the system is built. This is great for allowing design or wording changes without reinvolving the developers. One can even start from a designer created prototype and add MasterView tags to make it become real. Whichever way you prefer to work, MasterView accomodates you.
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
            With Version 0.1.0 a MasterView admin controller/view was added to provide a birds-eye view of all your masterview templates, the status of those templates (OK, Invalid xhtml, Conflicts, Imports outdated), the details regarding the status, and the ultimate erb files generated from each template. By default the MasterView admin controller is enabled by the plugin and is available at http://yourserver/masterview This controller can easily be disabled if not wanted by setting the EnableMasterViewAdminPages = false in the vendor/plugins/masterview/init.rb file. Additionally all of the power of the MasterView admin controller is available via a set of rake commands as well. rake mv:list mv:list_all mv:rebuild mv:rebuild_all mv:copy_layout. rake -T will give you further information about these commands.
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
            Since it can be difficult to import a layout by hand into a new file, the MasterView admin controller has a link where you can copy the layout into a new file by providing the new files Action. It will take the layout from the template chosen and create a new file controller_action.html with the layout imported and a shell for the new Action code. You can also do this from command line using rake mv:copy_layout TEMPLATE=foo_list.html ACTION=newaction command.
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            == MasterView attribute directive syntax
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
            These attribute directives are provided by MasterView and you can create your own custom attributes for even more power.
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
            mv:generate="layouts/product.rhtml"
         
     | 
| 
       85 
     | 
    
         
            -
            	When the generate directive is encountered it creates a new output rhtml file where this element and its 
         
     | 
| 
       86 
     | 
    
         
            -
            	children will be rendered. It also will suspend outputting to any previous output file until it is done with this 
         
     | 
| 
       87 
     | 
    
         
            -
            	one (nested). MasterView will not output any rhtml files unless it encouters one of these or mv:gen_render directive 
         
     | 
| 
       88 
     | 
    
         
            -
            	below. Typically you will have one of these in the very top html element to generate the layout, and you will have 
         
     | 
| 
       89 
     | 
    
         
            -
            	additional directives further inside to output different view partials and forms. MasterView takes this one html 
         
     | 
| 
       90 
     | 
    
         
            -
            	file and generates all the other layout, forms, and partials that you would do manually. for example...
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
            	<html mv:generate="layouts/product.rhtml">
         
     | 
| 
       93 
     | 
    
         
            -
            	  <title>Hello</title>
         
     | 
| 
       94 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       95 
     | 
    
         
            -
            	    <div mv:replace="@content_for_layout">
         
     | 
| 
       96 
     | 
    
         
            -
            	    	<div mv:generate="product/new.rhtml">
         
     | 
| 
       97 
     | 
    
         
            -
            	      	  <form></form>
         
     | 
| 
       98 
     | 
    
         
            -
            	    	</div>
         
     | 
| 
       99 
     | 
    
         
            -
            	    </div>
         
     | 
| 
       100 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       101 
     | 
    
         
            -
            	</html>
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
            	  outputs to two files
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
            	app/views/layouts/product.rhtml
         
     | 
| 
       106 
     | 
    
         
            -
            	<html>
         
     | 
| 
       107 
     | 
    
         
            -
            	  <title>Hello</title>
         
     | 
| 
       108 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       109 
     | 
    
         
            -
            	    <%= @content_for_layout %>
         
     | 
| 
       110 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       111 
     | 
    
         
            -
            	</html>
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
            	app/views/product/new.rhtml
         
     | 
| 
       114 
     | 
    
         
            -
            	<div>
         
     | 
| 
       115 
     | 
    
         
            -
            	  <form></form>
         
     | 
| 
       116 
     | 
    
         
            -
            	</div>
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
            mv:import="layouts/product.rhtml"
         
     | 
| 
       119 
     | 
    
         
            -
            	When the import directive is used, it is a mirror image of the generate directive, except that this directive 
         
     | 
| 
       120 
     | 
    
         
            -
            	doesn't generate any output, it is only used for design time editing. The code inside this tag represents a point
         
     | 
| 
       121 
     | 
    
         
            -
            	in time capture of the real generated code and if it ever gets out of sync it can easily be sync'd back up by
         
     | 
| 
       122 
     | 
    
         
            -
            	visiting the MasterView admin page or using rake mv:rebuild_all
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
            mv:gen_render=":partial => 'product/form'"
         
     | 
| 
       125 
     | 
    
         
            -
            	This directive does two things it creates a partial and it outputs the appropriate code to render this 
         
     | 
| 
       126 
     | 
    
         
            -
            	partial in the parent output file before beginning output of the partial. It calculates the file name from the 
         
     | 
| 
       127 
     | 
    
         
            -
            	:partial value and appends .rhtml for example...
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
            	
         
     | 
| 
       130 
     | 
    
         
            -
            	<html mv:generate="layouts/product.rhtml">
         
     | 
| 
       131 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       132 
     | 
    
         
            -
            	    <div mv:gen_render=":partial => 'product/show'">
         
     | 
| 
       133 
     | 
    
         
            -
            	      Name: <span class="static" mv:content="h @product.send(:name)">product Name dummy text</span>
         
     | 
| 
       134 
     | 
    
         
            -
            	      Description: <span class="static" mv:content="h @product.send(:description)">product description dummy text</span>
         
     | 
| 
       135 
     | 
    
         
            -
            	    </div>
         
     | 
| 
       136 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       137 
     | 
    
         
            -
                    </html>
         
     | 
| 
       138 
     | 
    
         
            -
             
     | 
| 
       139 
     | 
    
         
            -
            	  outputs two files
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
            	app/views/layouts/product.rhtml
         
     | 
| 
       142 
     | 
    
         
            -
            	<html>
         
     | 
| 
       143 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       144 
     | 
    
         
            -
            	    <%= render :partial => 'product/show' %>
         
     | 
| 
       145 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       146 
     | 
    
         
            -
            	</html>
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
            	app/views/product/_show.rhtml
         
     | 
| 
       149 
     | 
    
         
            -
            	<div>
         
     | 
| 
       150 
     | 
    
         
            -
                       Name: <span class="static"><%= h @product.send(:name) %></span>
         
     | 
| 
       151 
     | 
    
         
            -
            	   Description: <span class="static"><%= h @product.send(:description) %></span>
         
     | 
| 
       152 
     | 
    
         
            -
            	</div>
         
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
            	You can also use collections with your partials like
         
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
            	<div mv:gen_render=":partial => 'shared/product', :collection => @products">
         
     | 
| 
       157 
     | 
    
         
            -
             
     | 
| 
       158 
     | 
    
         
            -
            	which will create the partial shared/_product.rhtml and will render this partial over a collection
         
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
            mv:import_render="partial => 'product/form'"
         
     | 
| 
       161 
     | 
    
         
            -
            	Similar to how import directive is a mirror to generate, import_render is a mirror to gen_render. This directive
         
     | 
| 
       162 
     | 
    
         
            -
            	generates the appropriate render partial helper, but doesn't generate any additional output, it is only used for 
         
     | 
| 
       163 
     | 
    
         
            -
            	design time editing and can be easily sync'd up if it ever gets out of sync with the original code.
         
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
       165 
     | 
    
         
            -
            mv:gen_replace="whatToLeave"
         
     | 
| 
       166 
     | 
    
         
            -
            	When used in conjunction with mv:generate directive it causes the value of the attribute to be erb 
         
     | 
| 
       167 
     | 
    
         
            -
            	executed output in the parent file before transferring to the child (nested) output file. for example...
         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
            	<html mv:generate="layouts/product.rhtml">
         
     | 
| 
       170 
     | 
    
         
            -
            	  <title>Hello</title>
         
     | 
| 
       171 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       172 
     | 
    
         
            -
            	    <div mv:generate="product/new.rhtml" mv:gen_replace="@content_for_layout>
         
     | 
| 
       173 
     | 
    
         
            -
            	      <form></form>
         
     | 
| 
       174 
     | 
    
         
            -
            	    </div>
         
     | 
| 
       175 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       176 
     | 
    
         
            -
            	</html>
         
     | 
| 
       177 
     | 
    
         
            -
            	
         
     | 
| 
       178 
     | 
    
         
            -
            	  outputs two files
         
     | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
     | 
    
         
            -
            	app/views/layouts/product.rhtml
         
     | 
| 
       181 
     | 
    
         
            -
            	<html>
         
     | 
| 
       182 
     | 
    
         
            -
            	  <title>Hello</title>
         
     | 
| 
       183 
     | 
    
         
            -
            	  <body>
         
     | 
| 
       184 
     | 
    
         
            -
            	    <%= @content_for_layout %>
         
     | 
| 
       185 
     | 
    
         
            -
            	  </body>
         
     | 
| 
       186 
     | 
    
         
            -
            	</html>
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
            	app/views/product/new.rhtml
         
     | 
| 
       189 
     | 
    
         
            -
            	<div>
         
     | 
| 
       190 
     | 
    
         
            -
            	  <form></form>
         
     | 
| 
       191 
     | 
    
         
            -
            	</div>
         
     | 
| 
       192 
     | 
    
         
            -
             
     | 
| 
       193 
     | 
    
         
            -
            mv:attr=":foo => 'bar', :cat => #{h product.name}"
         
     | 
| 
       194 
     | 
    
         
            -
            	At runtime this sets attribute values on the element this directive is defined on, for example...
         
     | 
| 
       195 
     | 
    
         
            -
             
     | 
| 
       196 
     | 
    
         
            -
            	<div mv:attr=":foo => 'bar', :hi => 'cat'">hello</div>
         
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
            	<div foo="bar" hi="cat">hello</div>
         
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
            	You can put erb evaluated code in #{ } like in this example
         
     | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
       204 
     | 
    
         
            -
            	<div mv:attr=":foo => #{h product.name}, :hi => 'cat'">hello</div>
         
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
       208 
     | 
    
         
            -
            	<div foo="<%= h product.name %>" hi="cat">hello</div>
         
     | 
| 
       209 
     | 
    
         
            -
             
     | 
| 
       210 
     | 
    
         
            -
            mv:block="rubyBlockCodeHere"
         
     | 
| 
       211 
     | 
    
         
            -
            	At runtime this expands to the equivalent rhtml (erb) block code around this element, for example...
         
     | 
| 
       212 
     | 
    
         
            -
            	
         
     | 
| 
       213 
     | 
    
         
            -
            	<div mv:block="products.each do |product|">foobar</div> 
         
     | 
| 
       214 
     | 
    
         
            -
            	  
         
     | 
| 
       215 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       216 
     | 
    
         
            -
            	  
         
     | 
| 
       217 
     | 
    
         
            -
            	<% products.each do |product| %>
         
     | 
| 
       218 
     | 
    
         
            -
            	  <div>foobar</div>
         
     | 
| 
       219 
     | 
    
         
            -
                    <% end %>
         
     | 
| 
       220 
     | 
    
         
            -
             
     | 
| 
       221 
     | 
    
         
            -
            	Note how MasterView automatically put in the 'end' after the closing tag.
         
     | 
| 
       222 
     | 
    
         
            -
            	Another example using the brace form of a block
         
     | 
| 
       223 
     | 
    
         
            -
             
     | 
| 
       224 
     | 
    
         
            -
            	<div mv:block="products.each { |product|">foobar</div> 
         
     | 
| 
       225 
     | 
    
         
            -
            	
         
     | 
| 
       226 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       227 
     | 
    
         
            -
            	  
         
     | 
| 
       228 
     | 
    
         
            -
            	<% products.each { |product| %>
         
     | 
| 
       229 
     | 
    
         
            -
            	  <div>foobar</div>
         
     | 
| 
       230 
     | 
    
         
            -
                    <% } %>
         
     | 
| 
       231 
     | 
    
         
            -
             
     | 
| 
       232 
     | 
    
         
            -
            	Its all based on the ruby and rails syntax while keeping things xhtml and designer friendly.
         
     | 
| 
       233 
     | 
    
         
            -
            	
         
     | 
| 
       234 
     | 
    
         
            -
            mv:content="foo"
         
     | 
| 
       235 
     | 
    
         
            -
            	Replaces the content of the tag with the erb output of foo, for example...
         
     | 
| 
       236 
     | 
    
         
            -
             
     | 
| 
       237 
     | 
    
         
            -
            	<div mv:content="foo">some dummy html here</div>
         
     | 
| 
       238 
     | 
    
         
            -
             
     | 
| 
       239 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       240 
     | 
    
         
            -
            	
         
     | 
| 
       241 
     | 
    
         
            -
            	<div><%= foo %></div>
         
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
       243 
     | 
    
         
            -
            mv:form=":action => 'new'"
         
     | 
| 
       244 
     | 
    
         
            -
            	Replaces this tag and closing tag with the form_tag and end_form_tag helpers. It also pulls the 
         
     | 
| 
       245 
     | 
    
         
            -
            	method and multipart attributes from the element and merges that into the form_tag options, for example...
         
     | 
| 
       246 
     | 
    
         
            -
             
     | 
| 
       247 
     | 
    
         
            -
            	<form mv:form=":action => 'new'">foobar</form>
         
     | 
| 
       248 
     | 
    
         
            -
            	
         
     | 
| 
       249 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       250 
     | 
    
         
            -
            	
         
     | 
| 
       251 
     | 
    
         
            -
            	<% form_tag :action => 'new' %>
         
     | 
| 
       252 
     | 
    
         
            -
            	  foobar
         
     | 
| 
       253 
     | 
    
         
            -
            	<% end_form_tag %>
         
     | 
| 
       254 
     | 
    
         
            -
             
     | 
| 
       255 
     | 
    
         
            -
            	<form method="GET" mv:form=":action => 'new'">foobar</form>
         
     | 
| 
       256 
     | 
    
         
            -
            	
         
     | 
| 
       257 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       258 
     | 
    
         
            -
            	
         
     | 
| 
       259 
     | 
    
         
            -
            	<% form_tag { :action => 'new' }, :method => 'GET' %>
         
     | 
| 
       260 
     | 
    
         
            -
            	  foobar
         
     | 
| 
       261 
     | 
    
         
            -
            	<% end_form_tag %>
         
     | 
| 
       262 
     | 
    
         
            -
            	
         
     | 
| 
       263 
     | 
    
         
            -
            mv:hidden_field="object, method"
         
     | 
| 
       264 
     | 
    
         
            -
            	Replaces this tag with an hidden input tag using the rails hidden_tag helper, for example...
         
     | 
| 
       265 
     | 
    
         
            -
             
     | 
| 
       266 
     | 
    
         
            -
            	<input mv:hidden_field="product, desc" type="hidden" value="dummy text"/>
         
     | 
| 
       267 
     | 
    
         
            -
             
     | 
| 
       268 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       269 
     | 
    
         
            -
             
     | 
| 
       270 
     | 
    
         
            -
            	<%= hidden_field product, desc %>
         
     | 
| 
       271 
     | 
    
         
            -
             
     | 
| 
       272 
     | 
    
         
            -
            mv:if="yourIfConditionHere"
         
     | 
| 
       273 
     | 
    
         
            -
            	Wraps the tag with an if block using the attribute contents for the condition, for example...
         
     | 
| 
       274 
     | 
    
         
            -
             
     | 
| 
       275 
     | 
    
         
            -
            	<div mv:if="@flash[:notice]">foo</div>
         
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
       277 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       278 
     | 
    
         
            -
            	
         
     | 
| 
       279 
     | 
    
         
            -
            	<% if @flash[:notice] %>
         
     | 
| 
       280 
     | 
    
         
            -
            	  <div>foo</div>
         
     | 
| 
       281 
     | 
    
         
            -
            	<% end %>
         
     | 
| 
       282 
     | 
    
         
            -
             
     | 
| 
       283 
     | 
    
         
            -
            	And combining if and content directives we can do the following
         
     | 
| 
       284 
     | 
    
         
            -
                  		
         
     | 
| 
       285 
     | 
    
         
            -
            	<div mv:if="@flash[:notice]" mv:content="@flash[:notice]" class="messages">
         
     | 
| 
       286 
     | 
    
         
            -
            	  dummy notice message here 
         
     | 
| 
       287 
     | 
    
         
            -
            	</div>
         
     | 
| 
       288 
     | 
    
         
            -
             
     | 
| 
       289 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       290 
     | 
    
         
            -
             
     | 
| 
       291 
     | 
    
         
            -
            	<% if @flash[:notice] %>
         
     | 
| 
       292 
     | 
    
         
            -
            	  <div>
         
     | 
| 
       293 
     | 
    
         
            -
            	    <%= @flash[:notice] %>
         
     | 
| 
       294 
     | 
    
         
            -
            	  </div>
         
     | 
| 
       295 
     | 
    
         
            -
            	<% end %>
         
     | 
| 
       296 
     | 
    
         
            -
            	
         
     | 
| 
       297 
     | 
    
         
            -
            mv:elsif="yourElseConditionHere"
         
     | 
| 
       298 
     | 
    
         
            -
            	Used in conjunction with an if directive allows you to create if, elsif blocks, for example...
         
     | 
| 
       299 
     | 
    
         
            -
             
     | 
| 
       300 
     | 
    
         
            -
            	<div mv:if="foo()">
         
     | 
| 
       301 
     | 
    
         
            -
            	  hello
         
     | 
| 
       302 
     | 
    
         
            -
            	</div>
         
     | 
| 
       303 
     | 
    
         
            -
            	<div mv:elsif="bar()">
         
     | 
| 
       304 
     | 
    
         
            -
            	  world
         
     | 
| 
       305 
     | 
    
         
            -
            	</div>
         
     | 
| 
       306 
     | 
    
         
            -
             
     | 
| 
       307 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       308 
     | 
    
         
            -
             
     | 
| 
       309 
     | 
    
         
            -
            	<% if foo() %>
         
     | 
| 
       310 
     | 
    
         
            -
            	  <div>
         
     | 
| 
       311 
     | 
    
         
            -
            	    hello
         
     | 
| 
       312 
     | 
    
         
            -
            	  </div>
         
     | 
| 
       313 
     | 
    
         
            -
            	<% elsif bar() %>
         
     | 
| 
       314 
     | 
    
         
            -
            	  <div>
         
     | 
| 
       315 
     | 
    
         
            -
            	    world
         
     | 
| 
       316 
     | 
    
         
            -
            	  </div>
         
     | 
| 
       317 
     | 
    
         
            -
             	<% end %>
         
     | 
| 
       318 
     | 
    
         
            -
             
     | 
| 
       319 
     | 
    
         
            -
            	Note that the elsif directive element needs to follow the if element's closing tag
         
     | 
| 
       320 
     | 
    
         
            -
             
     | 
| 
       321 
     | 
    
         
            -
            mv:else=""
         
     | 
| 
       322 
     | 
    
         
            -
            	Used in conjunction with if and elsif, allows you to create if, elseif, else blocks, for example...
         
     | 
| 
       323 
     | 
    
         
            -
             
     | 
| 
       324 
     | 
    
         
            -
            	<div mv:if="@foo">
         
     | 
| 
       325 
     | 
    
         
            -
            	  hello
         
     | 
| 
       326 
     | 
    
         
            -
              	</div>
         
     | 
| 
       327 
     | 
    
         
            -
            	<div mv:else="">
         
     | 
| 
       328 
     | 
    
         
            -
            	  world
         
     | 
| 
       329 
     | 
    
         
            -
            	</div>
         
     | 
| 
       330 
     | 
    
         
            -
             
     | 
| 
       331 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       332 
     | 
    
         
            -
             
     | 
| 
       333 
     | 
    
         
            -
            	<% if @foo %>
         
     | 
| 
       334 
     | 
    
         
            -
            	  <div>
         
     | 
| 
       335 
     | 
    
         
            -
            	    hello
         
     | 
| 
       336 
     | 
    
         
            -
            	  </div>
         
     | 
| 
       337 
     | 
    
         
            -
            	<% else %>
         
     | 
| 
       338 
     | 
    
         
            -
            	  <div>
         
     | 
| 
       339 
     | 
    
         
            -
            	    world
         
     | 
| 
       340 
     | 
    
         
            -
            	  </div>
         
     | 
| 
       341 
     | 
    
         
            -
            	<% end %>
         
     | 
| 
       342 
     | 
    
         
            -
             
     | 
| 
       343 
     | 
    
         
            -
            mv:javascript_include="prototype.js"
         
     | 
| 
       344 
     | 
    
         
            -
            	Replaces the tag with a javascript_include_tag helper, for example...
         
     | 
| 
       345 
     | 
    
         
            -
            	
         
     | 
| 
       346 
     | 
    
         
            -
            	<script type="text/javascript" src="../../../public/javascripts/prototype.js" 
         
     | 
| 
       347 
     | 
    
         
            -
                       mv:javascript_include="prototype.js"></script>
         
     | 
| 
       348 
     | 
    
         
            -
             
     | 
| 
       349 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       350 
     | 
    
         
            -
             
     | 
| 
       351 
     | 
    
         
            -
            	<%= javascript_include_tag 'prototype.js' %>
         
     | 
| 
       352 
     | 
    
         
            -
             
     | 
| 
       353 
     | 
    
         
            -
            	This is useful to allow scripts to be used for demos/prototypes and then at runtime 
         
     | 
| 
       354 
     | 
    
         
            -
                    use the appropriate asset using the rails helper.
         
     | 
| 
       355 
     | 
    
         
            -
             
     | 
| 
       356 
     | 
    
         
            -
            mv:link_to="linkToOptions"
         
     | 
| 
       357 
     | 
    
         
            -
            	Replaces the tag with a link_to helper, it uses the contents of the tag for the name of the link, 
         
     | 
| 
       358 
     | 
    
         
            -
            	so the name of the link can be changed by the html designer and it gets used in the appropriate place 
         
     | 
| 
       359 
     | 
    
         
            -
            	in the helper, for example...
         
     | 
| 
       360 
     | 
    
         
            -
             
     | 
| 
       361 
     | 
    
         
            -
            	<a mv:link_to=":action => 'new'">New product</a>
         
     | 
| 
       362 
     | 
    
         
            -
            	
         
     | 
| 
       363 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       364 
     | 
    
         
            -
             
     | 
| 
       365 
     | 
    
         
            -
            	<%= link_to 'New product', :action => 'new' %>
         
     | 
| 
       366 
     | 
    
         
            -
             
     | 
| 
       367 
     | 
    
         
            -
            mv:link_to_if="linkToIfConditionAndOption"
         
     | 
| 
       368 
     | 
    
         
            -
            	Replaces the tag with a link_to_if helper, uses the contents of the tag for the name of the 
         
     | 
| 
       369 
     | 
    
         
            -
            	link so the name of the link can be changed by the html designer and it gets used in the appropriate 
         
     | 
| 
       370 
     | 
    
         
            -
            	place in the helper, for example...
         
     | 
| 
       371 
     | 
    
         
            -
             
     | 
| 
       372 
     | 
    
         
            -
            	<a mv:link_to_if="@product_pages.current.previous, { :page => @product_pages.current.previous }"Previous page"</a>
         
     | 
| 
       373 
     | 
    
         
            -
             
     | 
| 
       374 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       375 
     | 
    
         
            -
             
     | 
| 
       376 
     | 
    
         
            -
            	<%= link_to_if @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous } %>
         
     | 
| 
       377 
     | 
    
         
            -
             
     | 
| 
       378 
     | 
    
         
            -
            mv:link_to_remote="linkToRemoteOptions"
         
     | 
| 
       379 
     | 
    
         
            -
            	Replaces the tag with a link_to_remote helper, uses the contents of the tag for the name of the 
         
     | 
| 
       380 
     | 
    
         
            -
            	link so the name of the link can be changed by the html designer and it gets used in the appropriate 
         
     | 
| 
       381 
     | 
    
         
            -
            	place in the helper, for example...
         
     | 
| 
       382 
     | 
    
         
            -
             
     | 
| 
       383 
     | 
    
         
            -
            	<a mv:link_to_remote=":action => 'new'">New product</a>
         
     | 
| 
       384 
     | 
    
         
            -
            	
         
     | 
| 
       385 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       386 
     | 
    
         
            -
             
     | 
| 
       387 
     | 
    
         
            -
            	<%= link_to_remote 'New product', :action => 'new' %>
         
     | 
| 
       388 
     | 
    
         
            -
             
     | 
| 
       389 
     | 
    
         
            -
            mv:omit_tag="evalString"
         
     | 
| 
       390 
     | 
    
         
            -
            	Omit the element tag if the evalString is empty or evaluates to true. For example...
         
     | 
| 
       391 
     | 
    
         
            -
             
     | 
| 
       392 
     | 
    
         
            -
            	<span mv:omit_tag="">hello</span>
         
     | 
| 
       393 
     | 
    
         
            -
             
     | 
| 
       394 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       395 
     | 
    
         
            -
             
     | 
| 
       396 
     | 
    
         
            -
            	hello
         
     | 
| 
       397 
     | 
    
         
            -
             
     | 
| 
       398 
     | 
    
         
            -
            	<span mv:omit_tag="@test">hello</span>
         
     | 
| 
       399 
     | 
    
         
            -
             
     | 
| 
       400 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
            	<% if @test %><span><% end %>hello<% if @test %></span><% end %>
         
     | 
| 
       403 
     | 
    
         
            -
             
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
            mv:password_field="user, password"
         
     | 
| 
       406 
     | 
    
         
            -
            	Replaces the tag with a password_field helper using the attribute as well as merging any html 
         
     | 
| 
       407 
     | 
    
         
            -
            	attributes that have been set by the designer, for example...
         
     | 
| 
       408 
     | 
    
         
            -
             
     | 
| 
       409 
     | 
    
         
            -
            	<input type="password" mv:password_field="user, password"/>
         
     | 
| 
       410 
     | 
    
         
            -
             
     | 
| 
       411 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       412 
     | 
    
         
            -
             
     | 
| 
       413 
     | 
    
         
            -
            	<%= password_field user, password %>
         
     | 
| 
       414 
     | 
    
         
            -
             
     | 
| 
       415 
     | 
    
         
            -
            	and similarly
         
     | 
| 
       416 
     | 
    
         
            -
             
     | 
| 
       417 
     | 
    
         
            -
            	<input type="password" mv:password_field="user, password" size="10" maxlength="15" class="pwdStyle"/>
         
     | 
| 
       418 
     | 
    
         
            -
            	
         
     | 
| 
       419 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       420 
     | 
    
         
            -
             
     | 
| 
       421 
     | 
    
         
            -
            	<%= password_field, user, password, :class => 'pwdStyle', :maxlength = 15, :size => 10 %>
         
     | 
| 
       422 
     | 
    
         
            -
             
     | 
| 
       423 
     | 
    
         
            -
            mv:replace="foo bar"
         
     | 
| 
       424 
     | 
    
         
            -
            	Replaces the tag and contents with the erb executed output of the attribute. If the attribute 
         
     | 
| 
       425 
     | 
    
         
            -
            	value is an empty string then the tag is simply removed and nothing is output,  for example...
         
     | 
| 
       426 
     | 
    
         
            -
             
     | 
| 
       427 
     | 
    
         
            -
            	<span mv:replace="h product.name">dummy product name</span>
         
     | 
| 
       428 
     | 
    
         
            -
             
     | 
| 
       429 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       430 
     | 
    
         
            -
             
     | 
| 
       431 
     | 
    
         
            -
            	<%= h product.name %>
         
     | 
| 
       432 
     | 
    
         
            -
             
     | 
| 
       433 
     | 
    
         
            -
            	and similarly, you can use this to remove dummy html which was there for prototyping/demoing
         
     | 
| 
       434 
     | 
    
         
            -
             
     | 
| 
       435 
     | 
    
         
            -
            	<table>
         
     | 
| 
       436 
     | 
    
         
            -
            	  other rows here
         
     | 
| 
       437 
     | 
    
         
            -
            	<tr mv:replace="">
         
     | 
| 
       438 
     | 
    
         
            -
            	  <td>foo</td>
         
     | 
| 
       439 
     | 
    
         
            -
            	  <td>bar</td>
         
     | 
| 
       440 
     | 
    
         
            -
            	</tr>
         
     | 
| 
       441 
     | 
    
         
            -
            	</table>
         
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       444 
     | 
    
         
            -
             
     | 
| 
       445 
     | 
    
         
            -
            	<table>
         
     | 
| 
       446 
     | 
    
         
            -
            	  other rows here
         
     | 
| 
       447 
     | 
    
         
            -
            	</table>
         
     | 
| 
       448 
     | 
    
         
            -
             
     | 
| 
       449 
     | 
    
         
            -
            	Passing in an empty attribute simply eliminated the tag, children, and contents
         
     | 
| 
       450 
     | 
    
         
            -
             
     | 
| 
       451 
     | 
    
         
            -
            mv:stylesheet_link="style"
         
     | 
| 
       452 
     | 
    
         
            -
            	Replaces the tag with a stylesheet_link_tag helper, for example...
         
     | 
| 
       453 
     | 
    
         
            -
            	
         
     | 
| 
       454 
     | 
    
         
            -
                  <link rel="stylesheet" type="text/css" href="../../../public/stylesheets/scaffold.css" mv:stylesheet_link="scaffold"/>
         
     | 
| 
       455 
     | 
    
         
            -
             
     | 
| 
       456 
     | 
    
         
            -
            	becomes
         
     | 
| 
       457 
     | 
    
         
            -
             
     | 
| 
       458 
     | 
    
         
            -
                  <%= stylesheet_link_tag "scaffold" %>
         
     | 
| 
       459 
     | 
    
         
            -
             
     | 
| 
       460 
     | 
    
         
            -
                  This is useful to allow style to be used for demos/prototypes and then at runtime 
         
     | 
| 
       461 
     | 
    
         
            -
                  use the appropriate asset using the rails helper.
         
     | 
| 
       462 
     | 
    
         
            -
             
     | 
| 
       463 
     | 
    
         
            -
            mv:submit="submitOptions"
         
     | 
| 
       464 
     | 
    
         
            -
            	Replaces the tag with a submit_tag helper, it uses the html value attribute to set the text 
         
     | 
| 
       465 
     | 
    
         
            -
            	in the helper, and appends any options after, for example...
         
     | 
| 
       466 
     | 
    
         
            -
             
     | 
| 
       467 
     | 
    
         
            -
            	<input type="submit" mv:submit="" value="Save product"/>
         
     | 
| 
       468 
     | 
    
         
            -
             
     | 
| 
       469 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       470 
     | 
    
         
            -
             
     | 
| 
       471 
     | 
    
         
            -
            	<%= submit_tag 'Save product' %>
         
     | 
| 
       472 
     | 
    
         
            -
             
     | 
| 
       473 
     | 
    
         
            -
            	and 
         
     | 
| 
       474 
     | 
    
         
            -
             
     | 
| 
       475 
     | 
    
         
            -
            	<input type="submit" mv:submit=":foo => 'bar'" value="Save product"/>
         
     | 
| 
       476 
     | 
    
         
            -
             
     | 
| 
       477 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       478 
     | 
    
         
            -
             
     | 
| 
       479 
     | 
    
         
            -
            	<%= submit_tag 'Save product', :foo => 'bar' %>
         
     | 
| 
       480 
     | 
    
         
            -
             
     | 
| 
       481 
     | 
    
         
            -
             
     | 
| 
       482 
     | 
    
         
            -
            mv:text_area="object, method"
         
     | 
| 
       483 
     | 
    
         
            -
            	Replaces the tag with a text_area helper, it uses the html attributes like rows, cols, disabled, 
         
     | 
| 
       484 
     | 
    
         
            -
            	readonly, class, style, tabindex, accesskey and merges them with the object and method specified 
         
     | 
| 
       485 
     | 
    
         
            -
            	in the attribute value, for example...
         
     | 
| 
       486 
     | 
    
         
            -
             
     | 
| 
       487 
     | 
    
         
            -
            	<textarea mv:text_areas="product, desc">dummy text</textarea>
         
     | 
| 
       488 
     | 
    
         
            -
             
     | 
| 
       489 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       490 
     | 
    
         
            -
             
     | 
| 
       491 
     | 
    
         
            -
            	<%= text_area prouct, desc %>
         
     | 
| 
       492 
     | 
    
         
            -
             
     | 
| 
       493 
     | 
    
         
            -
            	or a more complex example
         
     | 
| 
       494 
     | 
    
         
            -
             
     | 
| 
       495 
     | 
    
         
            -
            	<textarea mv:text_area="product, desc" rows="4" cols="60", class="mystyle">dummy text</textarea>
         
     | 
| 
       496 
     | 
    
         
            -
             
     | 
| 
       497 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       498 
     | 
    
         
            -
             
     | 
| 
       499 
     | 
    
         
            -
            	<%= textarea product, desc, :class => 'mystyle', :cols => '60', :rows => 4 %>
         
     | 
| 
       500 
     | 
    
         
            -
             
     | 
| 
       501 
     | 
    
         
            -
            mv:text_field="object, method"
         
     | 
| 
       502 
     | 
    
         
            -
            	Replaces the tag with a text_field helper, it uses the html attributes like size, maxlength, 
         
     | 
| 
       503 
     | 
    
         
            -
            	disabled, readonly, class, style, tabindex, accesskey and merges them with the object and 
         
     | 
| 
       504 
     | 
    
         
            -
            	method specified in the attribute value, for example...
         
     | 
| 
       505 
     | 
    
         
            -
            	
         
     | 
| 
       506 
     | 
    
         
            -
            	<input type="text" mv:text_field="product, name" value="dummy text"/>
         
     | 
| 
       507 
     | 
    
         
            -
             
     | 
| 
       508 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       509 
     | 
    
         
            -
             
     | 
| 
       510 
     | 
    
         
            -
            	<%= text_field product, name %>
         
     | 
| 
       511 
     | 
    
         
            -
             
     | 
| 
       512 
     | 
    
         
            -
            	and 
         
     | 
| 
       513 
     | 
    
         
            -
             
     | 
| 
       514 
     | 
    
         
            -
            	<input type="text" mv:text_field="product, name" value="dummy text" class="mystyle" size="15" maxlength="20"/>
         
     | 
| 
       515 
     | 
    
         
            -
             
     | 
| 
       516 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       517 
     | 
    
         
            -
             
     | 
| 
       518 
     | 
    
         
            -
            	<%= text_field product, name, :class => 'mystyle', :maxlength => 20, :size => 15 %>
         
     | 
| 
       519 
     | 
    
         
            -
             
     | 
| 
       520 
     | 
    
         
            -
            	
         
     | 
| 
       521 
     | 
    
         
            -
             
     | 
| 
       522 
     | 
    
         
            -
            Inline substitutions
         
     | 
| 
       523 
     | 
    
         
            -
            	Since <%= foobar %> and <% foo %> are invalid xhtml values, MasterView has an inline substitution to 
         
     | 
| 
       524 
     | 
    
         
            -
            	replace these for the cases when you simply want to inject something. {{{ gets replaced with <% 
         
     | 
| 
       525 
     | 
    
         
            -
            	and {{{= gets replaced with <%= also }}} gets replaced with %> If you instead want to use the 
         
     | 
| 
       526 
     | 
    
         
            -
            	old <% syntax instead, MasterView by default is setup to perform a substitution on those values before 
         
     | 
| 
       527 
     | 
    
         
            -
            	parsing. However to be safe you should use the xhtml safe syntax otherwise html editors might end 
         
     | 
| 
       528 
     | 
    
         
            -
            	up changing things on you.
         
     | 
| 
       529 
     | 
    
         
            -
             
     | 
| 
       530 
     | 
    
         
            -
            	{{{= foobar }}}
         
     | 
| 
       531 
     | 
    
         
            -
             
     | 
| 
       532 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       533 
     | 
    
         
            -
             
     | 
| 
       534 
     | 
    
         
            -
            	<%= foobar %>
         
     | 
| 
       535 
     | 
    
         
            -
             
     | 
| 
       536 
     | 
    
         
            -
             
     | 
| 
       537 
     | 
    
         
            -
            	and
         
     | 
| 
       538 
     | 
    
         
            -
             
     | 
| 
       539 
     | 
    
         
            -
            	{{{ foo }}}
         
     | 
| 
       540 
     | 
    
         
            -
            	
         
     | 
| 
       541 
     | 
    
         
            -
            	  becomes
         
     | 
| 
       542 
     | 
    
         
            -
             
     | 
| 
       543 
     | 
    
         
            -
            	<% foo %>
         
     | 
| 
      
 62 
     | 
    
         
            +
            The MasterView User's Guide and a complete Directives Reference are provided
         
     | 
| 
      
 63 
     | 
    
         
            +
            in the MasterView user documentation.  MasterView templates can be
         
     | 
| 
      
 64 
     | 
    
         
            +
            created by hand simply by adding masterview directives markup to
         
     | 
| 
      
 65 
     | 
    
         
            +
            an (x)html template, or generated for typical Rails controller/view
         
     | 
| 
      
 66 
     | 
    
         
            +
            scenarios using the supplied masterview generator developer tool.
         
     | 
| 
       544 
67 
     | 
    
         | 
| 
      
 68 
     | 
    
         
            +
            A MasterView Admin controller can optionally be activated in your application
         
     | 
| 
      
 69 
     | 
    
         
            +
            to assist you during development with creating and managing your templates.
         
     | 
| 
       545 
70 
     | 
    
         | 
| 
       546 
71 
     | 
    
         
             
            == Background story
         
     | 
| 
       547 
72 
     | 
    
         | 
| 
         @@ -586,8 +111,10 @@ structures to pass to the templates) as so many of the other engines relied on. 
     | 
|
| 
       586 
111 
     | 
    
         
             
            I expanded my search outside of Ruby for the best html template technology I could find. 
         
     | 
| 
       587 
112 
     | 
    
         
             
            After reviewing all the front runners I still didn't find anything that quite met with my 
         
     | 
| 
       588 
113 
     | 
    
         
             
            goals for developing with ruby and rails. I also didn't find any technology that was 
         
     | 
| 
       589 
     | 
    
         
            -
            close enough that I could adapt it. However I did come across features in a variety of
         
     | 
| 
       590 
     | 
    
         
            -
            systems that inspired me, and helped me shape the ideas that are presented here.
         
     | 
| 
      
 114 
     | 
    
         
            +
            close enough that I could adapt it. However I did come across features in a variety of 
         
     | 
| 
      
 115 
     | 
    
         
            +
            systems that inspired me, and helped me shape the ideas that are presented here. 
         
     | 
| 
      
 116 
     | 
    
         
            +
            A few of those systems were Tapestry, Zope/PHP TAL, Kwartz, Amrita 2, Liquid, 
         
     | 
| 
      
 117 
     | 
    
         
            +
            and Web Objects. 
         
     | 
| 
       591 
118 
     | 
    
         | 
| 
       592 
119 
     | 
    
         
             
            After putting much thought into all the possible options I could not see extending 
         
     | 
| 
       593 
120 
     | 
    
         
             
            an existing template engine to meet my needs. And since I wanted this engine to have
         
     | 
| 
         @@ -614,6 +141,12 @@ thank God for bringing the right people into my life just when I needed them and 
     | 
|
| 
       614 
141 
     | 
    
         
             
            bringing me on this wonderful journey, I am so very blessed. May I be able to give 
         
     | 
| 
       615 
142 
     | 
    
         
             
            back some of what has been given to me.
         
     | 
| 
       616 
143 
     | 
    
         | 
| 
      
 144 
     | 
    
         
            +
            And one more mention of tremendous thanks to Deb Lewis, the other core developer on the
         
     | 
| 
      
 145 
     | 
    
         
            +
            team, she has spent countless hours reviewing, revising, and improving the codebase, 
         
     | 
| 
      
 146 
     | 
    
         
            +
            configuration, and documentation. The project wouldn't be half of what it is today 
         
     | 
| 
      
 147 
     | 
    
         
            +
            without all her help, inspiration, and hard work. I thoroughly enjoy working and 
         
     | 
| 
      
 148 
     | 
    
         
            +
            debating the finer points of the project with her each step of the way.
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
       617 
150 
     | 
    
         
             
            So that's the story, I hope that many of you will find MasterView to be a useful
         
     | 
| 
       618 
151 
     | 
    
         
             
            tool for your development. I am continuing to refine MasterView by using it daily for
         
     | 
| 
       619 
152 
     | 
    
         
             
            Genesis Ministry sites and all my web projects. I know that there is much more work needed 
         
     | 
| 
         @@ -622,4 +155,3 @@ appreciate any feedback and ideas that you have. Thanks for taking the time to 
     | 
|
| 
       622 
155 
     | 
    
         
             
            review MasterView!
         
     | 
| 
       623 
156 
     | 
    
         | 
| 
       624 
157 
     | 
    
         
             
            Jeff Barczewski (jeff.barczewski  @   gmail.com)
         
     | 
| 
       625 
     | 
    
         
            -
             
     | 
    
        data/RELEASE_NOTES
    CHANGED
    
    | 
         @@ -1,15 +1,105 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = MasterView - Rails-optimized (x)html friendly template engine 
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            == Recent changes
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
         
     | 
| 
      
 3 
     | 
    
         
            +
            == Recent changes (Release 0.2.0)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Release 0.2.0 features a number of significant improvements.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            MasterView templates can now be compiled directly into the Rails
         
     | 
| 
      
 8 
     | 
    
         
            +
            view cache, just like .rhtml files in your app/views directory.
         
     | 
| 
      
 9 
     | 
    
         
            +
            Output generation of .rhtml files from a MasterView template
         
     | 
| 
      
 10 
     | 
    
         
            +
            is now optional.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            A keyword substitution mechanism is now supported for the
         
     | 
| 
      
 13 
     | 
    
         
            +
            mv:generate and mv:import group of template processing directives
         
     | 
| 
      
 14 
     | 
    
         
            +
            to enable you to more easily specify standard output file names
         
     | 
| 
      
 15 
     | 
    
         
            +
            derived from the template filename and relative path.
         
     | 
| 
      
 16 
     | 
    
         
            +
            Template markup of the form:
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              mv:generate="{template_path}"
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            avoids having to replicate the name of the template file itself
         
     | 
| 
      
 21 
     | 
    
         
            +
            or its relative path within the masterview templates directory.
         
     | 
| 
      
 22 
     | 
    
         
            +
            See the MasterView User's Guide and Directives Reference for details.
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            A new configuration facility has been added to allow you to
         
     | 
| 
      
 25 
     | 
    
         
            +
            customize the MasterView configuration using settings
         
     | 
| 
      
 26 
     | 
    
         
            +
            files in your rails app config directory, following the
         
     | 
| 
      
 27 
     | 
    
         
            +
            same approach as the Rails framework itself.
         
     | 
| 
      
 28 
     | 
    
         
            +
            See the new Configuration Guide documentation for details.
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            Configuration settings for controlling logging level have been added.
         
     | 
| 
      
 31 
     | 
    
         
            +
            The MasterView admin controller is now disabled by default.
         
     | 
| 
      
 32 
     | 
    
         
            +
            Use the config.enable_admin_pages setting to enable
         
     | 
| 
      
 33 
     | 
    
         
            +
            (usually want only in your config/masterview/environments/development.rb).
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            The documentation has been reworked and enhanced to provide
         
     | 
| 
      
 36 
     | 
    
         
            +
            improved documentation on installation and usage, along with
         
     | 
| 
      
 37 
     | 
    
         
            +
            a new Configuration Guide describing how to customize the
         
     | 
| 
      
 38 
     | 
    
         
            +
            MasterView configuration.
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            UPGRADE NOTES: If you have customized your MasterView configuration
         
     | 
| 
      
 41 
     | 
    
         
            +
            in the init.rb file of your existing plugin installation, you *MUST* 
         
     | 
| 
      
 42 
     | 
    
         
            +
            migrate your configuration to the new settings file configuration mechanism
         
     | 
| 
      
 43 
     | 
    
         
            +
            (config/masterview/settings.rb and environment settings files).
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            Also note that a directive was renamed from gen_render to gen_partial to 
         
     | 
| 
      
 46 
     | 
    
         
            +
            more clearly represent the functionality and eliminate future confusion.
         
     | 
| 
      
 47 
     | 
    
         
            +
            Be sure to change any references to gen_render to gen_partial.
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            The default location for MasterView templates is now the standard Rails 
         
     | 
| 
      
 50 
     | 
    
         
            +
            app/views directory.  Either move your existing templates into app/views 
         
     | 
| 
      
 51 
     | 
    
         
            +
            or update the MasterView config.template_src_dir_path setting in your
         
     | 
| 
      
 52 
     | 
    
         
            +
            config/masterview/settings.rb to reference your existing templates source 
         
     | 
| 
      
 53 
     | 
    
         
            +
            directory.
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            == Recent changes (Release 0.1.0)
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            MasterView now by default generates five masterview template files instead 
         
     | 
| 
      
 58 
     | 
    
         
            +
            of one, though you can specify the --single-file option to only generate 
         
     | 
| 
      
 59 
     | 
    
         
            +
            one file. Using one masterview template file gives the most DRY implementation 
         
     | 
| 
      
 60 
     | 
    
         
            +
            but since all the views are in one file, it can become a point of contention 
         
     | 
| 
      
 61 
     | 
    
         
            +
            and is a little more difficult for designers to work with. 
         
     | 
| 
      
 62 
     | 
    
         
            +
            This Version 0.1.0 upgrade fixes that by generating one masterview template 
         
     | 
| 
      
 63 
     | 
    
         
            +
            for each action (list, new, edit, show, destroy). The layout and message 
         
     | 
| 
      
 64 
     | 
    
         
            +
            partials are defined in the list template and are imported into the other 
         
     | 
| 
      
 65 
     | 
    
         
            +
            files so that you can have a complete page rendering when working with style 
         
     | 
| 
      
 66 
     | 
    
         
            +
            and design of page. Similarly new defines the form partial which is imported 
         
     | 
| 
      
 67 
     | 
    
         
            +
            into edit, and show defines a _show partial which is imported into destroy.
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            One can edit the layout or other partials in the file they are defined in, 
         
     | 
| 
      
 70 
     | 
    
         
            +
            so for instance to edit the layout, edit the list template and once finished, 
         
     | 
| 
      
 71 
     | 
    
         
            +
            you can trigger the other templates to be rebuilt with the current information. 
         
     | 
| 
      
 72 
     | 
    
         
            +
            MasterView now contains an MasterView admin controller/view to visually see 
         
     | 
| 
      
 73 
     | 
    
         
            +
            all the status and details about the templates. You can rebuild any out of sync 
         
     | 
| 
      
 74 
     | 
    
         
            +
            templates from this page. Alternatively you can view and rebuild templates from 
         
     | 
| 
      
 75 
     | 
    
         
            +
            the command line as well using the built in rake commands (mv:list, mv:list_all, 
         
     | 
| 
      
 76 
     | 
    
         
            +
            mv:rebuild TEMPLATE=foo.html, mv:rebuild_all).
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            To make it easy to add additional actions which also import the layout, 
         
     | 
| 
      
 79 
     | 
    
         
            +
            MasterView now has a way to generate a starter template file for your action 
         
     | 
| 
      
 80 
     | 
    
         
            +
            by simply choosing from which other template file you want to import the layout 
         
     | 
| 
      
 81 
     | 
    
         
            +
            from. For instance say you want to add an action called hello to your Product 
         
     | 
| 
      
 82 
     | 
    
         
            +
            controller. Find the masterview template you want to get the layout imported 
         
     | 
| 
      
 83 
     | 
    
         
            +
            from which could be (product_list.html, product_new.html, product_edit.html, ...), 
         
     | 
| 
      
 84 
     | 
    
         
            +
            you can choose any of the templates that have the layout you want (it doesn't 
         
     | 
| 
      
 85 
     | 
    
         
            +
            matter whether they defined the layout or simply imported it. To generate the 
         
     | 
| 
      
 86 
     | 
    
         
            +
            starter template go to the MasterView Admin page http://yourserver/masterview 
         
     | 
| 
      
 87 
     | 
    
         
            +
            and click copy link next to the appropriate template. On the next screen indicate 
         
     | 
| 
      
 88 
     | 
    
         
            +
            the name of the action you wish to add (in this case 'hello') and click the submit 
         
     | 
| 
      
 89 
     | 
    
         
            +
            button. MasterView generates a starter template file product_hello.html which 
         
     | 
| 
      
 90 
     | 
    
         
            +
            imports the layout from the template file you chose and it creates some 
         
     | 
| 
      
 91 
     | 
    
         
            +
            placeholder divs in the template that you can edit to add your hello view code. 
         
     | 
| 
      
 92 
     | 
    
         
            +
            Alternatively there is also a 
         
     | 
| 
      
 93 
     | 
    
         
            +
                rake mv:copy_layout TEMPLATE=product_list.html ACTION=hello 
         
     | 
| 
      
 94 
     | 
    
         
            +
            command to allow you to do the same thing via command line.
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            Note that you don't have to use the starter or generated files to use MasterView 
         
     | 
| 
      
 97 
     | 
    
         
            +
            (you can just add MasterView attribute directives manually), but I found that 
         
     | 
| 
      
 98 
     | 
    
         
            +
            once you had things started and wanted to reuse that same information, that 
         
     | 
| 
      
 99 
     | 
    
         
            +
            having an automated way to get the layout imported makes it much easier and 
         
     | 
| 
      
 100 
     | 
    
         
            +
            quicker to get things going. You can also change the default action div that is 
         
     | 
| 
      
 101 
     | 
    
         
            +
            generated by simply creating your own file in app/views/masterview/admin/empty.rhtml 
         
     | 
| 
      
 102 
     | 
    
         
            +
            which if found the copy_layout will use it, otherwise it uses the one from the gem/plugin. 
         
     | 
| 
       13 
103 
     | 
    
         | 
| 
       14 
104 
     | 
    
         
             
            == Description
         
     | 
| 
       15 
105 
     | 
    
         | 
| 
         @@ -18,14 +108,20 @@ It is designed to use the full power and productivity of rails including 
     | 
|
| 
       18 
108 
     | 
    
         
             
            layouts, partials, and rails html helpers while still being editable/styleable 
         
     | 
| 
       19 
109 
     | 
    
         
             
            in a WYSIWYG HTML editor.  
         
     | 
| 
       20 
110 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
            MasterView is distributed as a gem or a plugin. You may install it as a gem and  
     | 
| 
      
 111 
     | 
    
         
            +
            MasterView is distributed as a gem or a plugin. You may install it as a gem and 
         
     | 
| 
      
 112 
     | 
    
         
            +
            then generate a lightweight plugin which mainly refers to the gem *or* you can 
         
     | 
| 
      
 113 
     | 
    
         
            +
            simply install as a plugin which is self contained. I personally prefer installing 
         
     | 
| 
      
 114 
     | 
    
         
            +
            as a gem for ease of management, however if you are running at a shared hosting 
         
     | 
| 
      
 115 
     | 
    
         
            +
            environment you might not have authority to install this gem so you may install 
         
     | 
| 
      
 116 
     | 
    
         
            +
            as a self contained plugin.
         
     | 
| 
       22 
117 
     | 
    
         | 
| 
       23 
118 
     | 
    
         
             
            If you are interested in the background story behind all this, it is at the end of this page.
         
     | 
| 
       24 
119 
     | 
    
         | 
| 
       25 
120 
     | 
    
         
             
            Author:: Jeff Barczewski
         
     | 
| 
       26 
121 
     | 
    
         
             
            Email:: jeff.barczewski @ gmail.com
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 122 
     | 
    
         
            +
            Primary developers:: Jeff Barczewski, Deb Lewis
         
     | 
| 
       28 
123 
     | 
    
         
             
            Website:: http://masterview.org
         
     | 
| 
      
 124 
     | 
    
         
            +
            Rubyforge project:: masterview
         
     | 
| 
       29 
125 
     | 
    
         
             
            License:: MIT open source license like Rails
         
     | 
| 
       30 
126 
     | 
    
         | 
| 
       31 
127 
     | 
    
         
             
            == Goals
         
     | 
| 
         @@ -48,44 +144,29 @@ Optional:: 
     | 
|
| 
       48 
144 
     | 
    
         
             
            	tidy (gem) and tidy library - if these are installed you can use tidy to cleanup html into valid xhtml for use by MasterView
         
     | 
| 
       49 
145 
     | 
    
         
             
            	log4r (gem) - if this gem is installed then MasterView will use it for logging otherwise it defaults to using built in Logger.
         
     | 
| 
       50 
146 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
            ==  
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
            Install in one of the two following ways depending on whether you can use gems or not. 
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
            === Installation using gems (if you are able to use gems)
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
            If you can use gems you may simply do the following
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            gem install masterview_gem_pack
         
     | 
| 
      
 147 
     | 
    
         
            +
            == User Documentation
         
     | 
| 
       60 
148 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 149 
     | 
    
         
            +
            MasterView documentation is available online at the MasterView site:
         
     | 
| 
      
 150 
     | 
    
         
            +
              http://www.masterview.org 
         
     | 
| 
      
 151 
     | 
    
         
            +
            and on the rubyforge project
         
     | 
| 
      
 152 
     | 
    
         
            +
              http://rubyforge.org/projects/masterview/
         
     | 
| 
       62 
153 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            After this MasterView is ready for use. Skip down to the Usage section for more details. 
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
            === Installation without using gems, install as plugin
         
     | 
| 
      
 154 
     | 
    
         
            +
            == Installation
         
     | 
| 
       68 
155 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
      
 156 
     | 
    
         
            +
            Detailed installation instructions for installing the masterview gems
         
     | 
| 
      
 157 
     | 
    
         
            +
            or a self-contained copy of the plugin is provided in the MasterView
         
     | 
| 
      
 158 
     | 
    
         
            +
            Installation Guide.
         
     | 
| 
       70 
159 
     | 
    
         | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
      
 160 
     | 
    
         
            +
            The Configuration Guide describes how to customize the configuration
         
     | 
| 
      
 161 
     | 
    
         
            +
            of the MasterView template engine for your application.
         
     | 
| 
       72 
162 
     | 
    
         | 
| 
       73 
163 
     | 
    
         
             
            == Usage
         
     | 
| 
       74 
164 
     | 
    
         | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
            By adding the --single-file switch MasterView will create a single file and to make it easier to use this template at design time, some design time css stylesheets are included in the file to hide all sections except one. By default the NEW section is the only one shown. Other options are --show-all which makes all sections visible or [--show-only list] which shows only the LIST section. When you are editing the masterview file you may comment/uncomment one of the other css files to show a different section. The --style param allows you to suppress default style generation and specify an existing stylesheet to use, if you exlude the stylesheet none will be used, if you include this option multiple times with different stylesheets each will be used.
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
            Once it is done generating, the generated MasterView template file will be created in app/views/masterview/controller.html. This file is html and can be edited with any standard html editor. The rails specific logic is contained in simple attributes which are ignored by html editors. The syntax for these attributes is heavily derived from the rails helper tags themselves so it should feel natural to the rails developer.
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
            Another interesting thing to know is that while all of the pages for this Model have been bundled up into a few html file for ease of editing, at runtime these templates gets rendered into the exact same layouts and partials that you would use if you were building from scratch. Its jsut that now you can see what your pages will render like in your wysiwyg html editor and change and layout accordingly. Additionally MasterView supplies some javascript to show only one action view at time (list, new, show, edit, destroy) so you can view in your browser without running in Rails. Dummy html can be included to improve the accuracy of the page which can be easily removed at runtime. To make it easier to work with in an editor, design time stylesheets are included in the file to allow you to hide all sections except the one you are working on, simply uncomment the appropriate stylesheet for the section you would like to work with.
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
            MasterView is designed to be easy for a developer and designer to work together. By keeping the template in an html friendly format, designers can apply style, layout changes, wording changes, without causing havoc on the rails view code. The designer can be involved at anytime during the development cycle including being able to change style and layout after the system is built. This is great for allowing design or wording changes without reinvolving the developers. One can even start from a designer created prototype and add MasterView tags to make it become real. Whichever way you prefer to work, MasterView accomodates you.
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
            With Version 0.1.0 a MasterView admin controller/view was added to provide a birds-eye view of all your masterview templates, the status of those templates (OK, Invalid xhtml, Conflicts, Imports outdated), the details regarding the status, and the ultimate erb files generated from each template. By default the MasterView admin controller is enabled by the plugin and is available at http://yourserver/masterview This controller can easily be disabled if not wanted by setting the EnableMasterViewAdminPages = false in the vendor/plugins/masterview/init.rb file. Additionally all of the power of the MasterView admin controller is available via a set of rake commands as well. rake mv:list mv:list_all mv:rebuild mv:rebuild_all mv:copy_layout. rake -T will give you further information about these commands.
         
     | 
| 
      
 165 
     | 
    
         
            +
            The MasterView User's Guide and a complete Directives Reference are provided
         
     | 
| 
      
 166 
     | 
    
         
            +
            in the MasterView user documentation.  MasterView templates can be
         
     | 
| 
      
 167 
     | 
    
         
            +
            created by hand simply by adding masterview directives markup to
         
     | 
| 
      
 168 
     | 
    
         
            +
            an (x)html template, or generated for typical Rails controller/view
         
     | 
| 
      
 169 
     | 
    
         
            +
            scenarios using the supplied masterview generator developer tool.
         
     | 
| 
       90 
170 
     | 
    
         | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
      
 171 
     | 
    
         
            +
            A MasterView Admin controller can optionally be activated in your application
         
     | 
| 
      
 172 
     | 
    
         
            +
            to assist you during development with creating and managing your templates.
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -10,8 +10,6 @@ require 'rake/contrib/rubyforgepublisher' 
     | 
|
| 
       10 
10 
     | 
    
         
             
            require 'rake/contrib/xforge'
         
     | 
| 
       11 
11 
     | 
    
         
             
            require 'rake/clean'
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            require 'gmailer'
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
13 
     | 
    
         
             
            #require 'archive/tar/minitar'
         
     | 
| 
       16 
14 
     | 
    
         
             
            #require 'zlib'
         
     | 
| 
       17 
15 
     | 
    
         | 
| 
         @@ -25,37 +23,107 @@ RUBY_FORGE_GROUPID = "1290" 
     | 
|
| 
       25 
23 
     | 
    
         | 
| 
       26 
24 
     | 
    
         
             
            Main_dir  = Dir.getwd
         
     | 
| 
       27 
25 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
            desc "Default Task"
         
     | 
| 
      
 26 
     | 
    
         
            +
            desc "Default Task: run all tests"
         
     | 
| 
       29 
27 
     | 
    
         
             
            task :default => [ :test ]
         
     | 
| 
       30 
28 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
            task :install => [:package] do
         
     | 
| 
      
 30 
     | 
    
         
            +
              `gem install pkg/#{PKG_FILE_NAME}.gem`
         
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            desc "Delete tar.gz / zip / gem / rdoc / tmp"
         
     | 
| 
      
 34 
     | 
    
         
            +
            task :cleanup => [ :rm_packages, 'doc:clobber_rdoc', 'dev:cleanup', 'test:cleanup' ]
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 38 
     | 
    
         
            +
            # Test tasks
         
     | 
| 
      
 39 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            desc 'Run all tests'
         
     | 
| 
      
 42 
     | 
    
         
            +
            task :test do
         
     | 
| 
      
 43 
     | 
    
         
            +
              Rake::Task["test:units"].invoke       rescue got_error = true
         
     | 
| 
      
 44 
     | 
    
         
            +
              #Rake::Task["test:functionals"].invoke rescue got_error = true
         
     | 
| 
      
 45 
     | 
    
         
            +
              #??Rake::Task["test:cleanup"].invoke       rescue got_error = true
         
     | 
| 
      
 46 
     | 
    
         
            +
              raise "Test failures" if got_error
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
| 
       33 
48 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
            # Run  
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
      
 49 
     | 
    
         
            +
            # Run all unit tests
         
     | 
| 
      
 50 
     | 
    
         
            +
            namespace 'test' do
         
     | 
| 
      
 51 
     | 
    
         
            +
            Rake::TestTask.new(:units) do |t|
         
     | 
| 
       36 
52 
     | 
    
         
             
              t.libs << "lib"
         
     | 
| 
       37 
53 
     | 
    
         
             
              t.libs << "test"
         
     | 
| 
       38 
     | 
    
         
            -
              t.pattern = 'test/*_test.rb'
         
     | 
| 
      
 54 
     | 
    
         
            +
              t.pattern = 'test/unit/*_test.rb'
         
     | 
| 
       39 
55 
     | 
    
         
             
              t.verbose = false
         
     | 
| 
       40 
56 
     | 
    
         
             
            end
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     | 
| 
       41 
58 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            task : 
     | 
| 
       45 
     | 
    
         
            -
               
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              filelist.each do |file|
         
     | 
| 
       48 
     | 
    
         
            -
                MasterView::Parser.parse_file( file, TmpOutputDir, :tidy => true )
         
     | 
| 
       49 
     | 
    
         
            -
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
            desc 'Clean up tmp files from running tests'
         
     | 
| 
      
 60 
     | 
    
         
            +
            namespace 'test' do
         
     | 
| 
      
 61 
     | 
    
         
            +
            task :cleanup do
         
     | 
| 
      
 62 
     | 
    
         
            +
              FileUtils.remove_dir('test/tmp', true)
         
     | 
| 
      
 63 
     | 
    
         
            +
            end
         
     | 
| 
       50 
64 
     | 
    
         
             
            end
         
     | 
| 
       51 
65 
     | 
    
         | 
| 
       52 
66 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 67 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 68 
     | 
    
         
            +
            # Documentation Tasks
         
     | 
| 
      
 69 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            # Generate the RDoc documentation
         
     | 
| 
      
 72 
     | 
    
         
            +
            namespace 'doc' do
         
     | 
| 
      
 73 
     | 
    
         
            +
            Rake::RDocTask.new { |rdoc|
         
     | 
| 
      
 74 
     | 
    
         
            +
              rdoc.rdoc_dir = 'doc/api'
         
     | 
| 
      
 75 
     | 
    
         
            +
              rdoc.title    = "MasterView Template Engine"
         
     | 
| 
      
 76 
     | 
    
         
            +
              rdoc.options << '--line-numbers' << '--inline-source'
         
     | 
| 
      
 77 
     | 
    
         
            +
              rdoc.rdoc_files.include('README')
         
     | 
| 
      
 78 
     | 
    
         
            +
              rdoc.rdoc_files.include('RELEASE_NOTES')
         
     | 
| 
      
 79 
     | 
    
         
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         
     | 
| 
      
 80 
     | 
    
         
            +
            }
         
     | 
| 
      
 81 
     | 
    
         
            +
            end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 84 
     | 
    
         
            +
            # Development Utilities Tasks
         
     | 
| 
      
 85 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            desc 'Install MasterView gems locally from pkg dir'
         
     | 
| 
      
 88 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 89 
     | 
    
         
            +
            task :install_local_gems do
         
     | 
| 
      
 90 
     | 
    
         
            +
              pkg_build = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
         
     | 
| 
      
 91 
     | 
    
         
            +
              pkg_version = MasterView::VERSION::STRING + pkg_build
         
     | 
| 
      
 92 
     | 
    
         
            +
              `gem install pkg/masterview-#{pkg_version}.gem --local -f`
         
     | 
| 
      
 93 
     | 
    
         
            +
              `gem install pkg/masterview_generator-#{pkg_version}.gem --local -f`
         
     | 
| 
      
 94 
     | 
    
         
            +
              `gem install pkg/masterview_plugin_generator-#{pkg_version}.gem --local -f`
         
     | 
| 
      
 95 
     | 
    
         
            +
              `gem install pkg/masterview_gem_pack-#{pkg_version}.gem --local -f`
         
     | 
| 
      
 96 
     | 
    
         
            +
            end
         
     | 
| 
      
 97 
     | 
    
         
            +
            end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            desc 'Uninstall all MasterView gems'
         
     | 
| 
      
 100 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 101 
     | 
    
         
            +
            task :uninstall_gems do
         
     | 
| 
      
 102 
     | 
    
         
            +
              `gem uninstall masterview -a -x -i`
         
     | 
| 
      
 103 
     | 
    
         
            +
            end
         
     | 
| 
       55 
104 
     | 
    
         
             
            end
         
     | 
| 
       56 
105 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            desc 'Run parser on masterview html templates in examples'
         
     | 
| 
      
 108 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 109 
     | 
    
         
            +
            task :mvparse_examples do
         
     | 
| 
      
 110 
     | 
    
         
            +
              template_mio_tree = MasterView::FileMIOTree.new('examples', '.html', :logging => true )
         
     | 
| 
      
 111 
     | 
    
         
            +
              output_mio_tree = MasterView::FileMIOTree.new('tmp/views', '.rhtml', :logging => true )
         
     | 
| 
      
 112 
     | 
    
         
            +
              template_mio_tree.find(:pattern => '*.html') do |mio|
         
     | 
| 
      
 113 
     | 
    
         
            +
                MasterView::Parser.parse_mio( mio, output_mio_tree )
         
     | 
| 
      
 114 
     | 
    
         
            +
              end
         
     | 
| 
      
 115 
     | 
    
         
            +
            end
         
     | 
| 
      
 116 
     | 
    
         
            +
            end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            # Run syntax check on all ruby code files
         
     | 
| 
      
 119 
     | 
    
         
            +
            desc 'Run syntax check on all ruby code files'
         
     | 
| 
      
 120 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 121 
     | 
    
         
            +
            task :check_syntax do 
         
     | 
| 
      
 122 
     | 
    
         
            +
              #WAS: filelist = Dir.glob('**/*.rb')
         
     | 
| 
      
 123 
     | 
    
         
            +
              #skip: generators - erb-ized code templates confuse the parser
         
     | 
| 
      
 124 
     | 
    
         
            +
              filelist = [ 'init.rb', 'lib/masterview.rb' ]
         
     | 
| 
      
 125 
     | 
    
         
            +
              filelist.concat Dir.glob('lib/**/*.rb')
         
     | 
| 
      
 126 
     | 
    
         
            +
              filelist.concat Dir.glob('test/**/*.rb')
         
     | 
| 
       59 
127 
     | 
    
         
             
              filelist.each do |file|
         
     | 
| 
       60 
128 
     | 
    
         
             
                output = `ruby -c #{file}`
         
     | 
| 
       61 
129 
     | 
    
         
             
                unless output =~ /Syntax OK/
         
     | 
| 
         @@ -64,26 +132,29 @@ task :syntax do 
     | 
|
| 
       64 
132 
     | 
    
         
             
                  return 
         
     | 
| 
       65 
133 
     | 
    
         
             
                end
         
     | 
| 
       66 
134 
     | 
    
         
             
              end
         
     | 
| 
      
 135 
     | 
    
         
            +
              puts "#{filelist.length} files checked"
         
     | 
| 
       67 
136 
     | 
    
         
             
              puts 'Syntax OK'  
         
     | 
| 
       68 
137 
     | 
    
         
             
            end
         
     | 
| 
      
 138 
     | 
    
         
            +
            end
         
     | 
| 
       69 
139 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
            #  
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
               
     | 
| 
       75 
     | 
    
         
            -
              rdoc.rdoc_files.include('README')
         
     | 
| 
       76 
     | 
    
         
            -
              rdoc.rdoc_files.include('RELEASE_NOTES')
         
     | 
| 
       77 
     | 
    
         
            -
              rdoc.rdoc_files.include('lib/**/*.rb')
         
     | 
| 
       78 
     | 
    
         
            -
            }
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            task :lines do
         
     | 
| 
      
 140 
     | 
    
         
            +
            # Count LOC in plugin lib
         
     | 
| 
      
 141 
     | 
    
         
            +
            desc 'Count LOC'
         
     | 
| 
      
 142 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 143 
     | 
    
         
            +
            task :count_loc do
         
     | 
| 
      
 144 
     | 
    
         
            +
              files = 0
         
     | 
| 
       81 
145 
     | 
    
         
             
              lines = 0
         
     | 
| 
       82 
146 
     | 
    
         
             
              codelines = 0
         
     | 
| 
       83 
     | 
    
         
            -
               
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
      
 147 
     | 
    
         
            +
              
         
     | 
| 
      
 148 
     | 
    
         
            +
              #VER1 WAS: Dir.foreach("lib") { |file_name| 
         
     | 
| 
      
 149 
     | 
    
         
            +
              #VER1 WAS:   next unless file_name =~ /.*rb/
         
     | 
| 
      
 150 
     | 
    
         
            +
              #VER1 WAS:   f = File.open("lib/" + file_name)
         
     | 
| 
      
 151 
     | 
    
         
            +
              filelist = [ 'init.rb', 'lib/masterview.rb' ]
         
     | 
| 
      
 152 
     | 
    
         
            +
              filelist.concat Dir.glob('lib/**/*.rb')
         
     | 
| 
      
 153 
     | 
    
         
            +
              #filelist.concat Dir.glob('test**/*.rb')
         
     | 
| 
      
 154 
     | 
    
         
            +
              filelist.each { |file_name|
         
     | 
| 
       85 
155 
     | 
    
         | 
| 
       86 
     | 
    
         
            -
                f = File.open( 
     | 
| 
      
 156 
     | 
    
         
            +
                f = File.open(file_name)
         
     | 
| 
      
 157 
     | 
    
         
            +
                files += 1
         
     | 
| 
       87 
158 
     | 
    
         | 
| 
       88 
159 
     | 
    
         
             
                while line = f.gets
         
     | 
| 
       89 
160 
     | 
    
         
             
                  lines += 1
         
     | 
| 
         @@ -92,10 +163,22 @@ task :lines do 
     | 
|
| 
       92 
163 
     | 
    
         
             
                  codelines += 1
         
     | 
| 
       93 
164 
     | 
    
         
             
                end
         
     | 
| 
       94 
165 
     | 
    
         
             
              }
         
     | 
| 
       95 
     | 
    
         
            -
              puts "Lines #{lines}, LOC #{codelines}"
         
     | 
| 
      
 166 
     | 
    
         
            +
              puts "Lines #{lines}, LOC #{codelines} in #{files} files"
         
     | 
| 
      
 167 
     | 
    
         
            +
            end
         
     | 
| 
      
 168 
     | 
    
         
            +
            end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
            desc 'Remove tmp files from running dev utilities'
         
     | 
| 
      
 171 
     | 
    
         
            +
            namespace 'dev' do
         
     | 
| 
      
 172 
     | 
    
         
            +
            task :cleanup do
         
     | 
| 
      
 173 
     | 
    
         
            +
              FileUtils.remove_dir('tmp', true)
         
     | 
| 
      
 174 
     | 
    
         
            +
            end
         
     | 
| 
       96 
175 
     | 
    
         
             
            end
         
     | 
| 
       97 
176 
     | 
    
         | 
| 
       98 
177 
     | 
    
         | 
| 
      
 178 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 179 
     | 
    
         
            +
            # Build/Release Tasks
         
     | 
| 
      
 180 
     | 
    
         
            +
            #==============================================================================
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
       99 
182 
     | 
    
         
             
            # Publish beta gem  
         
     | 
| 
       100 
183 
     | 
    
         
             
            #desc "Publish the gem"
         
     | 
| 
       101 
184 
     | 
    
         
             
            #task :publish => [:rdoc, :package] do
         
     | 
| 
         @@ -119,27 +202,92 @@ task :verify_gmail do 
     | 
|
| 
       119 
202 
     | 
    
         
             
              raise "GMAIL_PASSWORD environment variable not set!" unless ENV['GMAIL_PASSWORD']
         
     | 
| 
       120 
203 
     | 
    
         
             
            end
         
     | 
| 
       121 
204 
     | 
    
         | 
| 
      
 205 
     | 
    
         
            +
            def copy_if_different(src,dst)
         
     | 
| 
      
 206 
     | 
    
         
            +
              return if File.exist?(src) and File.exist?(dst) and File.read(src) == File.read(dst)
         
     | 
| 
      
 207 
     | 
    
         
            +
              FileUtils.cp src, dst
         
     | 
| 
      
 208 
     | 
    
         
            +
            end
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
            desc 'Copy duplicated files - copy files that are duplicated between packages'
         
     | 
| 
      
 211 
     | 
    
         
            +
            task :copy_duplicated_files do
         
     | 
| 
      
 212 
     | 
    
         
            +
              copy_if_different 'init.rb', 'generators/masterview_plugin/templates/init.rb'
         
     | 
| 
      
 213 
     | 
    
         
            +
              copy_if_different 'tasks/masterview.rake', 'generators/masterview_plugin/templates/masterview.rake'
         
     | 
| 
      
 214 
     | 
    
         
            +
              copy_if_different 'lib/masterview/extras/app/views/masterview/admin/empty.rhtml', 'generators/masterview_plugin/templates/empty.rhtml'
         
     | 
| 
      
 215 
     | 
    
         
            +
              copy_if_different 'examples/rails_app_config/masterview/settings.rb', 'generators/masterview_plugin/templates/settings.rb'
         
     | 
| 
      
 216 
     | 
    
         
            +
              copy_if_different 'examples/rails_app_config/masterview/environment/development.rb', 'generators/masterview_plugin/templates/development.rb'
         
     | 
| 
      
 217 
     | 
    
         
            +
              copy_if_different 'examples/rails_app_config/masterview/environment/production.rb', 'generators/masterview_plugin/templates/production.rb'
         
     | 
| 
      
 218 
     | 
    
         
            +
            end
         
     | 
| 
       122 
219 
     | 
    
         | 
| 
       123 
220 
     | 
    
         
             
            desc 'Build all packages'
         
     | 
| 
       124 
     | 
    
         
            -
            task :package => [ 
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
      
 221 
     | 
    
         
            +
            task :package => [
         
     | 
| 
      
 222 
     | 
    
         
            +
                    :copy_duplicated_files,
         
     | 
| 
      
 223 
     | 
    
         
            +
                    # gems (runtime, mv generator, mv plugin generator, 3-in-1 supersaver)
         
     | 
| 
      
 224 
     | 
    
         
            +
                    'masterview:package', 
         
     | 
| 
      
 225 
     | 
    
         
            +
                    'masterview_generator:package',
         
     | 
| 
      
 226 
     | 
    
         
            +
                    'masterview_plugin_generator:package',
         
     | 
| 
      
 227 
     | 
    
         
            +
                    'masterview_gem_pack:package',
         
     | 
| 
      
 228 
     | 
    
         
            +
                    # zip/gzip of full masterview
         
     | 
| 
      
 229 
     | 
    
         
            +
                    'masterview_plugin:package'
         
     | 
| 
      
 230 
     | 
    
         
            +
                    ]
         
     | 
| 
       129 
231 
     | 
    
         | 
| 
       130 
232 
     | 
    
         
             
            desc 'Re-build all packages'
         
     | 
| 
       131 
     | 
    
         
            -
            task :repackage => [ 
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
      
 233 
     | 
    
         
            +
            task :repackage => [
         
     | 
| 
      
 234 
     | 
    
         
            +
                    :copy_duplicated_files,
         
     | 
| 
      
 235 
     | 
    
         
            +
                    # gems (runtime, mv generator, mv plugin generator, 3-in-1 supersaver)
         
     | 
| 
      
 236 
     | 
    
         
            +
                    'masterview:repackage', 
         
     | 
| 
      
 237 
     | 
    
         
            +
                    'masterview_generator:repackage',
         
     | 
| 
      
 238 
     | 
    
         
            +
                    'masterview_plugin_generator:repackage',
         
     | 
| 
      
 239 
     | 
    
         
            +
                    'masterview_gem_pack:repackage',
         
     | 
| 
      
 240 
     | 
    
         
            +
                    # zip/gzip of full masterview
         
     | 
| 
      
 241 
     | 
    
         
            +
                    'masterview_plugin:repackage'
         
     | 
| 
      
 242 
     | 
    
         
            +
                    ]
         
     | 
| 
       136 
243 
     | 
    
         | 
| 
       137 
244 
     | 
    
         
             
            desc 'Release all files'
         
     | 
| 
       138 
     | 
    
         
            -
            task :release_files => [ 
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
             
     | 
| 
      
 245 
     | 
    
         
            +
            task :release_files => [
         
     | 
| 
      
 246 
     | 
    
         
            +
                    # gems (runtime, mv generator, mv plugin generator, 3-in-1 supersaver)
         
     | 
| 
      
 247 
     | 
    
         
            +
                    'masterview:release_files',
         
     | 
| 
      
 248 
     | 
    
         
            +
                    'masterview_generator:release_files',
         
     | 
| 
      
 249 
     | 
    
         
            +
                    'masterview_plugin_generator:release_files',
         
     | 
| 
      
 250 
     | 
    
         
            +
                    'masterview_gem_pack:release_files',
         
     | 
| 
      
 251 
     | 
    
         
            +
                    # zip/gzip of full masterview
         
     | 
| 
      
 252 
     | 
    
         
            +
                    'masterview_plugin:release_files'
         
     | 
| 
      
 253 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
      
 255 
     | 
    
         
            +
            desc 'Remove all tar.gz / zip / gem build pkg files'
         
     | 
| 
      
 256 
     | 
    
         
            +
            task :rm_packages do
         
     | 
| 
      
 257 
     | 
    
         
            +
              FileUtils.remove_dir('pkg', true)
         
     | 
| 
      
 258 
     | 
    
         
            +
            end
         
     | 
| 
      
 259 
     | 
    
         
            +
             
     | 
| 
      
 260 
     | 
    
         
            +
            ####
         
     | 
| 
      
 261 
     | 
    
         
            +
            #ISSUE: jeff - we don't include that top-level index.html in any of the packages?!
         
     | 
| 
      
 262 
     | 
    
         
            +
            ####
         
     | 
| 
      
 263 
     | 
    
         
            +
            PKG_FILES_RELEASE_DOCS = [
         
     | 
| 
      
 264 
     | 
    
         
            +
                  "[A-Z]*"   # README, RELEASE_NOTES, CHANGELOG, MIT_LICENSE, TODO
         
     | 
| 
      
 265 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 266 
     | 
    
         
            +
             
     | 
| 
      
 267 
     | 
    
         
            +
            PKG_FILES_RUNTIME = [
         
     | 
| 
      
 268 
     | 
    
         
            +
                  "lib/**/*",
         
     | 
| 
      
 269 
     | 
    
         
            +
                  "directives/**/*",  #SHOULD THIS GO AWAY (??)
         
     | 
| 
      
 270 
     | 
    
         
            +
                  "Rakefile", 
         
     | 
| 
      
 271 
     | 
    
         
            +
                  "init.rb"
         
     | 
| 
      
 272 
     | 
    
         
            +
                ]
         
     | 
| 
      
 273 
     | 
    
         
            +
            PKG_FILES_MV_GENERATOR = [
         
     | 
| 
      
 274 
     | 
    
         
            +
                  "generators/masterview/**/*"   # generator for creating app template scaffold
         
     | 
| 
      
 275 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 276 
     | 
    
         
            +
            PKG_FILES_MV_PLUGIN_GENERATOR = [
         
     | 
| 
      
 277 
     | 
    
         
            +
                  "generators/masterview_plugin/**/*"  # generator for creating vendor/plugins stub for gem install
         
     | 
| 
      
 278 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 279 
     | 
    
         
            +
             
     | 
| 
      
 280 
     | 
    
         
            +
            PKG_FILES_DOCS = [  # docs and examples, actually
         
     | 
| 
      
 281 
     | 
    
         
            +
                  "doc/*",
         
     | 
| 
      
 282 
     | 
    
         
            +
                  "doc/stylesheets/*",
         
     | 
| 
      
 283 
     | 
    
         
            +
                  "examples/**/*"
         
     | 
| 
      
 284 
     | 
    
         
            +
                ]
         
     | 
| 
      
 285 
     | 
    
         
            +
            PKG_FILES_TESTS = [
         
     | 
| 
      
 286 
     | 
    
         
            +
                  "test/**/*"
         
     | 
| 
      
 287 
     | 
    
         
            +
                ]
         
     | 
| 
      
 288 
     | 
    
         
            +
            PKG_FILES_EXCLUDE_PATTERN = /\bCVS\b|~$|\.svn|semantic.cache/
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
      
 290 
     | 
    
         
            +
            RAKE_PROCESSOR = RUBY_PLATFORM =~ /mswin32/ ? 'rake.cmd' : 'rake'  # sigh
         
     | 
| 
       143 
291 
     | 
    
         | 
| 
       144 
292 
     | 
    
         
             
            namespace 'masterview_plugin' do
         
     | 
| 
       145 
293 
     | 
    
         
             
              module MasterViewComplete
         
     | 
| 
         @@ -149,16 +297,8 @@ namespace 'masterview_plugin' do 
     | 
|
| 
       149 
297 
     | 
    
         
             
                PKG_FILE_NAME   = "#{PKG_NAME}-#{PKG_VERSION}"
         
     | 
| 
       150 
298 
     | 
    
         
             
                PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
         
     | 
| 
       151 
299 
     | 
    
         
             
                RELEASE_NAME  = "REL #{PKG_VERSION}"
         
     | 
| 
       152 
     | 
    
         
            -
                 
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
                  "generators/masterview/**/*", #exclude the masterview_plugin generator, not needed for non-gem install
         
     | 
| 
       155 
     | 
    
         
            -
                  "directives/**/*",
         
     | 
| 
       156 
     | 
    
         
            -
                  "test/**/*", 
         
     | 
| 
       157 
     | 
    
         
            -
                  "example/**/*",
         
     | 
| 
       158 
     | 
    
         
            -
                  "[A-Z]*", 
         
     | 
| 
       159 
     | 
    
         
            -
                  "Rakefile", 
         
     | 
| 
       160 
     | 
    
         
            -
                  "init.rb"
         
     | 
| 
       161 
     | 
    
         
            -
                ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
         
     | 
| 
      
 300 
     | 
    
         
            +
                PKG_INCLUDES = PKG_FILES_RUNTIME + PKG_FILES_MV_GENERATOR + PKG_FILES_DOCS + PKG_FILES_TESTS + PKG_FILES_RELEASE_DOCS
         
     | 
| 
      
 301 
     | 
    
         
            +
                PKG_FILES = FileList.new( PKG_INCLUDES ).exclude( PKG_FILES_EXCLUDE_PATTERN )
         
     | 
| 
       162 
302 
     | 
    
         | 
| 
       163 
303 
     | 
    
         
             
                spec = Gem::Specification.new do |s|
         
     | 
| 
       164 
304 
     | 
    
         
             
                  s.name = PKG_NAME
         
     | 
| 
         @@ -226,9 +366,8 @@ namespace 'masterview_gem_pack' do 
     | 
|
| 
       226 
366 
     | 
    
         
             
                PKG_FILE_NAME   = "#{PKG_NAME}-#{PKG_VERSION}"
         
     | 
| 
       227 
367 
     | 
    
         
             
                PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
         
     | 
| 
       228 
368 
     | 
    
         
             
                RELEASE_NAME  = "REL #{PKG_VERSION}"
         
     | 
| 
       229 
     | 
    
         
            -
                 
     | 
| 
       230 
     | 
    
         
            -
             
     | 
| 
       231 
     | 
    
         
            -
                ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
         
     | 
| 
      
 369 
     | 
    
         
            +
                PKG_INCLUDES = PKG_FILES_RELEASE_DOCS
         
     | 
| 
      
 370 
     | 
    
         
            +
                PKG_FILES = FileList.new( PKG_INCLUDES ).exclude( PKG_FILES_EXCLUDE_PATTERN )
         
     | 
| 
       232 
371 
     | 
    
         | 
| 
       233 
372 
     | 
    
         
             
                spec = Gem::Specification.new do |s|
         
     | 
| 
       234 
373 
     | 
    
         
             
                  s.name = PKG_NAME
         
     | 
| 
         @@ -299,15 +438,8 @@ namespace 'masterview' do 
     | 
|
| 
       299 
438 
     | 
    
         
             
                PKG_FILE_NAME   = "#{PKG_NAME}-#{PKG_VERSION}"
         
     | 
| 
       300 
439 
     | 
    
         
             
                PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
         
     | 
| 
       301 
440 
     | 
    
         
             
                RELEASE_NAME  = "REL #{PKG_VERSION}"
         
     | 
| 
       302 
     | 
    
         
            -
                 
     | 
| 
       303 
     | 
    
         
            -
             
     | 
| 
       304 
     | 
    
         
            -
                  "directives/**/*",
         
     | 
| 
       305 
     | 
    
         
            -
                  "test/**/*", 
         
     | 
| 
       306 
     | 
    
         
            -
                  "example/**/*",
         
     | 
| 
       307 
     | 
    
         
            -
                  "[A-Z]*", 
         
     | 
| 
       308 
     | 
    
         
            -
                  "Rakefile", 
         
     | 
| 
       309 
     | 
    
         
            -
                  "init.rb"
         
     | 
| 
       310 
     | 
    
         
            -
                ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
         
     | 
| 
      
 441 
     | 
    
         
            +
                PKG_INCLUDES = PKG_FILES_RUNTIME + PKG_FILES_DOCS + PKG_FILES_TESTS + PKG_FILES_RELEASE_DOCS
         
     | 
| 
      
 442 
     | 
    
         
            +
                PKG_FILES = FileList.new( PKG_INCLUDES ).exclude( PKG_FILES_EXCLUDE_PATTERN )
         
     | 
| 
       311 
443 
     | 
    
         | 
| 
       312 
444 
     | 
    
         
             
                spec = Gem::Specification.new do |s|
         
     | 
| 
       313 
445 
     | 
    
         
             
                  s.name = PKG_NAME
         
     | 
| 
         @@ -378,12 +510,14 @@ namespace 'masterview_generator' do 
     | 
|
| 
       378 
510 
     | 
    
         
             
                PKG_FILE_NAME   = "#{PKG_NAME}-#{PKG_VERSION}"
         
     | 
| 
       379 
511 
     | 
    
         
             
                PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
         
     | 
| 
       380 
512 
     | 
    
         
             
                RELEASE_NAME  = "REL #{PKG_VERSION}"
         
     | 
| 
       381 
     | 
    
         
            -
             
     | 
| 
      
 513 
     | 
    
         
            +
                #PKG_INCLUDES = PKG_FILES_MV_GENERATOR
         
     | 
| 
      
 514 
     | 
    
         
            +
                #PKG_FILES = FileList.new( PKG_INCLUDES ).exclude( PKG_FILES_EXCLUDE_PATTERN )
         
     | 
| 
      
 515 
     | 
    
         
            +
                
         
     | 
| 
       382 
516 
     | 
    
         
             
                desc "Package masterview_generator"
         
     | 
| 
       383 
517 
     | 
    
         
             
                task :package do
         
     | 
| 
       384 
518 
     | 
    
         
             
                  work_dir = Dir.getwd
         
     | 
| 
       385 
519 
     | 
    
         
             
                  Dir.chdir 'generators/masterview'
         
     | 
| 
       386 
     | 
    
         
            -
                  system( " 
     | 
| 
      
 520 
     | 
    
         
            +
                  system( "#{RAKE_PROCESSOR} package" )
         
     | 
| 
       387 
521 
     | 
    
         
             
                  Dir.chdir work_dir
         
     | 
| 
       388 
522 
     | 
    
         
             
                end
         
     | 
| 
       389 
523 
     | 
    
         | 
| 
         @@ -391,7 +525,7 @@ namespace 'masterview_generator' do 
     | 
|
| 
       391 
525 
     | 
    
         
             
                task :repackage do
         
     | 
| 
       392 
526 
     | 
    
         
             
                  work_dir = Dir.getwd
         
     | 
| 
       393 
527 
     | 
    
         
             
                  Dir.chdir 'generators/masterview'
         
     | 
| 
       394 
     | 
    
         
            -
                  system( " 
     | 
| 
      
 528 
     | 
    
         
            +
                  system( "#{RAKE_PROCESSOR} repackage" )
         
     | 
| 
       395 
529 
     | 
    
         
             
                  Dir.chdir work_dir
         
     | 
| 
       396 
530 
     | 
    
         
             
                end
         
     | 
| 
       397 
531 
     | 
    
         | 
| 
         @@ -442,16 +576,14 @@ namespace 'masterview_plugin_generator' do 
     | 
|
| 
       442 
576 
     | 
    
         
             
                PKG_FILE_NAME   = "#{PKG_NAME}-#{PKG_VERSION}"
         
     | 
| 
       443 
577 
     | 
    
         
             
                PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
         
     | 
| 
       444 
578 
     | 
    
         
             
                RELEASE_NAME  = "REL #{PKG_VERSION}"
         
     | 
| 
       445 
     | 
    
         
            -
                 
     | 
| 
       446 
     | 
    
         
            -
             
     | 
| 
       447 
     | 
    
         
            -
                  "[A-Z]*" 
         
     | 
| 
       448 
     | 
    
         
            -
                ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
         
     | 
| 
      
 579 
     | 
    
         
            +
                PKG_INCLUDES = PKG_FILES_MV_PLUGIN_GENERATOR + PKG_FILES_RELEASE_DOCS
         
     | 
| 
      
 580 
     | 
    
         
            +
                PKG_FILES = FileList.new( PKG_INCLUDES ).exclude( PKG_FILES_EXCLUDE_PATTERN )
         
     | 
| 
       449 
581 
     | 
    
         | 
| 
       450 
582 
     | 
    
         
             
                desc "Package masterview_generator"
         
     | 
| 
       451 
583 
     | 
    
         
             
                task :package do
         
     | 
| 
       452 
584 
     | 
    
         
             
                  work_dir = Dir.getwd
         
     | 
| 
       453 
585 
     | 
    
         
             
                  Dir.chdir 'generators/masterview_plugin'
         
     | 
| 
       454 
     | 
    
         
            -
                  system( " 
     | 
| 
      
 586 
     | 
    
         
            +
                  system( "#{RAKE_PROCESSOR} package" )
         
     | 
| 
       455 
587 
     | 
    
         
             
                  Dir.chdir work_dir
         
     | 
| 
       456 
588 
     | 
    
         
             
                end
         
     | 
| 
       457 
589 
     | 
    
         | 
| 
         @@ -459,7 +591,7 @@ namespace 'masterview_plugin_generator' do 
     | 
|
| 
       459 
591 
     | 
    
         
             
                task :repackage do
         
     | 
| 
       460 
592 
     | 
    
         
             
                  work_dir = Dir.getwd
         
     | 
| 
       461 
593 
     | 
    
         
             
                  Dir.chdir 'generators/masterview_plugin'
         
     | 
| 
       462 
     | 
    
         
            -
                  system( " 
     | 
| 
      
 594 
     | 
    
         
            +
                  system( "#{RAKE_PROCESSOR} repackage" )
         
     | 
| 
       463 
595 
     | 
    
         
             
                  Dir.chdir work_dir
         
     | 
| 
       464 
596 
     | 
    
         
             
                end
         
     | 
| 
       465 
597 
     | 
    
         | 
| 
         @@ -502,8 +634,6 @@ namespace 'masterview_plugin_generator' do 
     | 
|
| 
       502 
634 
     | 
    
         
             
            end
         
     | 
| 
       503 
635 
     | 
    
         | 
| 
       504 
636 
     | 
    
         | 
| 
       505 
     | 
    
         
            -
             
     | 
| 
       506 
     | 
    
         
            -
             
     | 
| 
       507 
637 
     | 
    
         
             
            desc "Publish news on RubyForge"
         
     | 
| 
       508 
638 
     | 
    
         
             
            task :publish_news => [ :verify_rubyforge, :tar, :gem, :demotar] do
         
     | 
| 
       509 
639 
     | 
    
         
             
              Rake::XForge::NewsPublisher.new(Ruby_PDF) do |news|
         
     | 
| 
         @@ -527,12 +657,11 @@ end 
     | 
|
| 
       527 
657 
     | 
    
         
             
            desc "Post a release announcement via GMail."
         
     | 
| 
       528 
658 
     | 
    
         
             
            #task :email_announcement => [ :verify_gmail, :tar, :gem, :demotar] do
         
     | 
| 
       529 
659 
     | 
    
         
             
            task :email_announcement => [ :verify_gmail ] do
         
     | 
| 
      
 660 
     | 
    
         
            +
              require 'gmailer'
         
     | 
| 
       530 
661 
     | 
    
         
             
              GMailer.connect(ENV["GMAIL_USER"], ENV["GMAIL_PASSWORD"]) do |gmail|
         
     | 
| 
       531 
662 
     | 
    
         
             
                gmail.send  :to       => "ruby-talk@ruby-lang.org",
         
     | 
| 
       532 
663 
     | 
    
         
             
                            :subject  => "[ANN] PDF::Writer #{PDF::Writer::VERSION}",
         
     | 
| 
       533 
664 
     | 
    
         
             
                            :body     => File.read("Release-Announcement")
         
     | 
| 
       534 
665 
     | 
    
         
             
              end
         
     | 
| 
       535 
     | 
    
         
            -
            end
         
     | 
| 
       536 
     | 
    
         
            -
             
     | 
| 
       537 
     | 
    
         
            -
             
     | 
| 
       538 
666 
     | 
    
         | 
| 
      
 667 
     | 
    
         
            +
            end
         
     | 
    
        data/TODO
    CHANGED
    
    | 
         @@ -1,13 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            - create install.rb for rails 1.1 plugin installs, it will create config/masterview and some sample configs
         
     | 
| 
       1 
2 
     | 
    
         
             
            - create namespace for mv and publish, update generated files
         
     | 
| 
       2 
     | 
    
         
            -
            -  
     | 
| 
      
 3 
     | 
    
         
            +
            - more videos
         
     | 
| 
      
 4 
     | 
    
         
            +
            - image_tag (improve support for referencing image assets in MasterView directives markup)
         
     | 
| 
      
 5 
     | 
    
         
            +
            - allow multiple namespace prefixes for directives (allow custom directives to declare their own namespace)
         
     | 
| 
       3 
6 
     | 
    
         
             
            - wiki for site
         
     | 
| 
       4 
7 
     | 
    
         
             
            - render from db
         
     | 
| 
       5 
     | 
    
         
            -
            - skip generation of ERB, provide way to get erb output
         
     | 
| 
       6 
8 
     | 
    
         
             
            - app for syntax
         
     | 
| 
       7 
9 
     | 
    
         
             
            - include additional stylesheets
         
     | 
| 
       8 
10 
     | 
    
         
             
            - ajax examples
         
     | 
| 
       9 
11 
     | 
    
         
             
            - ajax table component
         
     | 
| 
       10 
     | 
    
         
            -
            - investigate ways to improve splitting files and other team development issues
         
     | 
| 
       11 
12 
     | 
    
         
             
            - documentation
         
     | 
| 
       12 
13 
     | 
    
         
             
            - directive developer documentation and examples
         
     | 
| 
       13 
14 
     | 
    
         
             
            - more tests
         
     | 
| 
      
 15 
     | 
    
         
            +
            - internal code cleanup 
         
     | 
| 
      
 16 
     | 
    
         
            +
                - DirectiveHelpers ERB_xx constants to differentiate ' %>' and ' -%>'
         
     | 
| 
      
 17 
     | 
    
         
            +
                - replace MasterView::NamespacePrefix+'<gen/import directivename>' concats in parser/analyzer with directive attr name constants
         
     | 
| 
      
 18 
     | 
    
         
            +
                - run spell checker on doc/*.html, ripple typo fixes back in rdoc comment
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.8.11 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: masterview_gem_pack
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2006- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.2.0
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2006-06-21 00:00:00 -05:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: A (x)html friendly template engine for rails with the power of layouts, and partials. This gem package includes the other masterview gems for easy installation
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            - .
         
     | 
| 
         @@ -29,11 +29,11 @@ authors: 
     | 
|
| 
       29 
29 
     | 
    
         
             
            - Jeff Barczewski
         
     | 
| 
       30 
30 
     | 
    
         
             
            files: 
         
     | 
| 
       31 
31 
     | 
    
         
             
            - CHANGELOG
         
     | 
| 
       32 
     | 
    
         
            -
            - MIT-LICENSE
         
     | 
| 
       33 
32 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       34 
33 
     | 
    
         
             
            - TODO
         
     | 
| 
       35 
34 
     | 
    
         
             
            - RELEASE_NOTES
         
     | 
| 
       36 
35 
     | 
    
         
             
            - README
         
     | 
| 
      
 36 
     | 
    
         
            +
            - MIT-LICENSE
         
     | 
| 
       37 
37 
     | 
    
         
             
            test_files: []
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
         @@ -54,7 +54,7 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                requirements: 
         
     | 
| 
       55 
55 
     | 
    
         
             
                - - ">="
         
     | 
| 
       56 
56 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       57 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 57 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
       58 
58 
     | 
    
         
             
                version: 
         
     | 
| 
       59 
59 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       60 
60 
     | 
    
         
             
              name: masterview_generator
         
     | 
| 
         @@ -63,7 +63,7 @@ dependencies: 
     | 
|
| 
       63 
63 
     | 
    
         
             
                requirements: 
         
     | 
| 
       64 
64 
     | 
    
         
             
                - - ">="
         
     | 
| 
       65 
65 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       66 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 66 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
       67 
67 
     | 
    
         
             
                version: 
         
     | 
| 
       68 
68 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       69 
69 
     | 
    
         
             
              name: masterview_plugin_generator
         
     | 
| 
         @@ -72,5 +72,5 @@ dependencies: 
     | 
|
| 
       72 
72 
     | 
    
         
             
                requirements: 
         
     | 
| 
       73 
73 
     | 
    
         
             
                - - ">="
         
     | 
| 
       74 
74 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       75 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 75 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
       76 
76 
     | 
    
         
             
                version: 
         
     |