starapor-slippers 0.0.8 → 0.0.9
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/README +2 -0
- data/VERSION.yml +1 -1
- data/examples/blog/blog.db +0 -0
- data/lib/engine/engine.rb +1 -1
- data/lib/engine/slippers_nodes.rb +2 -1
- data/lib/engine/template_group.rb +7 -1
- data/lib/engine/template_group_directory.rb +13 -12
- data/lib/ramazeTemplates/slippers.rb +2 -2
- data/spec/parse_attributes.rb +6 -7
- data/spec/parse_templates.rb +7 -2
- data/spec/template_group.rb +9 -2
- data/spec/template_group_directory.rb +12 -5
- metadata +2 -2
data/README
CHANGED
data/VERSION.yml
CHANGED
data/examples/blog/blog.db
CHANGED
Binary file
|
data/lib/engine/engine.rb
CHANGED
@@ -7,9 +7,10 @@ module Slippers
|
|
7
7
|
|
8
8
|
def value_of(item)
|
9
9
|
return '' if to_s == ''
|
10
|
+
return item.to_s if text_value == 'it'
|
10
11
|
return item[to_sym] if item.respond_to?('[]'.to_sym) && item[to_sym]
|
11
12
|
return item.send(to_s) if item.respond_to?(to_s)
|
12
|
-
|
13
|
+
Slippers::Engine::DEFAULT_STRING
|
13
14
|
end
|
14
15
|
|
15
16
|
def render(object_to_render, template_group)
|
@@ -7,7 +7,7 @@ module Slippers
|
|
7
7
|
|
8
8
|
def find(subtemplate)
|
9
9
|
return nil unless @templates
|
10
|
-
return
|
10
|
+
return create_template(subtemplate.to_sym) if @templates.include?(subtemplate.to_sym)
|
11
11
|
find_in_super_group(subtemplate)
|
12
12
|
end
|
13
13
|
|
@@ -30,5 +30,11 @@ module Slippers
|
|
30
30
|
return nil unless @super_group
|
31
31
|
@super_group.find(subtemplate)
|
32
32
|
end
|
33
|
+
|
34
|
+
def create_template(subtemplate)
|
35
|
+
template = @templates[subtemplate]
|
36
|
+
return template unless template.is_a?(String)
|
37
|
+
Slippers::Engine.new(template)
|
38
|
+
end
|
33
39
|
end
|
34
40
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module Slippers
|
2
2
|
class TemplateGroupDirectory < TemplateGroup
|
3
|
-
def initialize(
|
4
|
-
@
|
3
|
+
def initialize(directory_paths, params={})
|
4
|
+
@directory_paths = directory_paths
|
5
5
|
@super_group = params[:super_group]
|
6
6
|
end
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :directory_paths
|
8
8
|
|
9
9
|
def find(subtemplate)
|
10
|
-
file_name = @directory_path + '/' + subtemplate + '.st'
|
11
|
-
return
|
12
|
-
|
13
|
-
|
10
|
+
file_name = @directory_paths.map { |directory_path| directory_path + '/' + subtemplate + '.st' }.find { |f| File.exist? f}
|
11
|
+
return Engine.new(FileTemplate.new(file_name).template, :template_group => self) if file_name
|
12
|
+
find_renderer_or_supergroup(subtemplate)
|
14
13
|
end
|
14
|
+
|
15
15
|
def has_registered?(class_name)
|
16
16
|
return false unless @super_group
|
17
17
|
@super_group.has_registered?(class_name)
|
@@ -25,16 +25,17 @@ module Slippers
|
|
25
25
|
|
26
26
|
def eql?(other)
|
27
27
|
return false unless other
|
28
|
-
|
28
|
+
directory_paths.eql?(other.directory_paths)
|
29
29
|
end
|
30
30
|
def hash
|
31
|
-
@
|
31
|
+
@directory_paths.hash
|
32
32
|
end
|
33
33
|
|
34
34
|
private
|
35
|
-
def
|
36
|
-
file_name = @directory_path + '/' + subtemplate + '.rb'
|
37
|
-
return find_in_super_group(subtemplate) unless
|
35
|
+
def find_renderer_or_supergroup(subtemplate)
|
36
|
+
file_name = @directory_paths.map { |directory_path| directory_path + '/' + subtemplate + '.rb' }.find { |f| File.exist? f}
|
37
|
+
return find_in_super_group(subtemplate) unless file_name
|
38
|
+
|
38
39
|
renderer_name = subtemplate.split('/')[-1]
|
39
40
|
load File.expand_path(file_name)
|
40
41
|
create_renderer renderer_name
|
@@ -13,9 +13,9 @@ module Ramaze
|
|
13
13
|
private
|
14
14
|
def self.template_group(action)
|
15
15
|
subtemplates = action.instance.ancestral_trait[:slippers_options] || {}
|
16
|
-
|
16
|
+
views = action.instance.options[:views].map{|view| "#{action.instance.options[:roots]}/#{view}" }
|
17
17
|
super_group = ::Slippers::TemplateGroup.new(:templates => subtemplates)
|
18
|
-
::Slippers::TemplateGroupDirectory.new(
|
18
|
+
::Slippers::TemplateGroupDirectory.new(views, :super_group => super_group)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
data/spec/parse_attributes.rb
CHANGED
@@ -38,8 +38,12 @@ describe SlippersParser do
|
|
38
38
|
@parser.parse('this is $name$').eval(people).should eql("this is fredbarney")
|
39
39
|
end
|
40
40
|
|
41
|
-
it "should
|
41
|
+
it "should render the default string when the attribute cannot be found on the object to render" do
|
42
|
+
Slippers::Engine::DEFAULT_STRING.should eql('')
|
42
43
|
@parser.parse("This is the $adjective$ template with $message$.").eval(OpenStruct.new).should eql("This is the template with .")
|
44
|
+
@parser.parse("$not_me$").eval(:object).should eql('')
|
45
|
+
Slippers::Engine::DEFAULT_STRING = "foo"
|
46
|
+
@parser.parse("$not_me$").eval(:object).should eql('foo')
|
43
47
|
end
|
44
48
|
|
45
49
|
it "should convert attribute to string" do
|
@@ -63,12 +67,7 @@ describe SlippersParser do
|
|
63
67
|
it 'should return an empty string if the template is not correctly formed' do
|
64
68
|
@parser.parse("$not_properly_formed").should eql(nil)
|
65
69
|
end
|
66
|
-
|
67
|
-
it 'should render an empty string if it cannot find the attribute to render' do
|
68
|
-
@parser.parse("$not_me$").eval(:object).should eql('')
|
69
|
-
end
|
70
|
-
|
71
|
-
|
70
|
+
|
72
71
|
end
|
73
72
|
|
74
73
|
|
data/spec/parse_templates.rb
CHANGED
@@ -55,14 +55,19 @@ describe SlippersParser do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should parse the file template from the template group" do
|
58
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views')
|
58
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'])
|
59
59
|
name = OpenStruct.new({:first => 'fred', :last => 'flinestone'})
|
60
60
|
people = OpenStruct.new({:fred => name})
|
61
61
|
@parser.parse("should parse $person/name()$").eval(name, template_group).should eql("should parse fred flinestone")
|
62
62
|
@parser.parse("should parse $fred:person/name()$").eval(people, template_group).should eql("should parse fred flinestone")
|
63
63
|
end
|
64
|
-
|
65
64
|
|
65
|
+
it 'should render the object if the keyword it is used' do
|
66
|
+
supergroup = Slippers::TemplateGroup.new(:templates => {:bold => Slippers::Engine.new("<b>$it$</b>")})
|
67
|
+
subgroup = Slippers::TemplateGroup.new(:templates => {}, :super_group => supergroup)
|
68
|
+
@parser.parse("<b>$it$</b>").eval("Sarah", subgroup).should eql('<b>Sarah</b>')
|
69
|
+
@parser.parse("$name:bold()$").eval({:name => "Sarah"}, subgroup).should eql('<b>Sarah</b>')
|
70
|
+
end
|
66
71
|
end
|
67
72
|
|
68
73
|
|
data/spec/template_group.rb
CHANGED
@@ -6,6 +6,13 @@ describe Slippers::TemplateGroup do
|
|
6
6
|
template_group = Slippers::TemplateGroup.new(:templates => {:person => subtemplate})
|
7
7
|
template_group.find(:person).should eql(subtemplate)
|
8
8
|
template_group.find('person').should eql(subtemplate)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should wrap a template string in the engine if it is not one' do
|
12
|
+
subtemplate = Slippers::Engine.new('Hello $first$ $last$')
|
13
|
+
template_group = Slippers::TemplateGroup.new(:templates => {:person => 'Hello $first$ $last$'})
|
14
|
+
template_group.find(:person).should eql(subtemplate)
|
15
|
+
template_group.find('person').should eql(subtemplate)
|
9
16
|
end
|
10
17
|
|
11
18
|
it 'should return nil if it cannot find the right template' do
|
@@ -15,7 +22,7 @@ describe Slippers::TemplateGroup do
|
|
15
22
|
end
|
16
23
|
|
17
24
|
it 'should look in the super template group if it cannot find the template' do
|
18
|
-
template =
|
25
|
+
template = Slippers::Engine.new('Hello $first$ $last$')
|
19
26
|
super_template_group = Slippers::TemplateGroup.new(:templates => {:person => template})
|
20
27
|
template_group = Slippers::TemplateGroup.new(:templates => {}, :super_group => super_template_group)
|
21
28
|
template_group.find(:person).should eql(template)
|
@@ -41,5 +48,5 @@ describe Slippers::TemplateGroup do
|
|
41
48
|
template_group.has_registered?(date.class).should be_false
|
42
49
|
template_group.render(date).should eql('')
|
43
50
|
end
|
44
|
-
|
51
|
+
|
45
52
|
end
|
@@ -3,24 +3,24 @@ require File.dirname(__FILE__) + '/spec_helper'
|
|
3
3
|
describe Slippers::TemplateGroupDirectory do
|
4
4
|
|
5
5
|
it 'should find the file in the directory folder' do
|
6
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views')
|
6
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'])
|
7
7
|
template_group.find('index').should eql(Slippers::Engine.new('Hey foo', :template_group => template_group))
|
8
8
|
template_group.find('person/age').should eql(Slippers::Engine.new('The age for him is $age$', :template_group => template_group))
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'should return nil if it cannot find the file in the directory folder' do
|
12
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views')
|
12
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'])
|
13
13
|
template_group.find('person/not_found').should eql(nil)
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'should read the st template file and return a new slipers engine for it' do
|
17
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views')
|
17
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'])
|
18
18
|
template_group.find('index').should eql(Slippers::Engine.new('Hey foo', :template_group => template_group))
|
19
19
|
template_group.find('person/age').should eql(Slippers::Engine.new('The age for him is $age$', :template_group => template_group))
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should load the ruby file found in the directory folder' do
|
23
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views')
|
23
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'])
|
24
24
|
template_group.find('person/date_renderer').class.should eql(DateRenderer)
|
25
25
|
template_group.find('money').class.should eql(Money)
|
26
26
|
end
|
@@ -28,9 +28,16 @@ describe Slippers::TemplateGroupDirectory do
|
|
28
28
|
it 'should look in the super template group if it cannot find the template' do
|
29
29
|
template = stub 'template'
|
30
30
|
super_template_group = Slippers::TemplateGroup.new(:templates => {:person => template})
|
31
|
-
template_group = Slippers::TemplateGroupDirectory.new('spec/views', :super_group => super_template_group)
|
31
|
+
template_group = Slippers::TemplateGroupDirectory.new(['spec/views'], :super_group => super_template_group)
|
32
32
|
template_group.find('person').should eql(template)
|
33
33
|
template_group.find('not_this').should eql(nil)
|
34
34
|
end
|
35
|
+
|
36
|
+
it 'should look in all the directories provided for the template' do
|
37
|
+
template_group = Slippers::TemplateGroupDirectory.new(['examples/blog', 'spec/views'])
|
38
|
+
template_group.find('index').should eql(Slippers::Engine.new('Hey foo', :template_group => template_group))
|
39
|
+
template_group.find('person/age').should eql(Slippers::Engine.new('The age for him is $age$', :template_group => template_group))
|
40
|
+
end
|
41
|
+
|
35
42
|
|
36
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starapor-slippers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sarah Taraporewalla
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-27 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|