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.
- data/CHANGELOG +9 -0
- data/RELEASE_NOTES +8 -1
- data/Rakefile +0 -1
- data/TODO +9 -0
- data/doc/configuration.html +18 -0
- data/doc/directives.html +8 -0
- data/examples/rails_app_admin_auth/admin_auth_mixin.rb +47 -0
- data/examples/rails_app_config/masterview/settings.rb +11 -6
- data/lib/masterview/attr_string_parser.rb +6 -4
- data/lib/masterview/directive_registry.rb +3 -2
- data/lib/masterview/directives/.metadata +2 -2
- data/lib/masterview/directives/attr.rb +12 -7
- data/lib/masterview/extras/admin_auth_mixin.rb +49 -0
- data/lib/masterview/extras/app/controllers/masterview_controller.rb +21 -13
- data/lib/masterview/extras/app/views/layouts/masterview_admin.rhtml +4 -2
- data/lib/masterview/extras/app/views/layouts/masterview_admin_config.rhtml +4 -2
- data/lib/masterview/extras/app/views/masterview/admin/create.rhtml +2 -2
- data/lib/masterview/extras/app/views/masterview/admin/interact.rhtml +2 -2
- data/lib/masterview/extras/app/views/masterview/admin/view_rhtml.rhtml +2 -2
- data/lib/masterview/extras/init_mv_admin_pages.rb +52 -0
- data/lib/masterview/initializer.rb +224 -128
- data/lib/masterview/masterview_version.rb +1 -1
- data/lib/masterview/rails_ext/action_view_erb_direct.rb +102 -45
- data/test/fixtures/deprecated_directive_base_directives/submit.rb +17 -0
- data/test/unit/attr_string_parser_test.rb +14 -7
- data/test/unit/directive_insert_generated_comment_test.rb +1 -1
- data/test/unit/directive_link_to_test.rb +12 -0
- data/test/unit/template_test.rb +111 -0
- metadata +11 -6
@@ -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
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
if
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
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
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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
|
-
|
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
|
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
|
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
|
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
|
data/test/unit/template_test.rb
CHANGED
@@ -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.
|
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.
|
7
|
-
date:
|
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
|