milksteak 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,21 @@ module FragmentHelper
2
2
  def fragment(name)
3
3
  Milksteak::Fragment.render(name)
4
4
  end
5
+
6
+ def hash_attribute(hash, name)
7
+ if hash.keys.include?(name)
8
+ return hash[name]
9
+ elsif hash.keys.include?(name.to_sym)
10
+ return hash[name.to_sym]
11
+ else
12
+ nil
13
+ end
14
+ end
15
+
16
+ def inspect(obj)
17
+ return obj.inspect
18
+ end
19
+
5
20
  end
6
21
 
7
22
  Liquid::Template.register_filter(FragmentHelper)
@@ -1,3 +1,3 @@
1
1
  module Milksteak
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -37,10 +37,10 @@ module Milksteak
37
37
  p
38
38
  end
39
39
 
40
- def self.render(name)
40
+ def self.render(name, params = {})
41
41
  begin
42
42
  p = self.load(name, "r")
43
- p.render
43
+ p.render(params)
44
44
  rescue Errno::ENOENT => e
45
45
  ""
46
46
  end
@@ -70,11 +70,11 @@ module Milksteak
70
70
  end
71
71
 
72
72
  # todo: test
73
- def render
74
- rendered = Liquid::Template.parse(self.content).render(self.data)
73
+ def render(params = {})
74
+ rendered = Liquid::Template.parse(self.content).render(self.data.merge("params" => params))
75
75
  if self.data["layout"]
76
76
  layout = Milksteak::Layout.load(self.data["layout"])
77
- data = layout.data.merge("yield" => rendered)
77
+ data = layout.data.merge("yield" => rendered, "params" => params)
78
78
  rendered = Liquid::Template.parse(layout.content).render(data)
79
79
  end
80
80
  if self.data["format"]
@@ -0,0 +1 @@
1
+ This is a Test Object. {{ params | hash_attribute, "foo" }}
@@ -4,4 +4,12 @@ describe Milksteak::Fragment do
4
4
  it "should use the fragments/ folder" do
5
5
  Milksteak::Fragment.folder.should == "fragments"
6
6
  end
7
+
8
+ it "should allow sub-dir fragments" do
9
+ f = File.open(File.join(File.dirname(__FILE__), "../fixtures/objs/sample_obj.yml"), "r")
10
+ f.stub(:save).and_return true
11
+ File.should_receive(:new).with("/tmp/milk_site/fragments/section/sub-folder/fragment-name.yml", "r").and_return f
12
+ c = Milksteak::Fragment.load("section/sub-folder/fragment-name")
13
+ end
14
+
7
15
  end
@@ -44,6 +44,13 @@ describe TestYmlObject do
44
44
  content.should == "This is a Test Object\n"
45
45
  end
46
46
 
47
+ it "should accept additional params for rendering" do
48
+ f = File.open(File.join(File.dirname(__FILE__), "../fixtures/objs/sample_obj_with_params.yml"), "r")
49
+ File.should_receive(:new).with("/tmp/milk_site/objs/home.yml", "r").and_return f
50
+ content = TestYmlObject.render("home", {:foo => "This is from params."})
51
+ content.should == "This is a Test Object. This is from params.\n"
52
+ end
53
+
47
54
  it "should render obj as markdown when specified as format" do
48
55
  f = File.open(File.join(File.dirname(__FILE__), "../fixtures/objs/sample_obj.yml"), "r")
49
56
  File.should_receive(:new).with("/tmp/milk_site/objs/home.yml", "r").and_return f
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milksteak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
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-05-24 00:00:00.000000000Z
12
+ date: 2012-06-01 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &21507120 !ruby/object:Gem::Requirement
16
+ requirement: &23900640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *21507120
24
+ version_requirements: *23900640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard-rspec
27
- requirement: &21506660 !ruby/object:Gem::Requirement
27
+ requirement: &23900220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *21506660
35
+ version_requirements: *23900220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: webmock
38
- requirement: &21506200 !ruby/object:Gem::Requirement
38
+ requirement: &23899800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *21506200
46
+ version_requirements: *23899800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rack-test
49
- requirement: &21505780 !ruby/object:Gem::Requirement
49
+ requirement: &23899380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *21505780
57
+ version_requirements: *23899380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: liquid
60
- requirement: &21505340 !ruby/object:Gem::Requirement
60
+ requirement: &23898960 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *21505340
68
+ version_requirements: *23898960
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: BlueCloth
71
- requirement: &21504880 !ruby/object:Gem::Requirement
71
+ requirement: &23898540 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *21504880
79
+ version_requirements: *23898540
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sinatra
82
- requirement: &21504400 !ruby/object:Gem::Requirement
82
+ requirement: &23927100 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *21504400
90
+ version_requirements: *23927100
91
91
  description: ! 'Super tiny and simple ruby-based cms that uses yml for content '
92
92
  email:
93
93
  - bryan.thompson@firespring.com
@@ -447,6 +447,7 @@ files:
447
447
  - spec/fixtures/fragments/sample_fragment.yml
448
448
  - spec/fixtures/layouts/primary.yml
449
449
  - spec/fixtures/objs/sample_obj.yml
450
+ - spec/fixtures/objs/sample_obj_with_params.yml
450
451
  - spec/fixtures/pages/sample_page.yml
451
452
  - spec/lib/milksteak/cms_spec.rb
452
453
  - spec/models/fragment_spec.rb
@@ -482,6 +483,7 @@ test_files:
482
483
  - spec/fixtures/fragments/sample_fragment.yml
483
484
  - spec/fixtures/layouts/primary.yml
484
485
  - spec/fixtures/objs/sample_obj.yml
486
+ - spec/fixtures/objs/sample_obj_with_params.yml
485
487
  - spec/fixtures/pages/sample_page.yml
486
488
  - spec/lib/milksteak/cms_spec.rb
487
489
  - spec/models/fragment_spec.rb