public
Rubygem
Description: a humane, eval-safe templating system using Hpricot
Clone URL: git://github.com/mattly/hpreserve.git
Search Repo:
Click here to lend your support to: hpreserve and make a donation at www.pledgie.com !
and the filter knows about the parsers variables, thanks
mattly (author)
Mon May 12 14:22:54 -0700 2008
commit  8b4863a478a377bc02fd320c88e2a3a02a486078
tree    b33925c6b3d0eb476565cf5393e09118ea3a4e1f
parent  d7151d861874f0d198e6bc59b1952f121f1e33d9
...
17
18
19
20
 
21
22
 
23
24
25
26
...
47
48
49
50
 
51
52
 
53
54
55
...
64
65
66
67
 
68
69
70
...
17
18
19
 
20
21
 
22
23
24
25
26
...
47
48
49
 
50
51
 
52
53
54
55
...
64
65
66
 
67
68
69
70
0
@@ -17,9 +17,9 @@
0
       end
0
     end
0
     
0
- def self.create(vars=nil)
0
+ def self.create(parser=nil)
0
       filterset = Filters.new
0
- filterset.variables = vars
0
+ filterset.parser = parser
0
       @@filter_modules.each { |m| filterset.extend m }
0
       filterset
0
     end
0
0
@@ -47,9 +47,9 @@
0
       end
0
     end
0
     
0
- attr_accessor :variables
0
+ attr_accessor :parser
0
     
0
- @@required_methods = %w(__send__ __id__ variables variables= debugger run inspect methods respond_to? extend)
0
+ @@required_methods = %w(__send__ __id__ parser parser= debugger run inspect methods respond_to? extend)
0
     
0
     # :nodoc
0
     # keeping inspect around simply to make irb happy.
0
@@ -64,7 +64,7 @@
0
     
0
     def run(filter, *args)
0
       node = args.shift
0
- args.collect! {|a| variables.nil? ? a : variables.substitute(a) }
0
+ args.collect! {|a| parser.nil? ? a : parser.variables.substitute(a) }
0
       __send__(filter, node, *args) if respond_to?(filter)
0
     end
0
 
...
10
11
12
13
 
14
15
16
17
18
19
20
21
...
10
11
12
 
13
14
15
16
17
 
18
19
20
0
@@ -10,12 +10,11 @@
0
   
0
     def initialize(doc='')
0
       self.doc = Hpricot(doc)
0
- self.filter_sandbox = Hpreserve::Filters.create
0
+ self.filter_sandbox = Hpreserve::Filters.create(self)
0
     end
0
   
0
     def variables=(vars)
0
       @variables = Hpreserve::Variables.new(vars)
0
- @filter_sandbox.variables = variables
0
     end
0
   
0
     def render(vars=nil)
...
24
25
26
27
 
 
28
29
30
...
24
25
26
 
27
28
29
30
31
0
@@ -24,7 +24,8 @@
0
       @doc = Hpricot('<span>foo</span>')
0
       vars = mock('variables')
0
       vars.should_receive(:substitute).with('{thing.link}/bar').and_return('foo/bar')
0
- @f = Hpreserve::Filters.create( vars )
0
+ parser = mock('parser', :variables => vars)
0
+ @f = Hpreserve::Filters.create( parser )
0
       @f.run('link', @doc.at('span'), '{thing.link}/bar')
0
       @doc.at('span')['href'].should == 'foo/bar'
0
     end

Comments

    No one has commented yet.