starapor-slippers 0.0.0

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 (68) hide show
  1. data/LICENSE +20 -0
  2. data/README +35 -0
  3. data/Rakefile +61 -0
  4. data/VERSION.yml +4 -0
  5. data/examples/blog/README +3 -0
  6. data/examples/blog/blog.db +0 -0
  7. data/examples/blog/controller/main.rb +29 -0
  8. data/examples/blog/model/entry.rb +30 -0
  9. data/examples/blog/public/styles/blog.css +132 -0
  10. data/examples/blog/spec/blog.rb +87 -0
  11. data/examples/blog/start.rb +7 -0
  12. data/examples/blog/view/edit.st +17 -0
  13. data/examples/blog/view/edit.xhtml +17 -0
  14. data/examples/blog/view/entry.st +12 -0
  15. data/examples/blog/view/index.st +4 -0
  16. data/examples/blog/view/index.xhtml +17 -0
  17. data/examples/blog/view/layout.st +11 -0
  18. data/examples/blog/view/layout.xhtml +11 -0
  19. data/examples/blog/view/new.st +16 -0
  20. data/examples/blog/view/new.xhtml +16 -0
  21. data/examples/main_controller.rb +16 -0
  22. data/examples/start.rb +7 -0
  23. data/examples/todolist/README +1 -0
  24. data/examples/todolist/public/favicon.ico +0 -0
  25. data/examples/todolist/public/js/jquery.js +1923 -0
  26. data/examples/todolist/public/ramaze.png +0 -0
  27. data/examples/todolist/spec/todolist.rb +133 -0
  28. data/examples/todolist/src/controller/main.rb +71 -0
  29. data/examples/todolist/src/element/page.rb +31 -0
  30. data/examples/todolist/src/model.rb +14 -0
  31. data/examples/todolist/start.rb +11 -0
  32. data/examples/todolist/template/index.st +39 -0
  33. data/examples/todolist/template/index.xhtml +17 -0
  34. data/examples/todolist/template/new.st +41 -0
  35. data/examples/todolist/template/new.xhtml +7 -0
  36. data/examples/todolist/template/tasks.st +6 -0
  37. data/examples/todolist/todolist.db +7 -0
  38. data/examples/todolist.db +5 -0
  39. data/examples/view/index.st +8 -0
  40. data/examples/view/person/age.st +1 -0
  41. data/examples/view/person/index.st +2 -0
  42. data/examples/view/person/name.st +1 -0
  43. data/lib/engine/binding_wrapper.rb +10 -0
  44. data/lib/engine/engine.rb +26 -0
  45. data/lib/engine/file_template.rb +12 -0
  46. data/lib/engine/slippers.treetop +109 -0
  47. data/lib/engine/slippers_nodes.rb +90 -0
  48. data/lib/engine/template.rb +17 -0
  49. data/lib/engine/template_group.rb +20 -0
  50. data/lib/engine/template_group_directory.rb +39 -0
  51. data/lib/ramazeTemplates/0001-SarahTaraporewalla-adding-new-template-file-for-sli.patch +25 -0
  52. data/lib/ramazeTemplates/slippers.rb +25 -0
  53. data/lib/slippers.rb +14 -0
  54. data/spec/binding_wrapper.rb +14 -0
  55. data/spec/engine.rb +76 -0
  56. data/spec/file_template.rb +9 -0
  57. data/spec/parser.rb +111 -0
  58. data/spec/person_template.st +1 -0
  59. data/spec/slippers_spec.rb +5 -0
  60. data/spec/spec_helper.rb +14 -0
  61. data/spec/template_group.rb +24 -0
  62. data/spec/template_group_directory.rb +38 -0
  63. data/spec/views/index.st +1 -0
  64. data/spec/views/money.rb +2 -0
  65. data/spec/views/person/age.st +1 -0
  66. data/spec/views/person/date_renderer.rb +5 -0
  67. data/spec/views/person/name.st +1 -0
  68. metadata +151 -0
@@ -0,0 +1,20 @@
1
+ module Slippers
2
+ class TemplateGroup
3
+ def initialize(params={})
4
+ @templates = params[:templates]
5
+ @super_group = params[:super_group]
6
+ end
7
+
8
+ def find(subtemplate)
9
+ return nil unless @templates
10
+ return @templates[subtemplate.to_sym] if @templates.include?(subtemplate.to_sym)
11
+ find_in_super_group(subtemplate)
12
+ end
13
+
14
+ private
15
+ def find_in_super_group(subtemplate)
16
+ return nil unless @super_group
17
+ @super_group.find(subtemplate)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,39 @@
1
+ module Slippers
2
+ class TemplateGroupDirectory < TemplateGroup
3
+ def initialize(directory_path, params={})
4
+ @directory_path = directory_path
5
+ @super_group = params[:super_group]
6
+ end
7
+ attr_reader :directory_path
8
+
9
+ def find(subtemplate)
10
+
11
+ file_name = @directory_path + '/' + subtemplate + '.st'
12
+ return find_renderer(subtemplate) unless File.exist?(file_name)
13
+ Engine.new(FileTemplate.new(file_name).template, :template_group => self)
14
+
15
+ end
16
+
17
+ def eql?(other)
18
+ return false unless other
19
+ directory_path.eql?(other.directory_path)
20
+ end
21
+ def hash
22
+ @directory_path.hash
23
+ end
24
+
25
+ private
26
+ def find_renderer(subtemplate)
27
+ file_name = @directory_path + '/' + subtemplate + '.rb'
28
+ return find_in_super_group(subtemplate) unless File.exist?(file_name)
29
+ renderer_name = subtemplate.split('/')[-1]
30
+ load File.expand_path(file_name)
31
+ renderer_name.camelize.constantize.new
32
+ end
33
+
34
+ def find_in_super_group(subtemplate)
35
+ return nil unless @super_group
36
+ @super_group.find(subtemplate)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,25 @@
1
+ From 5a6c869d4709ce84d7c07b5dd33cf06e39c0111e Mon Sep 17 00:00:00 2001
2
+ From: Sarah Taraporewalla <sarah.tarap@gmail.com>
3
+ Date: Mon, 16 Feb 2009 20:44:08 +0000
4
+ Subject: [PATCH] SarahTaraporewalla: adding new template file for slippers template engine
5
+
6
+ ---
7
+ lib/ramaze/template.rb | 2 +-
8
+ 1 files changed, 1 insertions(+), 1 deletions(-)
9
+
10
+ diff --git a/lib/ramaze/template.rb b/lib/ramaze/template.rb
11
+ index 096816b..99f1f94 100644
12
+ --- a/lib/ramaze/template.rb
13
+ +++ b/lib/ramaze/template.rb
14
+ @@ -18,7 +18,7 @@ module Ramaze
15
+
16
+ AVAILABLE_ENGINES = %w[
17
+ Amrita2 Builder Erubis Haml Liquid Markaby Maruku Nagoro None RedCloth
18
+ - Remarkably Sass Tagz Tenjin XSLT
19
+ + Remarkably Sass Slippers Tagz Tenjin XSLT
20
+ ]
21
+
22
+ AVAILABLE_ENGINES.each do |const|
23
+ --
24
+ 1.6.1
25
+
@@ -0,0 +1,25 @@
1
+ require '/Users/starapor/Development/slippers/slippers'
2
+
3
+ module Ramaze
4
+ module Template
5
+ class Slippers < Template
6
+
7
+ ENGINES[self] = %w[ st ]
8
+ class << self
9
+ def transform(action)
10
+ slippers = wrap_compile(action)
11
+ object_to_render = ::Slippers::BindingWrapper.new(action.binding)
12
+ slippers.render(object_to_render)
13
+ end
14
+
15
+ def compile(action, template)
16
+ subtemplates = action.controller.trait[:slippers_options] || {}
17
+
18
+ template_group_directory = ::Slippers::TemplateGroupDirectory.new(Global.view_root)
19
+ template_group = ::Slippers::TemplateGroup.new(:super_group => template_group_directory, :templates => subtemplates)
20
+ ::Slippers::Engine.new(template, :template_group => template_group)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
data/lib/slippers.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'treetop'
3
+ require 'active_support'
4
+
5
+ require File.dirname(__FILE__) + '/engine/template'
6
+ require File.dirname(__FILE__) + '/engine/file_template'
7
+ require File.dirname(__FILE__) + '/engine/template_group'
8
+ require File.dirname(__FILE__) + '/engine/template_group_directory'
9
+ require File.dirname(__FILE__) + '/engine/engine'
10
+ require File.dirname(__FILE__) + '/engine/binding_wrapper'
11
+ require File.dirname(__FILE__) + '/engine/slippers_nodes'
12
+
13
+
14
+
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Slippers::BindingWrapper do
4
+ def f
5
+ @a = 22
6
+ @b = 33
7
+ binding
8
+ end
9
+
10
+ it "should evaluate the bindings" do
11
+ bindings_wrapper = Slippers::BindingWrapper.new(f())
12
+ bindings_wrapper['a'].should eql(22)
13
+ end
14
+ end
data/spec/engine.rb ADDED
@@ -0,0 +1,76 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Slippers::Engine do
4
+ before do
5
+ template = 'Hello $first$ $last$'
6
+ @engine = Slippers::Engine.new(template)
7
+ end
8
+
9
+ it "should render a template without any holes" do
10
+ template = "This is a string without any holes in it"
11
+ engine = Slippers::Engine.new(template)
12
+ engine.render.should eql("This is a string without any holes in it")
13
+ end
14
+
15
+ it "should fill in a hole within a template" do
16
+ template = "This is a string with a message of $message$"
17
+ engine = Slippers::Engine.new(template)
18
+ engine.render(:message => "hello world").should eql("This is a string with a message of hello world")
19
+ end
20
+
21
+ it "should render a subtemplate within a template" do
22
+ subtemplate = Slippers::Engine.new("this is a subtemplate")
23
+ template_group = Slippers::TemplateGroup.new(:templates => {:message => subtemplate})
24
+ template = "This is a template and then $message()$"
25
+ engine = Slippers::Engine.new(template, :template_group => template_group)
26
+ engine.render.should eql("This is a template and then this is a subtemplate")
27
+ end
28
+
29
+ it "should apply a template to an attribute" do
30
+ subtemplate = Slippers::Engine.new("this is a subtemplate with a message of $saying$")
31
+ template_group = Slippers::TemplateGroup.new(:templates => {:message_subtemplate => subtemplate})
32
+ template = "This is a template and then $message:message_subtemplate()$!"
33
+ engine = Slippers::Engine.new(template, :template_group => template_group)
34
+ engine.render(:message => {:saying => 'hello world'}).should eql("This is a template and then this is a subtemplate with a message of hello world!")
35
+ end
36
+
37
+ it "should apply an anonymous subtemplate to an attribute" do
38
+ template = "This is a template and then $message:{this is a subtemplate with a message of $saying$}$!"
39
+ engine = Slippers::Engine.new(template)
40
+ engine.render(:message => {:saying => 'hello world'}).should eql("This is a template and then this is a subtemplate with a message of hello world!")
41
+ end
42
+
43
+ it "should render a subtemplate using different rendering technologies" do
44
+ age_renderer = AgeRenderer.new
45
+ subtemplate = Slippers::Engine.new('$first$ $last$')
46
+ person = OpenStruct.new({:name => {:first => 'Fred', :last => 'Flinstone'}, :dob => Date.new(DateTime.now.year - 34, 2, 4)})
47
+ template_group = Slippers::TemplateGroup.new(:templates => {:name => subtemplate, :age => age_renderer})
48
+ engine = Slippers::Engine.new("Introducing $name:name()$ who is $dob:age()$.", :template_group => template_group)
49
+ engine.render(person).should eql("Introducing Fred Flinstone who is 34 years old.")
50
+ end
51
+
52
+ it 'should render a bindings wrapper' do
53
+ @first = 'fred'
54
+ @last = 'flinstone'
55
+
56
+ person_binding = Slippers::BindingWrapper.new(binding)
57
+ @engine.render(person_binding).should eql('Hello fred flinstone')
58
+ end
59
+
60
+ it 'should render a list of objects' do
61
+ subtemplate = Slippers::Engine.new('Hello $first$ $last$ ')
62
+ template_group = Slippers::TemplateGroup.new(:templates => {:person => subtemplate})
63
+ template = 'Say: $people:person()$'
64
+ @people = [OpenStruct.new({:first => 'fred', :last => 'flinstone'}), OpenStruct.new({:first => 'barney', :last => 'rubble'})]
65
+
66
+ engine = Slippers::Engine.new(template, :template_group => template_group)
67
+ engine.render(Slippers::BindingWrapper.new(binding)).should eql('Say: Hello fred flinstone Hello barney rubble ')
68
+ end
69
+ end
70
+
71
+ class AgeRenderer
72
+ def render(date)
73
+ age = DateTime.now.year - date.year
74
+ age.to_s + " years old"
75
+ end
76
+ end
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Slippers::FileTemplate, " when rendering" do
4
+ it "should read the template from a file" do
5
+ template_file = Slippers::FileTemplate.new('spec/person_template.st')
6
+ template_file.template.should eql('This is a $template$')
7
+ end
8
+ end
9
+
data/spec/parser.rb ADDED
@@ -0,0 +1,111 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ class Person
4
+ def initialize(first, last)
5
+ @first, @last = first, last
6
+ end
7
+ attr_reader :first, :last
8
+ def to_s
9
+ first + ' ' + last
10
+ end
11
+ end
12
+ describe SlippersParser do
13
+
14
+ before(:each) do
15
+ @parser = SlippersParser.new
16
+ end
17
+
18
+ it "should return the string unparsed when there are no keywords in it" do
19
+ @parser.parse('').eval(nil).should eql('')
20
+ @parser.parse(' ').eval(nil).should eql(' ')
21
+ @parser.parse('this should be returned unchanged').eval.should eql('this should be returned unchanged')
22
+ @parser.parse(' this should be returned unchanged ').eval.should eql(' this should be returned unchanged ')
23
+ @parser.parse('this should be 1234567890 ').eval.should eql('this should be 1234567890 ')
24
+ @parser.parse('this should be abc1234567890 ').eval.should eql('this should be abc1234567890 ')
25
+ @parser.parse('this should be !@£%^&*()').eval.should eql('this should be !@£%^&*()')
26
+ end
27
+
28
+ it 'should find the keyword within the delimiters' do
29
+ message = OpenStruct.new({:message => 'the message', :name => 'fred'})
30
+ @parser.parse('$message$').eval(message).should eql('the message')
31
+ @parser.parse('$message$ for $name$').eval(message).should eql('the message for fred')
32
+ @parser.parse('we want to find $message$').eval(message).should eql('we want to find the message')
33
+ @parser.parse('$message$ has spoken').eval(message).should eql('the message has spoken')
34
+ @parser.parse('Yes! $message$ has spoken').eval(message).should eql('Yes! the message has spoken')
35
+ end
36
+
37
+ it 'should parse the subtemplate found within the delimiters' do
38
+ template = Slippers::Engine.new('template for this')
39
+ template_with_underscore = Slippers::Engine.new('template with underscore')
40
+ template_group = Slippers::TemplateGroup.new(:templates => {:template => template, :template_with_underscore => template_with_underscore})
41
+ @parser.parse('$template()$').eval(nil, template_group).should eql('template for this')
42
+ @parser.parse('Stuff before $template()$ and after').eval(nil, template_group).should eql('Stuff before template for this and after')
43
+ @parser.parse('then there is $template_with_underscore()$').eval(nil, template_group).should eql('then there is template with underscore')
44
+ end
45
+
46
+ it 'should parse an anonymous subtemplate' do
47
+ @parser.parse('$people:{template for this $name$}$').eval(:people => {:name => 'fred'}).should eql('template for this fred')
48
+ @parser.parse('${template for this $name$}$').eval(:name => 'fred').should eql('template for this fred')
49
+ end
50
+
51
+ it 'should apply the attribute to a subtemplate when parsing it' do
52
+ subtemplate = Slippers::Engine.new('Hello $first$ $last$')
53
+ template_group = Slippers::TemplateGroup.new(:templates => {:person => subtemplate})
54
+ person = OpenStruct.new({:name => OpenStruct.new({:first => 'fred', :last => 'flinstone'})})
55
+ @parser.parse('$name:person()$').eval(person, template_group).should eql('Hello fred flinstone')
56
+ end
57
+
58
+ it 'should not match on escaped delimiters' do
59
+ #@parser.parse('stuff \$notmatched\$').eval.should eql('stuff \$notmatched\$')
60
+ end
61
+
62
+ it "should render a list of objects" do
63
+ people = [OpenStruct.new({:name => 'fred'}), OpenStruct.new({:name => 'barney'}) ]
64
+ @parser.parse('this is $name$').eval(people).should eql("this is fredbarney")
65
+ end
66
+
67
+ it "should apply a list of objects to subtemplates" do
68
+ people = [ Person.new('fred', 'flinstone'), Person.new('barney', 'rubble') ]
69
+ subtemplate = Slippers::Engine.new('this is $first$ $last$ ')
70
+ template_group = Slippers::TemplateGroup.new(:templates => {:person => subtemplate})
71
+ object_to_render = OpenStruct.new({:people => people})
72
+
73
+ @parser.parse('$people:person()$').eval(object_to_render, template_group).should eql("this is fred flinstone this is barney rubble ")
74
+ end
75
+
76
+ it "should substitue in an empty string when the subtemplate cannot be found" do
77
+ person = OpenStruct.new({:name => 'red'})
78
+ @parser.parse("This is the unknown template $name:unknown()$!").eval(person).should eql("This is the unknown template !")
79
+ end
80
+
81
+ it "should substitute in an empty string when the attribute cannot be found" do
82
+ @parser.parse("This is the $adjective$ template with $message$.").eval(OpenStruct.new).should eql("This is the template with .")
83
+ end
84
+
85
+ it "should parse the file template from the template group" do
86
+ template_group = Slippers::TemplateGroupDirectory.new('spec/views')
87
+ name = OpenStruct.new({:first => 'fred', :last => 'flinestone'})
88
+ people = OpenStruct.new({:fred => name})
89
+ @parser.parse("should parse $person/name()$").eval(name, template_group).should eql("should parse fred flinestone")
90
+ @parser.parse("should parse $fred:person/name()$").eval(people, template_group).should eql("should parse fred flinestone")
91
+ end
92
+
93
+ it "should convert attribute to string" do
94
+ fred = OpenStruct.new({:name => 'fred', :dob => DateTime.new(1983, 1, 2)})
95
+ template_group = Slippers::TemplateGroup.new(:templates => {:date => Slippers::Engine.new('$year$')} )
96
+ @parser.parse("This is $name$ who was born in $dob:date()$").eval(fred, template_group).should eql('This is fred who was born in 1983')
97
+ end
98
+
99
+ it "should render a hash" do
100
+ hash_object = {:title => 'Domain driven design', :author => 'Eric Evans'}
101
+ @parser.parse("should parse $title$ by $author$").eval(hash_object).should eql("should parse Domain driven design by Eric Evans")
102
+ end
103
+
104
+ it 'should return an empty string if the subtemplate does not respond to render' do
105
+ template_group = Slippers::TemplateGroup.new(:templates => {:not_a_renderer => stub('renderer')})
106
+ @parser.parse("$not_a_renderer()$").eval(stub('object'), template_group).should eql('')
107
+ end
108
+
109
+ end
110
+
111
+
@@ -0,0 +1 @@
1
+ This is a $template$
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "Slippers" do
4
+
5
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+
5
+ require 'slippers'
6
+ require 'ostruct'
7
+ require 'date'
8
+ require 'mocha'
9
+ require 'tempfile'
10
+
11
+ Spec::Runner.configure do |config|
12
+
13
+ end
14
+
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Slippers::TemplateGroup do
4
+ it 'should find the right template' do
5
+ subtemplate = Slippers::Engine.new('Hello $first$ $last$')
6
+ template_group = Slippers::TemplateGroup.new(:templates => {:person => subtemplate})
7
+ template_group.find(:person).should eql(subtemplate)
8
+ template_group.find('person').should eql(subtemplate)
9
+ end
10
+
11
+ it 'should return nil if it cannot find the right template' do
12
+ template_group = Slippers::TemplateGroup.new()
13
+ template_group.find(:not_this).should eql(nil)
14
+ template_group.find('not_this').should eql(nil)
15
+ end
16
+
17
+ it 'should look in the super template group if it cannot find the template' do
18
+ template = stub 'template'
19
+ super_template_group = Slippers::TemplateGroup.new(:templates => {:person => template})
20
+ template_group = Slippers::TemplateGroup.new(:templates => {}, :super_group => super_template_group)
21
+ template_group.find(:person).should eql(template)
22
+ template_group.find(:not_this).should eql(nil)
23
+ end
24
+ end
@@ -0,0 +1,38 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Slippers::TemplateGroupDirectory do
4
+
5
+ it 'should find the file in the directory folder' do
6
+ template_group = Slippers::TemplateGroupDirectory.new('spec/views')
7
+ template_group.find('index').should eql(Slippers::Engine.new('Hey foo', :template_group => template_group))
8
+ template_group.find('person/age').should eql(Slippers::Engine.new('The age for him is $age$', :template_group => template_group))
9
+ end
10
+
11
+ it 'should return nil if it cannot find the file in the directory folder' do
12
+ template_group = Slippers::TemplateGroupDirectory.new('spec/views')
13
+ template_group.find('person/not_found').should eql(nil)
14
+ end
15
+
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')
18
+ template_group.find('index').should eql(Slippers::Engine.new('Hey foo', :template_group => template_group))
19
+ template_group.find('person/age').should eql(Slippers::Engine.new('The age for him is $age$', :template_group => template_group))
20
+ end
21
+
22
+ it 'should load the ruby file found in the directory folder' do
23
+ template_group = Slippers::TemplateGroupDirectory.new('spec/views')
24
+ template_group.find('person/date_renderer').class.should eql(DateRenderer)
25
+ template_group.find('money').class.should eql(Money)
26
+ end
27
+
28
+ it 'should look in the super template group if it cannot find the template' do
29
+ template = stub 'template'
30
+ super_template_group = Slippers::TemplateGroup.new(:templates => {:person => template})
31
+ template_group = Slippers::TemplateGroupDirectory.new('spec/views', :super_group => super_template_group)
32
+ template_group.find('person').should eql(template)
33
+ template_group.find('not_this').should eql(nil)
34
+ end
35
+
36
+
37
+
38
+ end
@@ -0,0 +1 @@
1
+ Hey foo
@@ -0,0 +1,2 @@
1
+ class Money
2
+ end
@@ -0,0 +1 @@
1
+ The age for him is $age$
@@ -0,0 +1,5 @@
1
+ class DateRenderer
2
+ def render(date)
3
+ date.day + ' ' + date.month + ' ' + date.year
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ $first$ $last$
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: starapor-slippers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sarah Taraporewalla
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-25 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: schacon-git
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: A strict templating library for ruby
26
+ email: me@sarahtaraporewalla.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - LICENSE
35
+ - Rakefile
36
+ - README
37
+ - VERSION.yml
38
+ - lib/engine
39
+ - lib/engine/binding_wrapper.rb
40
+ - lib/engine/engine.rb
41
+ - lib/engine/file_template.rb
42
+ - lib/engine/slippers.treetop
43
+ - lib/engine/slippers_nodes.rb
44
+ - lib/engine/template.rb
45
+ - lib/engine/template_group.rb
46
+ - lib/engine/template_group_directory.rb
47
+ - lib/ramazeTemplates
48
+ - lib/ramazeTemplates/0001-SarahTaraporewalla-adding-new-template-file-for-sli.patch
49
+ - lib/ramazeTemplates/slippers.rb
50
+ - lib/slippers.rb
51
+ - spec/binding_wrapper.rb
52
+ - spec/engine.rb
53
+ - spec/file_template.rb
54
+ - spec/parser.rb
55
+ - spec/person_template.st
56
+ - spec/slippers_spec.rb
57
+ - spec/spec_helper.rb
58
+ - spec/template_group.rb
59
+ - spec/template_group_directory.rb
60
+ - spec/views
61
+ - spec/views/index.st
62
+ - spec/views/money.rb
63
+ - spec/views/person
64
+ - spec/views/person/age.st
65
+ - spec/views/person/date_renderer.rb
66
+ - spec/views/person/name.st
67
+ - examples/blog
68
+ - examples/blog/blog.db
69
+ - examples/blog/controller
70
+ - examples/blog/controller/main.rb
71
+ - examples/blog/model
72
+ - examples/blog/model/entry.rb
73
+ - examples/blog/public
74
+ - examples/blog/public/styles
75
+ - examples/blog/public/styles/blog.css
76
+ - examples/blog/README
77
+ - examples/blog/spec
78
+ - examples/blog/spec/blog.rb
79
+ - examples/blog/start.rb
80
+ - examples/blog/view
81
+ - examples/blog/view/edit.st
82
+ - examples/blog/view/edit.xhtml
83
+ - examples/blog/view/entry.st
84
+ - examples/blog/view/index.st
85
+ - examples/blog/view/index.xhtml
86
+ - examples/blog/view/layout.st
87
+ - examples/blog/view/layout.xhtml
88
+ - examples/blog/view/new.st
89
+ - examples/blog/view/new.xhtml
90
+ - examples/main_controller.rb
91
+ - examples/start.rb
92
+ - examples/todolist
93
+ - examples/todolist/public
94
+ - examples/todolist/public/favicon.ico
95
+ - examples/todolist/public/js
96
+ - examples/todolist/public/js/jquery.js
97
+ - examples/todolist/public/ramaze.png
98
+ - examples/todolist/Rakefile
99
+ - examples/todolist/README
100
+ - examples/todolist/spec
101
+ - examples/todolist/spec/todolist.rb
102
+ - examples/todolist/src
103
+ - examples/todolist/src/controller
104
+ - examples/todolist/src/controller/main.rb
105
+ - examples/todolist/src/element
106
+ - examples/todolist/src/element/page.rb
107
+ - examples/todolist/src/model.rb
108
+ - examples/todolist/start.rb
109
+ - examples/todolist/template
110
+ - examples/todolist/template/index.st
111
+ - examples/todolist/template/index.xhtml
112
+ - examples/todolist/template/new.st
113
+ - examples/todolist/template/new.xhtml
114
+ - examples/todolist/template/tasks.st
115
+ - examples/todolist/todolist.db
116
+ - examples/todolist.db
117
+ - examples/view
118
+ - examples/view/index.st
119
+ - examples/view/person
120
+ - examples/view/person/age.st
121
+ - examples/view/person/index.st
122
+ - examples/view/person/name.st
123
+ has_rdoc: true
124
+ homepage: http://github.com/starapor/slippers
125
+ post_install_message:
126
+ rdoc_options:
127
+ - --inline-source
128
+ - --charset=UTF-8
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: "0"
136
+ version:
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: "0"
142
+ version:
143
+ requirements: []
144
+
145
+ rubyforge_project:
146
+ rubygems_version: 1.2.0
147
+ signing_key:
148
+ specification_version: 2
149
+ summary: A strict templating library for Ruby
150
+ test_files: []
151
+