volt 0.8.15 → 0.8.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -0
  3. data/CHANGELOG.md +11 -0
  4. data/Gemfile +1 -1
  5. data/Guardfile +2 -3
  6. data/Rakefile +1 -4
  7. data/VERSION +1 -1
  8. data/app/volt/controllers/notices_controller.rb +1 -1
  9. data/app/volt/tasks/live_query/data_store.rb +7 -7
  10. data/app/volt/tasks/live_query/live_query.rb +7 -9
  11. data/app/volt/tasks/live_query/live_query_pool.rb +13 -12
  12. data/app/volt/tasks/live_query/query_tracker.rb +4 -5
  13. data/app/volt/tasks/query_tasks.rb +9 -11
  14. data/app/volt/tasks/store_tasks.rb +4 -4
  15. data/app/volt/tasks/user_tasks.rb +1 -1
  16. data/bin/volt +2 -2
  17. data/lib/volt.rb +3 -7
  18. data/lib/volt/assets/test.rb +1 -2
  19. data/lib/volt/benchmark/benchmark.rb +3 -3
  20. data/lib/volt/boot.rb +1 -1
  21. data/lib/volt/cli.rb +18 -18
  22. data/lib/volt/cli/asset_compile.rb +8 -10
  23. data/lib/volt/cli/generate.rb +9 -11
  24. data/lib/volt/cli/new_gem.rb +51 -51
  25. data/lib/volt/config.rb +2 -3
  26. data/lib/volt/console.rb +1 -1
  27. data/lib/volt/controllers/model_controller.rb +6 -6
  28. data/lib/volt/data_stores/data_store.rb +1 -1
  29. data/lib/volt/data_stores/mongo_driver.rb +1 -1
  30. data/lib/volt/extra_core/array.rb +2 -2
  31. data/lib/volt/extra_core/blank.rb +1 -2
  32. data/lib/volt/extra_core/extra_core.rb +1 -1
  33. data/lib/volt/extra_core/inflector/methods.rb +0 -1
  34. data/lib/volt/extra_core/logger.rb +13 -7
  35. data/lib/volt/extra_core/numeric.rb +1 -1
  36. data/lib/volt/extra_core/string.rb +7 -7
  37. data/lib/volt/extra_core/stringify_keys.rb +5 -5
  38. data/lib/volt/models.rb +2 -2
  39. data/lib/volt/models/array_model.rb +18 -19
  40. data/lib/volt/models/cursor.rb +0 -1
  41. data/lib/volt/models/model.rb +17 -35
  42. data/lib/volt/models/model_hash_behaviour.rb +0 -2
  43. data/lib/volt/models/model_state.rb +1 -1
  44. data/lib/volt/models/model_wrapper.rb +1 -1
  45. data/lib/volt/models/persistors/array_store.rb +26 -13
  46. data/lib/volt/models/persistors/base.rb +1 -1
  47. data/lib/volt/models/persistors/flash.rb +2 -2
  48. data/lib/volt/models/persistors/local_store.rb +2 -3
  49. data/lib/volt/models/persistors/model_store.rb +7 -6
  50. data/lib/volt/models/persistors/params.rb +2 -2
  51. data/lib/volt/models/persistors/query/query_listener.rb +2 -0
  52. data/lib/volt/models/persistors/query/query_listener_pool.rb +1 -1
  53. data/lib/volt/models/persistors/store.rb +1 -2
  54. data/lib/volt/models/persistors/store_state.rb +2 -3
  55. data/lib/volt/models/url.rb +17 -16
  56. data/lib/volt/models/validations.rb +11 -14
  57. data/lib/volt/models/validators/length_validator.rb +3 -3
  58. data/lib/volt/models/validators/presence_validator.rb +2 -2
  59. data/lib/volt/page/bindings/attribute_binding.rb +2 -3
  60. data/lib/volt/page/bindings/base_binding.rb +1 -1
  61. data/lib/volt/page/bindings/each_binding.rb +8 -9
  62. data/lib/volt/page/bindings/event_binding.rb +2 -3
  63. data/lib/volt/page/bindings/template_binding.rb +8 -7
  64. data/lib/volt/page/bindings/template_binding/grouped_controllers.rb +2 -1
  65. data/lib/volt/page/channel.rb +10 -10
  66. data/lib/volt/page/channel_stub.rb +1 -1
  67. data/lib/volt/page/document.rb +0 -1
  68. data/lib/volt/page/document_events.rb +4 -4
  69. data/lib/volt/page/page.rb +26 -19
  70. data/lib/volt/page/string_template_renderer.rb +2 -2
  71. data/lib/volt/page/sub_context.rb +10 -4
  72. data/lib/volt/page/targets/attribute_section.rb +1 -1
  73. data/lib/volt/page/targets/attribute_target.rb +1 -2
  74. data/lib/volt/page/targets/base_section.rb +4 -4
  75. data/lib/volt/page/targets/binding_document/base_node.rb +0 -1
  76. data/lib/volt/page/targets/binding_document/component_node.rb +4 -5
  77. data/lib/volt/page/targets/dom_section.rb +21 -22
  78. data/lib/volt/page/targets/dom_target.rb +1 -1
  79. data/lib/volt/page/targets/dom_template.rb +11 -12
  80. data/lib/volt/page/targets/helpers/comment_searchers.rb +7 -8
  81. data/lib/volt/page/tasks.rb +0 -1
  82. data/lib/volt/page/template_renderer.rb +1 -1
  83. data/lib/volt/page/url_tracker.rb +3 -3
  84. data/lib/volt/reactive/computation.rb +5 -11
  85. data/lib/volt/reactive/dependency.rb +1 -3
  86. data/lib/volt/reactive/eventable.rb +17 -4
  87. data/lib/volt/reactive/hash_dependency.rb +1 -0
  88. data/lib/volt/reactive/reactive_accessors.rb +0 -1
  89. data/lib/volt/reactive/reactive_array.rb +20 -25
  90. data/lib/volt/reactive/reactive_hash.rb +3 -3
  91. data/lib/volt/router/routes.rb +11 -13
  92. data/lib/volt/server.rb +17 -17
  93. data/lib/volt/server/component_handler.rb +2 -2
  94. data/lib/volt/server/component_templates.rb +8 -8
  95. data/lib/volt/server/html_parser/attribute_scope.rb +9 -10
  96. data/lib/volt/server/html_parser/if_view_scope.rb +2 -2
  97. data/lib/volt/server/html_parser/sandlebars_parser.rb +14 -14
  98. data/lib/volt/server/html_parser/textarea_scope.rb +1 -2
  99. data/lib/volt/server/html_parser/view_handler.rb +1 -1
  100. data/lib/volt/server/html_parser/view_parser.rb +1 -1
  101. data/lib/volt/server/html_parser/view_scope.rb +10 -10
  102. data/lib/volt/server/rack/asset_files.rb +15 -16
  103. data/lib/volt/server/rack/component_code.rb +2 -2
  104. data/lib/volt/server/rack/component_html_renderer.rb +0 -1
  105. data/lib/volt/server/rack/component_paths.rb +13 -10
  106. data/lib/volt/server/rack/index_files.rb +4 -4
  107. data/lib/volt/server/rack/opal_files.rb +4 -5
  108. data/lib/volt/server/rack/source_map_server.rb +3 -3
  109. data/lib/volt/server/socket_connection_handler.rb +3 -4
  110. data/lib/volt/server/socket_connection_handler_stub.rb +1 -1
  111. data/lib/volt/spec/setup.rb +3 -3
  112. data/lib/volt/store/mongo.rb +2 -2
  113. data/lib/volt/tasks/task_handler.rb +3 -3
  114. data/lib/volt/utils/generic_counting_pool.rb +2 -2
  115. data/lib/volt/utils/generic_pool.rb +7 -8
  116. data/lib/volt/utils/local_storage.rb +4 -4
  117. data/lib/volt/volt/environment.rb +1 -1
  118. data/spec/apps/file_loading/app/shared/config/dependencies.rb +1 -1
  119. data/spec/apps/kitchen_sink/Gemfile +0 -2
  120. data/spec/apps/kitchen_sink/app/main/config/routes.rb +5 -5
  121. data/spec/apps/kitchen_sink/app/main/controllers/main_controller.rb +7 -6
  122. data/spec/apps/kitchen_sink/app/main/controllers/todos_controller.rb +3 -4
  123. data/spec/controllers/reactive_accessors_spec.rb +4 -4
  124. data/spec/extra_core/inflector_spec.rb +1 -1
  125. data/spec/extra_core/string_transformation_test_cases.rb +23 -24
  126. data/spec/extra_core/string_transformations_spec.rb +11 -12
  127. data/spec/integration/bindings_spec.rb +15 -15
  128. data/spec/integration/list_spec.rb +12 -13
  129. data/spec/integration/templates_spec.rb +3 -3
  130. data/spec/models/model_spec.rb +74 -80
  131. data/spec/models/persistors/params_spec.rb +2 -2
  132. data/spec/models/persistors/store_spec.rb +4 -4
  133. data/spec/models/validations_spec.rb +14 -23
  134. data/spec/page/bindings/content_binding_spec.rb +7 -8
  135. data/spec/page/bindings/template_binding_spec.rb +22 -24
  136. data/spec/page/sub_context_spec.rb +2 -2
  137. data/spec/reactive/computation_spec.rb +3 -3
  138. data/spec/reactive/reactive_array_spec.rb +12 -12
  139. data/spec/router/routes_spec.rb +45 -48
  140. data/spec/server/html_parser/sandlebars_parser_spec.rb +42 -42
  141. data/spec/server/html_parser/view_parser_spec.rb +132 -153
  142. data/spec/server/rack/asset_files_spec.rb +9 -8
  143. data/spec/server/rack/component_paths_spec.rb +5 -5
  144. data/spec/server/rack/rack_requests_spec.rb +3 -3
  145. data/spec/spec_helper.rb +1 -1
  146. data/spec/tasks/live_query_spec.rb +4 -5
  147. data/spec/tasks/query_tasks.rb +2 -4
  148. data/spec/tasks/query_tracker_spec.rb +29 -29
  149. data/spec/templates/targets/binding_document/component_node_spec.rb +1 -1
  150. data/spec/utils/generic_counting_pool_spec.rb +4 -4
  151. data/spec/utils/generic_pool_spec.rb +12 -12
  152. data/templates/component/config/routes.rb +2 -2
  153. data/templates/component/controllers/main_controller.rb +7 -6
  154. data/templates/newgem/app/newgem/config/dependencies.rb +1 -1
  155. data/templates/newgem/app/newgem/config/routes.rb +1 -1
  156. data/templates/project/app/main/config/routes.rb +2 -2
  157. data/templates/project/app/main/controllers/main_controller.rb +7 -6
  158. data/templates/project/spec/sample_spec.rb +2 -2
  159. data/volt.gemspec +32 -33
  160. metadata +3 -4
  161. data/lib/volt/extra_core/log.rb +0 -56
  162. data/lib/volt/extra_core/try.rb +0 -31
@@ -2,7 +2,7 @@ require 'volt/reactive/hash_dependency'
2
2
 
3
3
  module Volt
4
4
  class ReactiveHash
5
- def initialize(values={})
5
+ def initialize(values = {})
6
6
  @hash = values
7
7
  @deps = HashDependency.new
8
8
  @all_deps = Dependency.new
@@ -17,13 +17,13 @@ module Volt
17
17
  def method_missing(method_name, *args, &block)
18
18
  @all_deps.depend
19
19
 
20
- return @hash.send(method_name, *args, &block)
20
+ @hash.send(method_name, *args, &block)
21
21
  end
22
22
 
23
23
  def [](key)
24
24
  @deps.depend(key)
25
25
 
26
- return @hash[key]
26
+ @hash[key]
27
27
  end
28
28
 
29
29
  def []=(key, value)
@@ -53,11 +53,11 @@ module Volt
53
53
  def define(&block)
54
54
  instance_eval(&block)
55
55
 
56
- return self
56
+ self
57
57
  end
58
58
 
59
59
  # Add a route
60
- def get(path, params={})
60
+ def get(path, params = {})
61
61
  params = params.symbolize_keys
62
62
  if has_binding?(path)
63
63
  add_indirect_path(path, params)
@@ -88,7 +88,7 @@ module Volt
88
88
  end
89
89
  end
90
90
 
91
- return nil, nil
91
+ [nil, nil]
92
92
  end
93
93
 
94
94
  # Takes in a path and returns the matching params.
@@ -105,6 +105,7 @@ module Volt
105
105
  end
106
106
 
107
107
  private
108
+
108
109
  # Recursively walk the @indirect_routes hash, return the params for a route, return
109
110
  # false for non-matches.
110
111
  def match_path(original_parts, remaining_parts, node)
@@ -114,7 +115,7 @@ module Volt
114
115
  # really I just got lucky)
115
116
  part, *parts = remaining_parts
116
117
 
117
- if part == nil
118
+ if part.nil?
118
119
  if node[part]
119
120
  # We found a match, replace the bindings and return
120
121
  # TODO: Handvle nested
@@ -144,10 +145,9 @@ module Volt
144
145
  end
145
146
  end
146
147
 
147
- return params
148
+ params
148
149
  end
149
150
 
150
-
151
151
  # Build up the @indirect_routes data structure.
152
152
  # '*' means wildcard match anything
153
153
  # nil means a terminal, who's value will be the params.
@@ -172,7 +172,6 @@ module Volt
172
172
  node[nil] = params
173
173
  end
174
174
 
175
-
176
175
  def add_param_matcher(path, params)
177
176
  params = params.dup
178
177
  parts = url_parts(path)
@@ -194,7 +193,7 @@ module Volt
194
193
  # a url with the bindings filled in, and params with the binding params
195
194
  # removed. (So the remaining can be added onto the end of the url ?params1=...)
196
195
  def create_path_transformer(parts)
197
- return lambda do |input_params|
196
+ lambda do |input_params|
198
197
  input_params = input_params.dup
199
198
 
200
199
  url = parts.map do |part|
@@ -234,8 +233,8 @@ module Volt
234
233
  # test_params did not have matching key
235
234
  return false
236
235
  end
237
- elsif value == nil
238
- unless test_params.has_key?(key)
236
+ elsif value.nil?
237
+ unless test_params.key?(key)
239
238
  return false
240
239
  end
241
240
  else
@@ -247,14 +246,13 @@ module Volt
247
246
  end
248
247
  end
249
248
 
250
- return true, test_params
249
+ [true, test_params]
251
250
  end
252
251
 
253
252
  def url_parts(path)
254
- return path.split('/').reject(&:blank?)
253
+ path.split('/').reject(&:blank?)
255
254
  end
256
255
 
257
-
258
256
  # Check if a string has a binding in it
259
257
  def has_binding?(string)
260
258
  string.index('{{') && string.index('}}')
@@ -7,13 +7,13 @@ else
7
7
  require 'thin'
8
8
  end
9
9
 
10
- require "rack"
10
+ require 'rack'
11
11
  if RUBY_PLATFORM != 'java'
12
- require "rack/sockjs"
13
- require "eventmachine"
12
+ require 'rack/sockjs'
13
+ require 'eventmachine'
14
14
  end
15
- require "sass"
16
- require "sprockets-sass"
15
+ require 'sass'
16
+ require 'sprockets-sass'
17
17
  require 'listen'
18
18
 
19
19
  require 'volt'
@@ -52,11 +52,11 @@ end
52
52
 
53
53
  module Volt
54
54
  class Server
55
- def initialize(root_path=nil)
55
+ def initialize(root_path = nil)
56
56
  root_path ||= Dir.pwd
57
57
  Volt.root = root_path
58
58
 
59
- @app_path = File.expand_path(File.join(root_path, "app"))
59
+ @app_path = File.expand_path(File.join(root_path, 'app'))
60
60
 
61
61
  # Boot the volt app
62
62
  @component_paths = Volt.boot(root_path)
@@ -67,13 +67,13 @@ module Volt
67
67
  end
68
68
 
69
69
  def display_welcome
70
- puts File.read(File.join(File.dirname(__FILE__), "server/banner.txt"))
70
+ puts File.read(File.join(File.dirname(__FILE__), 'server/banner.txt'))
71
71
  end
72
72
 
73
73
  def setup_change_listener
74
74
  # Setup the listeners for file changes
75
75
  listener = Listen.to("#{@app_path}/") do |modified, added, removed|
76
- puts "file changed, sending reload"
76
+ puts 'file changed, sending reload'
77
77
  SocketConnectionHandler.send_message_all(nil, 'reload')
78
78
  end
79
79
  listener.start
@@ -115,20 +115,20 @@ module Volt
115
115
  if RUBY_PLATFORM != 'java'
116
116
  SocketConnectionHandler.dispatcher = Dispatcher.new
117
117
 
118
- @app.map "/channel" do
119
- run Rack::SockJS.new(SocketConnectionHandler) #, :websocket => false
118
+ @app.map '/channel' do
119
+ run Rack::SockJS.new(SocketConnectionHandler) # , :websocket => false
120
120
  end
121
121
  end
122
122
 
123
123
  @app.use Rack::Static,
124
- :urls => ["/"],
125
- :root => "public",
126
- :index => "",
127
- :header_rules => [
128
- [:all, {'Cache-Control' => 'public, max-age=86400'}]
124
+ urls: ['/'],
125
+ root: 'public',
126
+ index: '',
127
+ header_rules: [
128
+ [:all, { 'Cache-Control' => 'public, max-age=86400' }]
129
129
  ]
130
130
 
131
- @app.run lambda { |env| [404, {'Content-Type' => 'text/html; charset=utf-8'}, ['404 - page not found']] }
131
+ @app.run lambda { |env| [404, { 'Content-Type' => 'text/html; charset=utf-8' }, ['404 - page not found']] }
132
132
 
133
133
  @app
134
134
  end
@@ -16,7 +16,7 @@ module Volt
16
16
 
17
17
  javascript_code = compile_for_component(component_name)
18
18
 
19
- return [200, {"Content-Type" => "application/javascript; charset=utf-8"}, StringIO.new(javascript_code)]
19
+ [200, { 'Content-Type' => 'application/javascript; charset=utf-8' }, StringIO.new(javascript_code)]
20
20
  end
21
21
 
22
22
  def compile_for_component(component_name)
@@ -28,7 +28,7 @@ module Volt
28
28
  # Compile the code
29
29
  javascript_code = Opal.compile(code)
30
30
 
31
- return javascript_code
31
+ javascript_code
32
32
  end
33
33
  end
34
34
  end
@@ -4,7 +4,7 @@ require 'volt/server/html_parser/view_parser'
4
4
  # setup code (for controllers, models, views, and routes)
5
5
  module Volt
6
6
  class ComponentTemplates
7
- def initialize(component_path, component_name, client=true)
7
+ def initialize(component_path, component_name, client = true)
8
8
  @component_path = component_path
9
9
  @component_name = component_name
10
10
  @client = true
@@ -17,7 +17,7 @@ module Volt
17
17
  code << generate_controller_code + generate_model_code + generate_routes_code + generate_tasks_code
18
18
  end
19
19
 
20
- return code
20
+ code
21
21
  end
22
22
 
23
23
  def page_reference
@@ -56,7 +56,7 @@ module Volt
56
56
  end
57
57
  end
58
58
 
59
- return code
59
+ code
60
60
  end
61
61
 
62
62
  def generate_controller_code
@@ -67,7 +67,7 @@ module Volt
67
67
  code << File.read(controller_path) + "\n\n"
68
68
  end
69
69
 
70
- return code
70
+ code
71
71
  end
72
72
 
73
73
  def generate_model_code
@@ -82,24 +82,24 @@ module Volt
82
82
  code << "#{page_reference}.add_model(#{model_name.inspect})\n\n"
83
83
  end
84
84
 
85
- return code
85
+ code
86
86
  end
87
87
 
88
88
  def generate_routes_code
89
89
  code = ''
90
90
  routes_path = "#{@component_path}/config/routes.rb"
91
91
 
92
- if File.exists?(routes_path)
92
+ if File.exist?(routes_path)
93
93
  code << "#{page_reference}.add_routes do\n"
94
94
  code << "\n" + File.read(routes_path) + "\n"
95
95
  code << "end\n\n"
96
96
  end
97
97
 
98
- return code
98
+ code
99
99
  end
100
100
 
101
101
  def generate_tasks_code
102
- return TaskHandler.known_handlers.map do |handler|
102
+ TaskHandler.known_handlers.map do |handler|
103
103
  "class #{handler.name} < Volt::TaskHandler; end"
104
104
  end.join "\n"
105
105
  end
@@ -13,7 +13,7 @@ module Volt
13
13
  end
14
14
  end
15
15
 
16
- return new_attributes
16
+ new_attributes
17
17
  end
18
18
 
19
19
  def process_event_binding(tag_name, attributes, name, value)
@@ -38,7 +38,7 @@ module Volt
38
38
  parts = value.split(/(\{\{[^\}]+\}\})/).reject(&:blank?)
39
39
  binding_count = parts.count { |p| p[0] == '{' && p[1] == '{' && p[-2] == '}' && p[-1] == '}' }
40
40
 
41
- return parts, binding_count
41
+ [parts, binding_count]
42
42
  end
43
43
 
44
44
  def process_attribute(tag_name, attributes, attribute_name, value)
@@ -73,7 +73,7 @@ module Volt
73
73
  prefix = 'self.'
74
74
  end
75
75
 
76
- return "#{prefix}#{getter}=(val)"
76
+ "#{prefix}#{getter}=(val)"
77
77
  end
78
78
 
79
79
  # Add an attribute binding on the tag, bind directly to the getter in the binding
@@ -89,16 +89,15 @@ module Volt
89
89
  save_binding(id, "lambda { |__p, __t, __c, __id| Volt::AttributeBinding.new(__p, __t, __c, __id, #{attribute_name.inspect}, Proc.new { #{getter} }, Proc.new { |val| #{setter} }) }")
90
90
  end
91
91
 
92
-
93
92
  def add_multiple_attribute(tag_name, id, attribute_name, parts, content)
94
93
  case attribute_name
95
94
  when 'checked', 'value'
96
95
  if parts.size > 1
97
96
  if tag_name == 'textarea'
98
- raise "The content of text area's can not be bound to multiple bindings."
97
+ fail "The content of text area's can not be bound to multiple bindings."
99
98
  else
100
99
  # Multiple values can not be passed to value or checked attributes.
101
- raise "Multiple bindings can not be passed to a #{attribute_name} binding: #{parts.inspect}"
100
+ fail "Multiple bindings can not be passed to a #{attribute_name} binding: #{parts.inspect}"
102
101
  end
103
102
  end
104
103
  end
@@ -123,24 +122,24 @@ module Volt
123
122
  @handler.templates[key] = value
124
123
  end
125
124
 
126
- return path
125
+ path
127
126
  end
128
127
 
129
128
  def add_id_to_attributes(attributes)
130
129
  id = attributes['id'] ||= "id#{@binding_number}"
131
130
  @binding_number += 1
132
131
 
133
- return id.to_s
132
+ id.to_s
134
133
  end
135
134
 
136
135
  def attribute_string(attributes)
137
136
  attr_str = attributes.map { |v| "#{v[0]}=\"#{v[1]}\"" }.join(' ')
138
137
  if attr_str.size > 0
139
138
  # extra space
140
- attr_str = " " + attr_str
139
+ attr_str = ' ' + attr_str
141
140
  end
142
141
 
143
- return attr_str
142
+ attr_str
144
143
  end
145
144
  end
146
145
  end
@@ -42,7 +42,7 @@ module Volt
42
42
  new_path
43
43
  end
44
44
 
45
- def close_scope(final=true)
45
+ def close_scope(final = true)
46
46
  @branches << [@last_content, path]
47
47
 
48
48
  super()
@@ -51,7 +51,7 @@ module Volt
51
51
  # Add the binding to the parent
52
52
  branches = @branches.map do |branch|
53
53
  content = branch[0]
54
- if content == nil
54
+ if content.nil?
55
55
  content = nil.inspect
56
56
  else
57
57
  content = "Proc.new { #{branch[0]} }"
@@ -16,7 +16,7 @@ module Volt
16
16
  hash = {}
17
17
  array.each { |v| hash[v] = true }
18
18
 
19
- return hash
19
+ hash
20
20
  end
21
21
 
22
22
  # regex matchers
@@ -25,15 +25,15 @@ module Volt
25
25
  ATTRIBUTES = /([-\:A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/
26
26
 
27
27
  # Types of elements
28
- BLOCK = truth_hash(%w{a address applet blockquote button center dd del dir div dl dt fieldset form frameset hr iframe ins isindex li map menu noframes noscript object ol p pre script table tbody td tfoot th thead tr ul})
29
- EMPTY = truth_hash(%w{area base basefont br col frame hr img input isindex link meta param embed})
30
- INLINE = truth_hash(%w{abbr acronym applet b basefont bdo big br button cite code del dfn em font i iframe img input ins kbd label map object q s samp script select small span strike strong sub sup textarea tt u var})
31
- CLOSE_SELF = truth_hash(%w{colgroup dd dt li options p td tfoot th thead tr})
32
- SPECIAL = truth_hash(%w{script style})
28
+ BLOCK = truth_hash(%w(a address applet blockquote button center dd del dir div dl dt fieldset form frameset hr iframe ins isindex li map menu noframes noscript object ol p pre script table tbody td tfoot th thead tr ul))
29
+ EMPTY = truth_hash(%w(area base basefont br col frame hr img input isindex link meta param embed))
30
+ INLINE = truth_hash(%w(abbr acronym applet b basefont bdo big br button cite code del dfn em font i iframe img input ins kbd label map object q s samp script select small span strike strong sub sup textarea tt u var))
31
+ CLOSE_SELF = truth_hash(%w(colgroup dd dt li options p td tfoot th thead tr))
32
+ SPECIAL = truth_hash(%w(script style))
33
33
 
34
- FILL_IN_ATTRIBUTES = truth_hash(%w{checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected})
34
+ FILL_IN_ATTRIBUTES = truth_hash(%w(checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected))
35
35
 
36
- def initialize(html, handler, file_path=nil)
36
+ def initialize(html, handler, file_path = nil)
37
37
  @html = StringScanner.new(html)
38
38
  @handler = handler
39
39
  @file_path = file_path
@@ -122,7 +122,7 @@ module Volt
122
122
  # or end of doc before closed binding
123
123
  raise_parse_error("unclosed binding: {#{binding.strip}")
124
124
  else
125
- raise "should not reach here"
125
+ fail 'should not reach here'
126
126
  end
127
127
  end
128
128
 
@@ -136,7 +136,7 @@ module Volt
136
136
  error_str = error + " on line: #{line_number}"
137
137
  error_str += " of #{@file_path}" if @file_path
138
138
 
139
- raise HTMLParseError, error_str
139
+ fail HTMLParseError, error_str
140
140
  end
141
141
 
142
142
  def start_tag(tag, tag_name, rest, unary)
@@ -197,7 +197,7 @@ module Volt
197
197
 
198
198
  if tag
199
199
  # Find the closest tag that closes.
200
- (@stack.size-1).downto(0) do |index|
200
+ (@stack.size - 1).downto(0) do |index|
201
201
  if @stack[index] == tag_name
202
202
  new_size = index
203
203
  break
@@ -207,7 +207,7 @@ module Volt
207
207
 
208
208
  if new_size >= 0
209
209
  if @handler.respond_to?(:end_tag)
210
- (@stack.size-1).downto(new_size) do |index|
210
+ (@stack.size - 1).downto(new_size) do |index|
211
211
  @handler.end_tag(@stack[index])
212
212
  end
213
213
  end
@@ -217,9 +217,9 @@ module Volt
217
217
  end
218
218
 
219
219
  def special_tag(close_tag, body)
220
- body = body[0..((-1 * close_tag.size)-1)]
220
+ body = body[0..((-1 * close_tag.size) - 1)]
221
221
 
222
- body = body.gsub(/\<\!--(.*?)--\>/, "\\1").gsub(/\<\!\[CDATA\[(.*?)\]\]\>/, "\\1")
222
+ body = body.gsub(/\<\!--(.*?)--\>/, '\\1').gsub(/\<\!\[CDATA\[(.*?)\]\]\>/, '\\1')
223
223
 
224
224
  text(body)
225
225
 
@@ -10,7 +10,7 @@ module Volt
10
10
  @html << "{{#{content}}}"
11
11
  end
12
12
 
13
- def close_scope(pop=true)
13
+ def close_scope(pop = true)
14
14
  # Remove from the scope
15
15
  @handler.scope.pop
16
16
 
@@ -27,7 +27,6 @@ module Volt
27
27
  attributes = @handler.last.process_attributes('textarea', attributes)
28
28
 
29
29
  @handler.last.html << "<textarea#{attribute_string(attributes)}>#{@html}</textarea>"
30
-
31
30
  end
32
31
  end
33
32
  end