masterview 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. data/CHANGELOG +9 -0
  2. data/RELEASE_NOTES +8 -1
  3. data/Rakefile +0 -1
  4. data/TODO +9 -0
  5. data/doc/configuration.html +18 -0
  6. data/doc/directives.html +8 -0
  7. data/examples/rails_app_admin_auth/admin_auth_mixin.rb +47 -0
  8. data/examples/rails_app_config/masterview/settings.rb +11 -6
  9. data/lib/masterview/attr_string_parser.rb +6 -4
  10. data/lib/masterview/directive_registry.rb +3 -2
  11. data/lib/masterview/directives/.metadata +2 -2
  12. data/lib/masterview/directives/attr.rb +12 -7
  13. data/lib/masterview/extras/admin_auth_mixin.rb +49 -0
  14. data/lib/masterview/extras/app/controllers/masterview_controller.rb +21 -13
  15. data/lib/masterview/extras/app/views/layouts/masterview_admin.rhtml +4 -2
  16. data/lib/masterview/extras/app/views/layouts/masterview_admin_config.rhtml +4 -2
  17. data/lib/masterview/extras/app/views/masterview/admin/create.rhtml +2 -2
  18. data/lib/masterview/extras/app/views/masterview/admin/interact.rhtml +2 -2
  19. data/lib/masterview/extras/app/views/masterview/admin/view_rhtml.rhtml +2 -2
  20. data/lib/masterview/extras/init_mv_admin_pages.rb +52 -0
  21. data/lib/masterview/initializer.rb +224 -128
  22. data/lib/masterview/masterview_version.rb +1 -1
  23. data/lib/masterview/rails_ext/action_view_erb_direct.rb +102 -45
  24. data/test/fixtures/deprecated_directive_base_directives/submit.rb +17 -0
  25. data/test/unit/attr_string_parser_test.rb +14 -7
  26. data/test/unit/directive_insert_generated_comment_test.rb +1 -1
  27. data/test/unit/directive_link_to_test.rb +12 -0
  28. data/test/unit/template_test.rb +111 -0
  29. metadata +11 -6
@@ -2,7 +2,7 @@ module MasterView
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,16 +1,16 @@
1
1
  #
2
- # Installs hooks in ActionView::Base to intercept template_exist? calls
2
+ # Installs hooks in ActionView::Base to intercept template_exist? calls
3
3
  # and read_template_file so that Rails can find MasterView templates.
4
4
  #
5
- # MasterView cannot use the provided hooks because Rails always assumes
6
- # everything is file based and that there will be a file for each thing to render.
5
+ # MasterView cannot use the provided hooks because Rails always assumes
6
+ # everything is file based and that there will be a file for each thing to render.
7
7
  # MasterView template compilation of .html directly into the .rhtml erb cache
8
8
  # introduces a separation betweeen the file name and the cache entry
9
9
  # that does not fit this viewpoint.
10
10
  #
11
- # If the template dispatching code is enriched in the future we may be able
11
+ # If the template dispatching code is enriched in the future we may be able
12
12
  # to rewrite this code to use the provided hooks.
13
- #
13
+ #
14
14
 
15
15
  module ActionView #:nodoc:
16
16
 
@@ -24,7 +24,7 @@ module ActionView #:nodoc:
24
24
  template_exists_pre_mv?(template_path, extension) || MasterView::IOMgr.erb.path(short_path).exist?
25
25
  end
26
26
 
27
- # checks for the existence of the template in MasterView first before using the
27
+ # checks for the existence of the template in MasterView first before using the
28
28
  # rails file system based read_template_file
29
29
  alias :read_template_file_pre_mv :read_template_file #:nodoc:
30
30
  def read_template_file(template_path, extension) #:nodoc:
@@ -36,32 +36,58 @@ module ActionView #:nodoc:
36
36
  end
37
37
  end
38
38
 
39
- # Check whether compilation is necessary.
40
- # Since rails compile_template? is file based there was no easy way to hook into
41
- # this, so much of this method had to be duplicated.
42
- # If file_name exists in MasterView then check mtime from it otherwise defer to
43
- # original code.
44
- alias :compile_template_pre_mv? :compile_template? #:nodoc:
45
- def compile_template?(template, file_name, local_assigns) #:nodoc:
46
- short_path_mio = (file_name && !file_name.empty?) ? MasterView::IOMgr.erb.path(short_relative_path_mv(file_name)) : nil
47
- if short_path_mio && short_path_mio.exist? # mio template
48
- method_key = file_name || template
49
- render_symbol = @@method_names[method_key]
50
-
51
- if @@compile_time[render_symbol] && supports_local_assigns?(render_symbol, local_assigns)
52
- if file_name && !@@cache_template_loading
53
- need_to_compile = (@@compile_time[render_symbol] < short_path_mio.mtime) # use mio.mtime instead of File.mtime
54
- MasterView::Log.debug{ 'compile_template? template_short_path = '+short_path_mio.pathname.to_s+' compile?='+need_to_compile.to_s }
55
- need_to_compile
39
+ # I submitted a patch to rails to make this easier it was picked up in changeset 5587
40
+ # http://dev.rubyonrails.org/ticket/6651
41
+ # we can test for existence of this private instance method to determine if in this version of Rails
42
+ if ActionView::Base.private_instance_methods.include?('template_changed_since?')
43
+
44
+ private
45
+
46
+ # handles checking if template changed since last compile, isolated so that templates
47
+ # not stored on the file system can hook and extend appropriately
48
+ alias :template_changed_since_pre_mv? :template_changed_since?
49
+ def template_changed_since?(file_name, compile_time)
50
+ short_path_mio = (file_name && !file_name.empty?) ? MasterView::IOMgr.erb.path(short_relative_path_mv(file_name)) : nil
51
+ if short_path_mio && short_path_mio.exist? # mio template so use mv to check if changed
52
+ compile_time < short_path_mio.mtime
53
+ else # delegate to rails original file based version
54
+ template_changed_since_pre_mv?(file_name, compile_time)
55
+ end
56
+ end
57
+
58
+ public
59
+
60
+ else # older rails needs to use old method
61
+
62
+ # Check whether compilation is necessary.
63
+ # Since rails compile_template? is file based there was no easy way to hook into
64
+ # this, so much of this method had to be duplicated.
65
+ # If file_name exists in MasterView then check mtime from it otherwise defer to
66
+ # original code.
67
+ alias :compile_template_pre_mv? :compile_template? #:nodoc:
68
+ def compile_template?(template, file_name, local_assigns) #:nodoc:
69
+ short_path_mio = (file_name && !file_name.empty?) ? MasterView::IOMgr.erb.path(short_relative_path_mv(file_name)) : nil
70
+ if short_path_mio && short_path_mio.exist? # mio template
71
+ method_key = file_name || template
72
+ render_symbol = @@method_names[method_key]
73
+
74
+ if @@compile_time[render_symbol] && supports_local_assigns?(render_symbol, local_assigns)
75
+ if file_name && !@@cache_template_loading
76
+ need_to_compile = (@@compile_time[render_symbol] < short_path_mio.mtime) # use mio.mtime instead of File.mtime
77
+ MasterView::Log.debug{ 'compile_template? template_short_path = '+short_path_mio.pathname.to_s+' compile?='+need_to_compile.to_s }
78
+ need_to_compile
79
+ end
80
+ else
81
+ true
56
82
  end
57
- else
58
- true
83
+ else # use original file based mtime checking
84
+ compile_template_pre_mv?(template, file_name, local_assigns)
59
85
  end
60
- else # use original file based mtime checking
61
- compile_template_pre_mv?(template, file_name, local_assigns)
62
86
  end
87
+
63
88
  end
64
89
 
90
+
65
91
  private
66
92
 
67
93
  # returns the short path relative to view_base since MasterView uses relative paths exclusively
@@ -74,26 +100,57 @@ module ActionView #:nodoc:
74
100
  # The TemplateError exception is raised when the compilation of the template fails. This exception then gathers a
75
101
  # bunch of intimate details and uses it to report a very precise exception message.
76
102
  # Extend source_extract to be able to pull from MasterView if exists and fallback to file system
77
- class TemplateError < ActionViewError #:nodoc:
78
-
79
- def source_extract(indention = 0) #:nodoc:
80
-
81
- #added/modified the following three lines to support reading from MasterView with fallback to file system
82
- relative_path = (@file_name.starts_with?(@base_path)) ? @file_name[@base_path.length+1..-1] : @file_name
83
- short_path_mio = (relative_path && !relative_path.empty?) ? MasterView::IOMgr.erb.path(relative_path) : nil
84
- source_code = (short_path_mio && short_path_mio.exist?) ? StringIO.new(short_path_mio.read).readlines : IO.readlines(@file_name)
85
-
86
- start_on_line = [ line_number - SOURCE_CODE_RADIUS - 1, 0 ].max
87
- end_on_line = [ line_number + SOURCE_CODE_RADIUS - 1, source_code.length].min
88
-
89
- line_counter = start_on_line
90
- extract = source_code[start_on_line..end_on_line].collect do |line|
91
- line_counter += 1
92
- "#{' ' * indention}#{line_counter}: " + line
103
+ # todo submit mod to Rails so we can hook easier, currently Rails assumes file based template
104
+ if ActionView::TemplateError.private_instance_methods.include?('source_location') # Rails 1.2
105
+
106
+ class TemplateError < ActionViewError #:nodoc:
107
+ def source_extract(indentation = 0)
108
+ return unless num = line_number
109
+ num = num.to_i
110
+
111
+ #added/modified the following three lines to support reading from MasterView with fallback to file system
112
+ relative_path = (@file_path.starts_with?(@base_path)) ? @file_path[@base_path.length+1..-1] : @file_path
113
+ short_path_mio = (relative_path && !relative_path.empty?) ? MasterView::IOMgr.erb.path(relative_path) : nil
114
+ source_code = (short_path_mio && short_path_mio.exist?) ? StringIO.new(short_path_mio.read).readlines : IO.readlines(@file_path)
115
+ # source_code = IO.readlines(@file_path) # original rails 1.2 source
116
+
117
+ start_on_line = [ num - SOURCE_CODE_RADIUS - 1, 0 ].max
118
+ end_on_line = [ num + SOURCE_CODE_RADIUS - 1, source_code.length].min
119
+
120
+ indent = ' ' * indentation
121
+ line_counter = start_on_line
122
+
123
+ source_code[start_on_line..end_on_line].sum do |line|
124
+ line_counter += 1
125
+ "#{indent}#{line_counter}: #{line}"
126
+ end
93
127
  end
128
+ end
129
+
130
+ else # Rails 1.1.6 - we can deprecate this when Rails 1.2 is out
131
+
132
+
133
+ class TemplateError < ActionViewError #:nodoc:
134
+ def source_extract(indention = 0) #:nodoc:
94
135
 
95
- extract.join
136
+ #added/modified the following three lines to support reading from MasterView with fallback to file system
137
+ relative_path = (@file_name.starts_with?(@base_path)) ? @file_name[@base_path.length+1..-1] : @file_name
138
+ short_path_mio = (relative_path && !relative_path.empty?) ? MasterView::IOMgr.erb.path(relative_path) : nil
139
+ source_code = (short_path_mio && short_path_mio.exist?) ? StringIO.new(short_path_mio.read).readlines : IO.readlines(@file_name)
140
+
141
+ start_on_line = [ line_number - SOURCE_CODE_RADIUS - 1, 0 ].max
142
+ end_on_line = [ line_number + SOURCE_CODE_RADIUS - 1, source_code.length].min
143
+
144
+ line_counter = start_on_line
145
+ extract = source_code[start_on_line..end_on_line].collect do |line|
146
+ line_counter += 1
147
+ "#{' ' * indention}#{line_counter}: " + line
148
+ end
149
+
150
+ extract.join
151
+ end
96
152
  end
153
+
97
154
  end
98
155
 
99
- end
156
+ end
@@ -0,0 +1,17 @@
1
+ require 'masterview/deprecated/directive_base' # Backwards compat for old directive impls
2
+ module MasterView
3
+ module DirectivesOld
4
+
5
+ # Old implementation of submit form helper directive
6
+ # Test backwards compat in new MasterView 0.3.0 system (registry, paths, directive rework)
7
+ class Submit < MasterView::DirectiveBaseOld
8
+ def stag(directive_call_stack); end
9
+
10
+ def etag(directive_call_stack)
11
+ remove_strings_from_attr_value!
12
+ prepend_to_attr_value! quote( attrs_lck['value'] ) #prepend quoted submit button name
13
+ erb_content('submit_tag ' + attr_value)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -9,8 +9,8 @@ class TestAttrStringParser < Test::Unit::TestCase
9
9
  # test subject
10
10
  AttrStringParser = MasterView::AttrStringParser
11
11
 
12
- def verify_arg_parsing( attr_value, expected_args )
13
- parsed_args = AttrStringParser.new(attr_value).parse
12
+ def verify_arg_parsing( attr_value, expected_args, split_implicit_hash = false )
13
+ parsed_args = AttrStringParser.new(attr_value).parse(split_implicit_hash)
14
14
  #assert_equal expected_args.size, parsed_args.size, "Wrong num args in parsed_args=#{parsed_args.inspect}"
15
15
  assert_equal expected_args, parsed_args, "GOT: parsed_args=#{parsed_args.inspect}"
16
16
  end
@@ -29,25 +29,25 @@ class TestAttrStringParser < Test::Unit::TestCase
29
29
 
30
30
  def test_multi_word_value
31
31
  attr_value = 'one, and a two, and a three lets go'
32
- expected_args = attr_value.split(',').collect {|x| x.strip}
32
+ expected_args = attr_value.split(',').collect {|x| x.strip}
33
33
  verify_arg_parsing( attr_value, expected_args )
34
34
  end
35
35
 
36
36
  def test_omitted_arg
37
37
  attr_value = 'one, two, skip the one after this,, five'
38
- expected_args = attr_value.split(',').collect {|x| x.strip}
38
+ expected_args = attr_value.split(',').collect {|x| x.strip}
39
39
  assert_equal '', expected_args[3], 'Omitted arg is parsed as empty string (not nil)'
40
40
  verify_arg_parsing( attr_value, expected_args )
41
41
  end
42
42
 
43
- # assoc of an unwrapped hash gets parsed as one entry (deliberate or accidental?!)
43
+ # assoc of an unwrapped hash gets parsed as one entry
44
44
  def test_single_assoc
45
45
  attr_value = ':foo => :bar'
46
46
  expected_args = [ attr_value ]
47
47
  verify_arg_parsing( attr_value, expected_args )
48
48
  end
49
49
 
50
- # multiple assocs of an unwrapped hash get parsed as one entry (deliberate or accidental?!)
50
+ # multiple assocs of an unwrapped hash get parsed as one entry
51
51
  def test_multiple_assocs
52
52
  attr_value = ':foo => :bar, :option => "bing", :default => 5'
53
53
  #expected_args = [ ':foo => :bar', ':option => "bing"', ':default => 5' ]
@@ -55,6 +55,13 @@ class TestAttrStringParser < Test::Unit::TestCase
55
55
  verify_arg_parsing( attr_value, expected_args )
56
56
  end
57
57
 
58
+ # multiple assocs of an unwrapped hash get parsed as multiple args if split_implicit_hash = true
59
+ def test_multiple_assocs_split_implicit_hash_true
60
+ attr_value = ':foo => :bar, :option => "bing", :default => 5'
61
+ expected_args = [ ':foo => :bar', ':option => "bing"', ':default => 5' ]
62
+ verify_arg_parsing( attr_value, expected_args, true ) # split_implicit_hash = true
63
+ end
64
+
58
65
  # wrapped hash gets parsed as a single hash literal string
59
66
  def test_single_entry_hash
60
67
  attr_value = '{ :foo => :bar }'
@@ -102,4 +109,4 @@ class TestAttrStringParser < Test::Unit::TestCase
102
109
  verify_arg_parsing( attr_value, expected_args )
103
110
  end
104
111
 
105
- end
112
+ end
@@ -26,7 +26,7 @@ class TestInsertGeneratedComment < Test::Unit::TestCase
26
26
  def test_insert_generated_comment
27
27
  attr_value = ''
28
28
  create_directive InsertGeneratedComment, attr_value
29
- assert_equal "\n<%\n# WARNING - This is a generated file created by MasterView. \n# Do not edit - changes will be lost when this file is re-generated.\n# \n# To make changes, edit the MasterView source file located at: \n# \n-%>", render_element_event(:stag)
29
+ assert_equal "\n<%\n# WARNING - This is a generated file created by MasterView.\n# Do not edit - changes will be lost when this file is re-generated.\n#\n# To make changes, edit the MasterView source file located at:\n# \n-%>", render_element_event(:stag)
30
30
  end
31
31
 
32
32
  end
@@ -64,4 +64,16 @@ class TestLinkTo < Test::Unit::TestCase
64
64
  assert_equal expected_content, render_element_event(:etag)
65
65
  end
66
66
 
67
+ def test_post_link_with_confirm
68
+ link_tag = create_template_element ELEMENT_TAG, :content => 'Destroy'
69
+ attr_value = "{ :action => 'destroy', :id => component }, :confirm => 'Are you sure?', :post => true"
70
+ create_directive LinkTo, attr_value
71
+ assert_equal '', render_element_event(:stag)
72
+ expected_content = "<%= link_to( 'Destroy', { :action => 'destroy', :id => component }, :confirm => 'Are you sure?', :post => true ) %>"
73
+ assert_equal expected_content, render_element_event(:etag)
74
+ end
75
+
76
+
77
+
78
+
67
79
  end
@@ -100,6 +100,105 @@ class TestTemplate < Test::Unit::TestCase
100
100
  assert_template_result expected, template
101
101
  end
102
102
 
103
+ def test_attr_eval
104
+ template = <<-END
105
+ <div mv:generate='foo/bar'>
106
+ <span class="red" mv:attr=":class => #\{helloworld\}">foo bar</span>
107
+ </div>
108
+ END
109
+ expected = {
110
+ 'foo/bar' => "<div><span class=\"<%= helloworld %>\">foo bar</span></div>"
111
+ }
112
+ assert_template_result expected, template
113
+ end
114
+
115
+
116
+ def test_attr_eval_helper_with_multi_params
117
+ template = <<-END
118
+ <div mv:generate='foo/bar'>
119
+ <span class="red" mv:attr=":id => #\{myhelper(arg, 1)\}">foo bar</span>
120
+ </div>
121
+ END
122
+ expected = {
123
+ 'foo/bar' => "<div><span class=\"red\" id=\"<%= myhelper(arg, 1) %>\">foo bar</span></div>"
124
+ }
125
+ assert_template_result expected, template
126
+ end
127
+
128
+
129
+ def test_attr_multi_key_eval_multi_params
130
+ template = <<-END
131
+ <div mv:generate='foo/bar'>
132
+ <span class="red" mv:attr=":class => #\{helloworld 1, 2, 3\}, :id => #\{onemore 'five', 'six'\}">foo bar</span>
133
+ </div>
134
+ END
135
+ expected = {
136
+ 'foo/bar' => "<div><span class=\"<%= helloworld 1, 2, 3 %>\" id=\"<%= onemore 'five', 'six' %>\">foo bar</span></div>"
137
+ }
138
+ assert_template_result expected, template
139
+ end
140
+
141
+
142
+ def test_attr_multi_key_eval_multi_params_parens
143
+ template = <<-END
144
+ <div mv:generate='foo/bar'>
145
+ <span class="red" mv:attr=":class => #\{helloworld(1, 2, 3)\}, :id => #\{onemore('five', 'six')\}">foo bar</span>
146
+ </div>
147
+ END
148
+ expected = {
149
+ 'foo/bar' => "<div><span class=\"<%= helloworld(1, 2, 3) %>\" id=\"<%= onemore('five', 'six') %>\">foo bar</span></div>"
150
+ }
151
+ assert_template_result expected, template
152
+ end
153
+
154
+ def test_attr_eval_multi_params
155
+ template = <<-END
156
+ <div mv:generate='foo/bar'>
157
+ <span class="red" mv:attr=":class => #\{helloworld 1, 2, 3\}">foo bar</span>
158
+ </div>
159
+ END
160
+ expected = {
161
+ 'foo/bar' => "<div><span class=\"<%= helloworld 1, 2, 3 %>\">foo bar</span></div>"
162
+ }
163
+ assert_template_result expected, template
164
+ end
165
+
166
+ def test_attr_eval_multi_params_explicit_hash
167
+ template = <<-END
168
+ <div mv:generate='foo/bar'>
169
+ <span class="red" mv:attr="{:class => #\{helloworld 1, 2, 3\}}">foo bar</span>
170
+ </div>
171
+ END
172
+ expected = {
173
+ 'foo/bar' => "<div><span class=\"<%= helloworld 1, 2, 3 %>\">foo bar</span></div>"
174
+ }
175
+ assert_template_result expected, template
176
+ end
177
+
178
+ def test_attr_eval_multi_params_explicit_hash_ws_surrounding
179
+ template = <<-END
180
+ <div mv:generate='foo/bar'>
181
+ <span class="red" mv:attr=" {:class => #\{helloworld 1, 2, 3\} }">foo bar</span>
182
+ </div>
183
+ END
184
+ expected = {
185
+ 'foo/bar' => "<div><span class=\"<%= helloworld 1, 2, 3 %>\">foo bar</span></div>"
186
+ }
187
+ assert_template_result expected, template
188
+ end
189
+
190
+ def test_attr_eval_multi_params_parens
191
+ template = <<-END
192
+ <div mv:generate='foo/bar'>
193
+ <span class="red" mv:attr=":class => #\{helloworld(1, 2, 3)\}">foo bar</span>
194
+ </div>
195
+ END
196
+ expected = {
197
+ 'foo/bar' => "<div><span class=\"<%= helloworld(1, 2, 3) %>\">foo bar</span></div>"
198
+ }
199
+ assert_template_result expected, template
200
+ end
201
+
103
202
  def test_attr_erb
104
203
  template = <<-END
105
204
  <div mv:generate='foo/bar'>
@@ -234,6 +333,18 @@ class TestTemplate < Test::Unit::TestCase
234
333
  assert_template_result expected, template
235
334
  end
236
335
 
336
+ def test_link_to_with_post_and_confirm
337
+ template = <<-END
338
+ <div mv:generate='foo/bar'>
339
+ <a href="#" mv:link_to="{ :action => 'destroy', :id => component }, :confirm => 'Are you sure?', :post => true">Destroy</a>
340
+ </div>
341
+ END
342
+ expected = {
343
+ 'foo/bar' => "<div><%= link_to( 'Destroy', { :action => 'destroy', :id => component }, :confirm => 'Are you sure?', :post => true ) %></div>"
344
+ }
345
+ assert_template_result expected, template
346
+ end
347
+
237
348
  def test_link_to_and_if
238
349
  template = <<-END
239
350
  <div mv:generate='foo/bar'>
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: masterview
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.1
7
- date: 2006-11-20 00:00:00 -06:00
6
+ version: 0.3.2
7
+ date: 2007-02-21 00:00:00 -06:00
8
8
  summary: A (x)html friendly template engine for rails with the power of layouts, and partials.
9
9
  require_paths:
10
10
  - lib
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Jeff Barczewski
30
31
  files:
@@ -104,6 +105,7 @@ files:
104
105
  - lib/masterview/extras/app
105
106
  - lib/masterview/extras/init_logger.rb
106
107
  - lib/masterview/extras/watcher.rb
108
+ - lib/masterview/extras/admin_auth_mixin.rb
107
109
  - lib/masterview/extras/sample_templates.rb
108
110
  - lib/masterview/extras/init_mv_admin_pages.rb
109
111
  - lib/masterview/extras/app/controllers
@@ -137,7 +139,6 @@ files:
137
139
  - doc/stylesheets
138
140
  - doc/directives.html
139
141
  - doc/guide.html
140
- - doc/api
141
142
  - doc/screenshots
142
143
  - doc/installation.html
143
144
  - doc/configuration.html
@@ -166,6 +167,7 @@ files:
166
167
  - doc/stylesheets/mv-config.css
167
168
  - doc/stylesheets/masterview.css
168
169
  - examples/rails_app_config
170
+ - examples/rails_app_admin_auth
169
171
  - examples/product.html.old
170
172
  - examples/product.html
171
173
  - examples/test.import
@@ -174,6 +176,7 @@ files:
174
176
  - examples/rails_app_config/masterview/settings.rb
175
177
  - examples/rails_app_config/masterview/environment/development.rb
176
178
  - examples/rails_app_config/masterview/environment/production.rb
179
+ - examples/rails_app_admin_auth/admin_auth_mixin.rb
177
180
  - test/unit
178
181
  - test/xtras
179
182
  - test/fixtures
@@ -242,6 +245,7 @@ files:
242
245
  - test/fixtures/configs
243
246
  - test/fixtures/templates
244
247
  - test/fixtures/directives
248
+ - test/fixtures/deprecated_directive_base_directives
245
249
  - test/fixtures/configs/fake_rails_app
246
250
  - test/fixtures/configs/fake_rails_app_with_config
247
251
  - test/fixtures/configs/fake_rails_app_with_config/config
@@ -254,12 +258,12 @@ files:
254
258
  - test/fixtures/templates/test.import
255
259
  - test/fixtures/directives/test_directive_events.rb
256
260
  - test/fixtures/directives/id_check.rb
261
+ - test/fixtures/deprecated_directive_base_directives/submit.rb
257
262
  - test/tmp/template
258
263
  - test/tmp/erb
259
- - test/tmp/templates_src
260
264
  - test/tmp/views
265
+ - test/tmp/templates_src
261
266
  - test/tmp/template/foo.txt
262
- - test/tmp/templates_src/product.html
263
267
  - test/tmp/views/product
264
268
  - test/tmp/views/layouts
265
269
  - test/tmp/views/product/_form.rhtml
@@ -271,6 +275,7 @@ files:
271
275
  - test/tmp/views/product/show.rhtml
272
276
  - test/tmp/views/product/destroy.rhtml
273
277
  - test/tmp/views/layouts/product.rhtml
278
+ - test/tmp/templates_src/product.html
274
279
  - CHANGELOG
275
280
  - TODO
276
281
  - RELEASE_NOTES