mullet 0.0.3 → 0.0.4

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.
@@ -8,16 +8,16 @@ module Mullet
8
8
  include Scope
9
9
 
10
10
  # Constructor
11
- #
11
+ #
12
12
  # @param data_objects
13
13
  # scopes in outer to inner order
14
14
  def initialize(*data_objects)
15
15
  @scopes = []
16
- push_scope(*data_objects)
16
+ data_objects.each {|data| push_scope(data) }
17
17
  end
18
18
 
19
19
  # Resolves variable name to value.
20
- #
20
+ #
21
21
  # @param [Symbol] name
22
22
  # variable name
23
23
  # @return variable value
@@ -32,15 +32,13 @@ module Mullet
32
32
  return NOT_FOUND
33
33
  end
34
34
 
35
- # Adds new innermost nested scopes.
35
+ # Adds new innermost nested scope.
36
36
  #
37
- # @param data_objects
38
- # scopes in outer to inner order
39
- def push_scope(*data_objects)
40
- data_objects.each do |data|
41
- @scopes.push(
42
- data.respond_to?(:get_variable_value) ? data : DefaultScope.new(data))
43
- end
37
+ # @param data
38
+ # data object
39
+ def push_scope(data)
40
+ @scopes.push(
41
+ data.respond_to?(:get_variable_value) ? data : DefaultScope.new(data))
44
42
  end
45
43
 
46
44
  # Removes innermost nested scope.
@@ -2,7 +2,7 @@ require 'mullet/sinatra/engine'
2
2
  require 'sinatra/base'
3
3
 
4
4
  module Mullet
5
-
5
+
6
6
  # Sinatra extension for rendering views with Mullet.
7
7
  #
8
8
  # Example:
@@ -35,8 +35,24 @@ module Mullet
35
35
  module Helpers
36
36
  @@engine = Mullet::Sinatra::Engine.new()
37
37
 
38
+ # Renders output for a view
39
+ #
40
+ # @param [Symbol] view_name
41
+ # name of view to render
42
+ # @param [Hash] options
43
+ # name to value hash of options:
44
+ # :layout
45
+ # If value is `false`, no layout is used, otherwise the
46
+ # value is the layout name to use.
47
+ # :locals
48
+ # name to value hash of local variables to make available
49
+ # to the view
50
+ # @param [Hash] locals
51
+ # name to value hash of local variables to make available to the
52
+ # view
53
+ # @return [String] rendered output
38
54
  def mullet(view_name, options={}, locals={})
39
- # The options hash may contain a key :locals with the value being a
55
+ # The options hash may contain a key :locals with the value being a
40
56
  # hash mapping variable names to values.
41
57
  locals.merge!(options.delete(:locals) || {})
42
58
 
@@ -84,7 +100,7 @@ module Mullet
84
100
  layout.execute(view, layout_output)
85
101
  output = layout_output
86
102
  end
87
-
103
+
88
104
  return output
89
105
  end
90
106
  end
@@ -1,3 +1,3 @@
1
1
  module Mullet
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -2,12 +2,12 @@ require 'mullet/default_nested_scope'
2
2
 
3
3
  module Mullet
4
4
 
5
- # Adapts model data for rendering in a template. Applications will typically
6
- # define subclasses with attributes that will be referenced by name from the
7
- # templates.
5
+ # Decorates model with additional variables that can be rendered in a
6
+ # template. Applications will typically define subclasses with attributes
7
+ # that will be referenced by name from the templates.
8
8
  class View
9
9
 
10
- # Sets model to adapt. Applications do not have to call this method
10
+ # Sets model to decorate. Applications do not have to call this method
11
11
  # directly. The template engine will call this method implicitly.
12
12
  #
13
13
  # @param data_objects
@@ -17,13 +17,22 @@ module Mullet
17
17
  end
18
18
 
19
19
  # Resolves variable name to value from the model.
20
- #
20
+ #
21
21
  # @param [Symbol] name
22
22
  # variable name
23
23
  # @return variable value
24
24
  def fetch(name)
25
25
  return @model.get_variable_value(name)
26
26
  end
27
+
28
+ # Allow model values to be queried as if they were attributes.
29
+ def method_missing(name, *args)
30
+ value = fetch(name)
31
+ if value == Scope::NOT_FOUND
32
+ value = super.method_missing(name, *args)
33
+ end
34
+ return value
35
+ end
27
36
  end
28
37
 
29
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mullet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-04 00:00:00.000000000 Z
12
+ date: 2012-04-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
16
- requirement: &2152575380 !ruby/object:Gem::Requirement
16
+ requirement: &2152598260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.6.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152575380
24
+ version_requirements: *2152598260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &2152574680 !ruby/object:Gem::Requirement
27
+ requirement: &2152596780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.5.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152574680
35
+ version_requirements: *2152596780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: redcarpet
38
- requirement: &2152574020 !ruby/object:Gem::Requirement
38
+ requirement: &2152483460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.17.2
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152574020
46
+ version_requirements: *2152483460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &2152573060 !ruby/object:Gem::Requirement
49
+ requirement: &2152482980 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.7.3
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2152573060
57
+ version_requirements: *2152482980
58
58
  description: ! "It's like Mustache but the variables are in HTML attributes.\n\n *
59
59
  Extremely simple variable syntax is incapable of expressing logic in the\n templates.\n
60
60
  \ * Templates are clean HTML which your HTML authoring tool and browser can\n display