masterview 0.0.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 (78) hide show
  1. data/CHANGELOG +1 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README +574 -0
  4. data/Rakefile +149 -0
  5. data/generators/masterview/USAGE +32 -0
  6. data/generators/masterview/masterview_generator.rb +277 -0
  7. data/generators/masterview/templates/controller.rb +50 -0
  8. data/generators/masterview/templates/fields_scaffold.rhtml +1 -0
  9. data/generators/masterview/templates/form_scaffold.rhtml +3 -0
  10. data/generators/masterview/templates/functional_test.rb +83 -0
  11. data/generators/masterview/templates/helper.rb +2 -0
  12. data/generators/masterview/templates/layout.rhtml +11 -0
  13. data/generators/masterview/templates/list_head_scaffold.rhtml +4 -0
  14. data/generators/masterview/templates/list_line_scaffold.rhtml +6 -0
  15. data/generators/masterview/templates/masterview.rhtml +182 -0
  16. data/generators/masterview/templates/mvpreview.js +31 -0
  17. data/generators/masterview/templates/semantic.cache +84 -0
  18. data/generators/masterview/templates/show_scaffold.rhtml +3 -0
  19. data/generators/masterview/templates/style.css +61 -0
  20. data/generators/masterview_gem_plugin/masterview_gem_plugin_generator.rb +21 -0
  21. data/generators/masterview_gem_plugin/templates/init.rb +43 -0
  22. data/init.rb +43 -0
  23. data/lib/masterview/directive_base.rb +163 -0
  24. data/lib/masterview/directive_helpers.rb +176 -0
  25. data/lib/masterview/directives/block.rb +30 -0
  26. data/lib/masterview/directives/content.rb +10 -0
  27. data/lib/masterview/directives/else.rb +25 -0
  28. data/lib/masterview/directives/elsif.rb +26 -0
  29. data/lib/masterview/directives/form.rb +19 -0
  30. data/lib/masterview/directives/global_inline_erb.rb +39 -0
  31. data/lib/masterview/directives/hidden_field.rb +31 -0
  32. data/lib/masterview/directives/if.rb +24 -0
  33. data/lib/masterview/directives/insert_generated_comment.rb +30 -0
  34. data/lib/masterview/directives/javascript_include.rb +15 -0
  35. data/lib/masterview/directives/link_to.rb +17 -0
  36. data/lib/masterview/directives/link_to_if.rb +21 -0
  37. data/lib/masterview/directives/link_to_remote.rb +17 -0
  38. data/lib/masterview/directives/password_field.rb +33 -0
  39. data/lib/masterview/directives/preview.rb +10 -0
  40. data/lib/masterview/directives/replace.rb +18 -0
  41. data/lib/masterview/directives/stylesheet_link.rb +14 -0
  42. data/lib/masterview/directives/submit.rb +14 -0
  43. data/lib/masterview/directives/testfilter.rb +55 -0
  44. data/lib/masterview/directives/text_area.rb +34 -0
  45. data/lib/masterview/directives/text_field.rb +33 -0
  46. data/lib/masterview/extras/rails_init.rb +67 -0
  47. data/lib/masterview/extras/watcher.rb +30 -0
  48. data/lib/masterview/masterview_version.rb +9 -0
  49. data/lib/masterview/parser.rb +585 -0
  50. data/lib/masterview/plugin_load_tracking.rb +41 -0
  51. data/lib/masterview/runtime_helpers.rb +9 -0
  52. data/lib/masterview/string_extensions.rb +15 -0
  53. data/lib/masterview.rb +130 -0
  54. data/test/block_test.rb +47 -0
  55. data/test/content_test.rb +26 -0
  56. data/test/else_test.rb +31 -0
  57. data/test/elsif_test.rb +31 -0
  58. data/test/example_test.rb +11 -0
  59. data/test/filter_helpers_test.rb +142 -0
  60. data/test/form_test.rb +66 -0
  61. data/test/global_inline_erb_test.rb +30 -0
  62. data/test/hidden_field_test.rb +62 -0
  63. data/test/if_test.rb +23 -0
  64. data/test/javascript_include_test.rb +26 -0
  65. data/test/link_to_if_test.rb +27 -0
  66. data/test/link_to_test.rb +52 -0
  67. data/test/parser_test.rb +166 -0
  68. data/test/password_field_test.rb +89 -0
  69. data/test/replace_test.rb +27 -0
  70. data/test/run_parser_test.rb +27 -0
  71. data/test/stylesheet_link_test.rb +26 -0
  72. data/test/submit_test.rb +54 -0
  73. data/test/template_file_watcher_test.rb +50 -0
  74. data/test/template_test.rb +181 -0
  75. data/test/test_helper.rb +24 -0
  76. data/test/text_area_test.rb +81 -0
  77. data/test/text_field_test.rb +89 -0
  78. metadata +136 -0
@@ -0,0 +1,24 @@
1
+ require 'test/unit'
2
+ require 'test/unit/assertions'
3
+ currentPath = File.dirname(__FILE__)
4
+ require File.join( currentPath, '../lib/masterview' )
5
+
6
+ MasterView::OmitGeneratedComments = true #turn off the generated comments to make it easier for us to test
7
+
8
+ module Test
9
+ module Unit
10
+ module Assertions
11
+ def assert_template_result(expected, template, options={}, message=nil)
12
+ output_hash = {}
13
+ full_options = options.merge( { :serializer => MasterView::HashSerializer.new(output_hash) } )
14
+ MasterView::Parser.parse(template, full_options)
15
+ output_hash.each do |key,value|
16
+ value.gsub!( /([^=]>)\s+/, '\1' ) #remove whitespace after tag but not =>
17
+ value.gsub!( /(\s{2,}|\n\s*)/, ' ') #change double space or newline and spaces into single space
18
+ end
19
+ assert_equal expected, output_hash, message
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ currentPath = File.dirname(__FILE__)
5
+ require File.join( currentPath, '../lib/masterview' )
6
+ require File.join( currentPath, '../lib/masterview/directives/text_area')
7
+
8
+ class TestTextArea < Test::Unit::TestCase
9
+ include MasterView::Directives
10
+
11
+ def setup
12
+ @directives = MasterView::DirectiveSet.new
13
+ end
14
+
15
+ def text_area_exec(obj, method, other, options)
16
+ attr_value = "#{obj}, #{method}"
17
+ attr_value << ', ' << other unless other.nil?
18
+ tag = MasterView::Tag.new(@directives, 'input', options, :normal, nil)
19
+ @directives.directives = []
20
+ @directives << Text_area.new(attr_value)
21
+ assert_equal nil, @directives.determine_dcs(:stag).render
22
+ dcs = @directives.determine_dcs(:etag)
23
+ dcs.context = tag.create_context
24
+ dcs.context[:tag].content = "hello world"
25
+ dcs.render
26
+ end
27
+
28
+ def test_normal
29
+ obj = ':product'
30
+ method = ':price'
31
+ ret = text_area_exec(obj, method, nil, {} )
32
+ assert_equal "<%= text_area #{obj}, #{method} %>", ret
33
+ end
34
+
35
+ def test_extra
36
+ obj = ':product'
37
+ method = ':price'
38
+ ret = text_area_exec(obj, method, "'more', 'stuff'", { 'type' => 'text', 'value' => 'fake text' } )
39
+ assert_equal "<%= text_area #{obj}, #{method} %>", ret
40
+ end
41
+
42
+ def test_rows
43
+ obj = ':product'
44
+ method = ':price'
45
+ ret = text_area_exec(obj, method, nil, { 'rows' => '4'} )
46
+ assert_equal "<%= text_area #{obj}, #{method}, :rows => 4 %>", ret
47
+ end
48
+
49
+ def test_cols
50
+ obj = ':product'
51
+ method = ':price'
52
+ ret = text_area_exec(obj, method, nil, { 'cols' => 6 } )
53
+ assert_equal "<%= text_area #{obj}, #{method}, :cols => 6 %>", ret
54
+ end
55
+
56
+ def test_all
57
+ obj = ':product'
58
+ method = ':price'
59
+ ret = text_area_exec(obj, method, nil,
60
+ {
61
+ 'rows' => 4, 'cols' => 6, 'disabled' => 'disabled',
62
+ 'readonly' => 'readonly', 'class' => 'classfoo', 'style' => 'stylebar',
63
+ 'tabindex' => 'tab1', 'accesskey' => 'ak2'
64
+ } )
65
+ assert_equal "<%= text_area #{obj}, #{method}, :accesskey => \"ak2\", :class => \"classfoo\", :cols => 6, :disabled => true, :readonly => true, :rows => 4, :style => \"stylebar\", :tabindex => \"tab1\" %>", ret
66
+ end
67
+
68
+ def test_all_uc
69
+ obj = ':product'
70
+ method = ':price'
71
+ ret = text_area_exec(obj, method, nil,
72
+ {
73
+ 'ROWS' => 4, 'COLS' => 6, 'DISABLED' => 'DISABLED',
74
+ 'READONLY' => 'readonly', 'CLASS' => 'classfoo', 'STYLE' => 'stylebar',
75
+ 'TABINDEX' => 'tab1', 'ACCESSKEY' => 'ak2'
76
+ } )
77
+ assert_equal "<%= text_area #{obj}, #{method}, :accesskey => \"ak2\", :class => \"classfoo\", :cols => 6, :disabled => true, :readonly => true, :rows => 4, :style => \"stylebar\", :tabindex => \"tab1\" %>", ret
78
+ end
79
+
80
+
81
+ end
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ currentPath = File.dirname(__FILE__)
5
+ require File.join( currentPath, '../lib/masterview' )
6
+ require File.join( currentPath, '../lib/masterview/directives/text_field')
7
+
8
+ class TestTextField < Test::Unit::TestCase
9
+ include MasterView::Directives
10
+
11
+ def setup
12
+ @directives = MasterView::DirectiveSet.new
13
+ end
14
+
15
+ def text_field_exec(obj, method, other, options)
16
+ attr_value = "#{obj}, #{method}"
17
+ attr_value << ', ' << other unless other.nil?
18
+ tag = MasterView::Tag.new(@directives, 'input', options, :normal, nil)
19
+ @directives.directives = []
20
+ @directives << Text_field.new(attr_value)
21
+ assert_equal nil, @directives.determine_dcs(:stag).render
22
+ dcs = @directives.determine_dcs(:etag)
23
+ dcs.context = tag.create_context
24
+ dcs.context[:tag].content = "hello world"
25
+ dcs.render
26
+ end
27
+
28
+ def test_normal
29
+ obj = ':product'
30
+ method = ':price'
31
+ ret = text_field_exec(obj, method, nil, { 'type' => 'text', 'value' => 'fake text' } )
32
+ assert_equal "<%= text_field #{obj}, #{method} %>", ret
33
+ end
34
+
35
+ def test_extra
36
+ obj = ':product'
37
+ method = ':price'
38
+ ret = text_field_exec(obj, method, "'more', 'stuff'", { 'type' => 'text', 'value' => 'fake text' } )
39
+ assert_equal "<%= text_field #{obj}, #{method} %>", ret
40
+ end
41
+
42
+ def test_disabled
43
+ obj = ':product'
44
+ method = ':price'
45
+ ret = text_field_exec(obj, method, nil, { 'type' => 'text', 'value' => 'fake text', 'disabled' => 'disabled'} )
46
+ assert_equal "<%= text_field #{obj}, #{method}, :disabled => true %>", ret
47
+ end
48
+
49
+ def test_size
50
+ obj = ':product'
51
+ method = ':price'
52
+ ret = text_field_exec(obj, method, nil, { 'type' => 'text', 'value' => 'fake text', 'size' => '10' } )
53
+ assert_equal "<%= text_field #{obj}, #{method}, :size => 10 %>", ret
54
+ end
55
+
56
+ def test_maxlength
57
+ obj = ':product'
58
+ method = ':price'
59
+ ret = text_field_exec(obj, method, nil, { 'type' => 'text', 'value' => 'fake text', 'maxlength' => '21' } )
60
+ assert_equal "<%= text_field #{obj}, #{method}, :maxlength => 21 %>", ret
61
+ end
62
+
63
+ def test_all
64
+ obj = ':product'
65
+ method = ':price'
66
+ ret = text_field_exec(obj, method, nil,
67
+ {
68
+ 'type' => 'text', 'value' => 'fake text', 'disabled' => 'disabled',
69
+ 'size' => '10', 'maxlength' => '21',
70
+ 'readonly' => 'readonly', 'class' => 'classfoo', 'style' => 'stylebar',
71
+ 'tabindex' => 'tab1', 'accesskey' => 'ak2'
72
+ } )
73
+ assert_equal "<%= text_field #{obj}, #{method}, :accesskey => \"ak2\", :class => \"classfoo\", :disabled => true, :maxlength => 21, :readonly => true, :size => 10, :style => \"stylebar\", :tabindex => \"tab1\" %>", ret
74
+ end
75
+
76
+ def test_all_uc
77
+ obj = ':product'
78
+ method = ':price'
79
+ ret = text_field_exec(obj, method, nil,
80
+ {
81
+ 'type' => 'text', 'value' => 'fake text', 'DISABLED' => 'DISABLED',
82
+ 'SIZE' => '10', 'MAXLENGTH' => '21',
83
+ 'READONLY' => 'readonly', 'CLASS' => 'classfoo', 'STYLE' => 'stylebar',
84
+ 'TABINDEX' => 'tab1', 'ACCESSKEY' => 'ak2'
85
+ } )
86
+ assert_equal "<%= text_field #{obj}, #{method}, :accesskey => \"ak2\", :class => \"classfoo\", :disabled => true, :maxlength => 21, :readonly => true, :size => 10, :style => \"stylebar\", :tabindex => \"tab1\" %>", ret
87
+ end
88
+
89
+ end
metadata ADDED
@@ -0,0 +1,136 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
+ specification_version: 1
4
+ name: masterview
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.2
7
+ date: 2006-04-17 00:00:00 -05:00
8
+ summary: A (x)html friendly template engine for rails with the power of layouts, and partials
9
+ require_paths:
10
+ - lib
11
+ email: jeff.barczewski@gmail.com
12
+ homepage: http://masterview.org/
13
+ rubyforge_project:
14
+ description:
15
+ autorequire: masterview
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ authors:
29
+ - Jeff Barczewski
30
+ files:
31
+ - lib/masterview
32
+ - lib/masterview.rb
33
+ - lib/masterview/directives
34
+ - lib/masterview/extras
35
+ - lib/masterview/directive_base.rb
36
+ - lib/masterview/masterview_version.rb
37
+ - lib/masterview/parser.rb
38
+ - lib/masterview/plugin_load_tracking.rb
39
+ - lib/masterview/runtime_helpers.rb
40
+ - lib/masterview/string_extensions.rb
41
+ - lib/masterview/directive_helpers.rb
42
+ - lib/masterview/directives/block.rb
43
+ - lib/masterview/directives/content.rb
44
+ - lib/masterview/directives/else.rb
45
+ - lib/masterview/directives/elsif.rb
46
+ - lib/masterview/directives/form.rb
47
+ - lib/masterview/directives/global_inline_erb.rb
48
+ - lib/masterview/directives/hidden_field.rb
49
+ - lib/masterview/directives/if.rb
50
+ - lib/masterview/directives/javascript_include.rb
51
+ - lib/masterview/directives/link_to.rb
52
+ - lib/masterview/directives/link_to_if.rb
53
+ - lib/masterview/directives/link_to_remote.rb
54
+ - lib/masterview/directives/password_field.rb
55
+ - lib/masterview/directives/preview.rb
56
+ - lib/masterview/directives/replace.rb
57
+ - lib/masterview/directives/stylesheet_link.rb
58
+ - lib/masterview/directives/testfilter.rb
59
+ - lib/masterview/directives/text_area.rb
60
+ - lib/masterview/directives/text_field.rb
61
+ - lib/masterview/directives/submit.rb
62
+ - lib/masterview/directives/insert_generated_comment.rb
63
+ - lib/masterview/extras/rails_init.rb
64
+ - lib/masterview/extras/watcher.rb
65
+ - generators/masterview
66
+ - generators/masterview_gem_plugin
67
+ - generators/masterview/masterview_generator.rb
68
+ - generators/masterview/templates
69
+ - generators/masterview/USAGE
70
+ - generators/masterview/templates/controller.rb
71
+ - generators/masterview/templates/fields_scaffold.rhtml
72
+ - generators/masterview/templates/form_scaffold.rhtml
73
+ - generators/masterview/templates/functional_test.rb
74
+ - generators/masterview/templates/helper.rb
75
+ - generators/masterview/templates/layout.rhtml
76
+ - generators/masterview/templates/list_head_scaffold.rhtml
77
+ - generators/masterview/templates/list_line_scaffold.rhtml
78
+ - generators/masterview/templates/masterview.rhtml
79
+ - generators/masterview/templates/mvpreview.js
80
+ - generators/masterview/templates/semantic.cache
81
+ - generators/masterview/templates/show_scaffold.rhtml
82
+ - generators/masterview/templates/style.css
83
+ - generators/masterview_gem_plugin/templates
84
+ - generators/masterview_gem_plugin/masterview_gem_plugin_generator.rb
85
+ - generators/masterview_gem_plugin/templates/init.rb
86
+ - test/block_test.rb
87
+ - test/content_test.rb
88
+ - test/else_test.rb
89
+ - test/elsif_test.rb
90
+ - test/example_test.rb
91
+ - test/filter_helpers_test.rb
92
+ - test/form_test.rb
93
+ - test/global_inline_erb_test.rb
94
+ - test/hidden_field_test.rb
95
+ - test/if_test.rb
96
+ - test/javascript_include_test.rb
97
+ - test/link_to_if_test.rb
98
+ - test/link_to_test.rb
99
+ - test/parser_test.rb
100
+ - test/password_field_test.rb
101
+ - test/replace_test.rb
102
+ - test/run_parser_test.rb
103
+ - test/stylesheet_link_test.rb
104
+ - test/submit_test.rb
105
+ - test/template_file_watcher_test.rb
106
+ - test/template_test.rb
107
+ - test/test_helper.rb
108
+ - test/text_area_test.rb
109
+ - test/text_field_test.rb
110
+ - CHANGELOG
111
+ - MIT-LICENSE
112
+ - Rakefile
113
+ - README
114
+ - init.rb
115
+ test_files: []
116
+
117
+ rdoc_options: []
118
+
119
+ extra_rdoc_files: []
120
+
121
+ executables: []
122
+
123
+ extensions: []
124
+
125
+ requirements: []
126
+
127
+ dependencies:
128
+ - !ruby/object:Gem::Dependency
129
+ name: facets
130
+ version_requirement:
131
+ version_requirements: !ruby/object:Gem::Version::Requirement
132
+ requirements:
133
+ - - ">"
134
+ - !ruby/object:Gem::Version
135
+ version: 0.0.0
136
+ version: