milk 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/milk/application.rb +6 -4
- data/lib/milk/component.rb +17 -0
- data/lib/milk/fields/component_view.haml +1 -1
- data/lib/milk/fields/xhtml.haml +2 -5
- data/lib/milk/page.rb +39 -16
- data/lib/milk/templates/rackup +1 -2
- data/lib/milk/templates/rakefile +1 -2
- metadata +22 -24
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ spec = Gem::Specification.new do |s|
|
|
5
5
|
s.summary = "Milk is a rack based content management system built for ease of use and simplicity. Milk tastes great with and without cookies."
|
6
6
|
s.description= File.read(File.join(File.dirname(__FILE__), 'README'))
|
7
7
|
s.requirements << 'none'
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
s.author = "Tim Caswell"
|
10
10
|
s.email = "tim@creationix.com"
|
11
11
|
s.homepage = "http://milk.rubyforge.org"
|
data/lib/milk/application.rb
CHANGED
@@ -15,6 +15,8 @@ module Milk
|
|
15
15
|
|
16
16
|
# Fallback to match everything
|
17
17
|
regex = /(.*)/
|
18
|
+
|
19
|
+
puts path
|
18
20
|
|
19
21
|
# Route the request to the right callback
|
20
22
|
action = case
|
@@ -66,12 +68,12 @@ module Milk
|
|
66
68
|
end
|
67
69
|
|
68
70
|
if (action == :preview || action == :save)
|
69
|
-
page = Milk::Page.json_unserialize(YAML.load(req.body.read))
|
71
|
+
page = Milk::Page.json_unserialize(YAML.load(req.body.read), page_name)
|
70
72
|
end
|
71
73
|
|
72
74
|
return action, page_name, page
|
73
75
|
end
|
74
|
-
|
76
|
+
|
75
77
|
# Rack call interface
|
76
78
|
def call(env)
|
77
79
|
req = Rack::Request.new(env)
|
@@ -85,7 +87,7 @@ module Milk
|
|
85
87
|
else
|
86
88
|
html_type = "text/html"
|
87
89
|
end
|
88
|
-
html_type = "text/html"
|
90
|
+
# html_type = "text/html"
|
89
91
|
|
90
92
|
case action
|
91
93
|
when :haxe
|
@@ -97,7 +99,7 @@ module Milk
|
|
97
99
|
when :edit
|
98
100
|
[200, {"Content-Type"=>html_type}, [page.edit]]
|
99
101
|
when :save
|
100
|
-
[200, {"Content-Type"=>html_type}, [page.save
|
102
|
+
[200, {"Content-Type"=>html_type}, [page.save]]
|
101
103
|
when :preview
|
102
104
|
[200, {"Content-Type"=>html_type}, [page.preview]]
|
103
105
|
else
|
data/lib/milk/component.rb
CHANGED
@@ -80,6 +80,23 @@ module Milk
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
+
def haml(filename, context=self, extras={})
|
84
|
+
if block_given?
|
85
|
+
Page.haml(filename, context, extras) { yield }
|
86
|
+
else
|
87
|
+
Page.haml(filename, context, extras)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def partial(filename, vars, extras={})
|
92
|
+
obj = self.dup
|
93
|
+
vars.each do |key, value|
|
94
|
+
obj.instance_variable_set("@#{key}", value)
|
95
|
+
end
|
96
|
+
haml(filename, obj, extras)
|
97
|
+
end
|
98
|
+
|
99
|
+
|
83
100
|
def edit(prefix)
|
84
101
|
@prefix = prefix
|
85
102
|
haml_file = FIELDS_DIR + "/component.haml"
|
@@ -1,2 +1,2 @@
|
|
1
|
-
%div{:class=>"component com_#{index}"}
|
1
|
+
%div{:class=>"component com_#{index}", :title => self.name}
|
2
2
|
= yield
|
data/lib/milk/fields/xhtml.haml
CHANGED
@@ -12,9 +12,8 @@
|
|
12
12
|
body.busy
|
13
13
|
:cursor busy
|
14
14
|
div.component
|
15
|
-
border: 2px solid transparent
|
16
15
|
&:hover
|
17
|
-
border
|
16
|
+
:border 10px solid #08f
|
18
17
|
#framework-logo
|
19
18
|
:position absolute
|
20
19
|
:bottom 0
|
@@ -131,7 +130,7 @@
|
|
131
130
|
%button#cancel_button.toolitem{:title=>'Cancel changes and go to live page.'}
|
132
131
|
%span{:class=>'ui-icon ui-icon-cancel'}
|
133
132
|
Cancel
|
134
|
-
#preview
|
133
|
+
#preview
|
135
134
|
= preview
|
136
135
|
#divider
|
137
136
|
#framework-logo
|
@@ -250,8 +249,6 @@
|
|
250
249
|
evt.stopPropagation();
|
251
250
|
evt.preventDefault();
|
252
251
|
var index = this.className.split("_")[1];
|
253
|
-
console.log(index);
|
254
|
-
console.log(sections);
|
255
252
|
sections.accordion('activate', parseInt(index)+1);
|
256
253
|
});
|
257
254
|
|
data/lib/milk/page.rb
CHANGED
@@ -1,21 +1,44 @@
|
|
1
1
|
module Milk
|
2
2
|
class Page
|
3
|
+
|
4
|
+
attr_reader :title
|
5
|
+
attr_reader :description
|
6
|
+
attr_reader :pagename
|
7
|
+
|
3
8
|
def self.find(pagename)
|
4
|
-
yaml_file = Milk::PAGES_DIR + "/" + pagename
|
9
|
+
yaml_file = Milk::PAGES_DIR + "/" + pagename + ".yml"
|
5
10
|
raise PageNotFoundError unless File.readable? yaml_file
|
6
11
|
page = YAML.load_file(yaml_file)
|
7
12
|
page.instance_variable_set('@pagename', pagename)
|
8
13
|
page.load_settings
|
9
14
|
page
|
10
15
|
end
|
16
|
+
|
17
|
+
def self.haml(filename, context, extras)
|
18
|
+
if block_given?
|
19
|
+
::Haml::Engine.new(File.read(filename), :filename => filename).render(context, extras) do
|
20
|
+
yield
|
21
|
+
end
|
22
|
+
else
|
23
|
+
::Haml::Engine.new(File.read(filename), :filename => filename).render(context, extras)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def haml(filename, context=self, extras={})
|
28
|
+
if block_given?
|
29
|
+
Page.haml(filename, context, extras) { yield }
|
30
|
+
else
|
31
|
+
Page.haml(filename, context, extras)
|
32
|
+
end
|
33
|
+
end
|
11
34
|
|
12
35
|
def to_yaml_properties
|
13
36
|
[:@components, :@title, :@keywords, :@description]
|
14
37
|
end
|
15
38
|
|
16
|
-
def save
|
39
|
+
def save
|
17
40
|
save_settings
|
18
|
-
yaml_file = Milk::PAGES_DIR + "/" + pagename
|
41
|
+
yaml_file = Milk::PAGES_DIR + "/" + @pagename + ".yml"
|
19
42
|
data = YAML.dump(self)
|
20
43
|
File.open(yaml_file, "w") do |file|
|
21
44
|
file.write(data)
|
@@ -23,7 +46,7 @@ module Milk
|
|
23
46
|
data
|
24
47
|
end
|
25
48
|
|
26
|
-
def self.json_unserialize(data)
|
49
|
+
def self.json_unserialize(data, pagename=nil)
|
27
50
|
class_name = data.delete('class')
|
28
51
|
obj = class_name.constantize.allocate
|
29
52
|
data.each do |key, value|
|
@@ -32,6 +55,7 @@ module Milk
|
|
32
55
|
end
|
33
56
|
obj.instance_variable_set("@#{key}", value)
|
34
57
|
end
|
58
|
+
obj.instance_variable_set("@pagename", pagename) if obj.class == Milk::Page
|
35
59
|
obj
|
36
60
|
end
|
37
61
|
|
@@ -48,24 +72,23 @@ module Milk
|
|
48
72
|
end
|
49
73
|
|
50
74
|
def edit
|
51
|
-
|
52
|
-
::Haml::Engine.new(File.read(filename), :filename => filename).render(self)
|
75
|
+
haml(FIELDS_DIR + "/xhtml.haml", self)
|
53
76
|
end
|
54
77
|
|
55
78
|
def preview
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
79
|
+
haml(Milk::COMPONENTS_DIR + "/page.haml", self) do
|
80
|
+
i = 0
|
81
|
+
(@components.collect do |component|
|
82
|
+
haml(FIELDS_DIR + "/component_view.haml", component, {:index=>i}) do
|
83
|
+
i += 1
|
84
|
+
component.view
|
85
|
+
end
|
86
|
+
end).join("\n")
|
87
|
+
end
|
64
88
|
end
|
65
89
|
|
66
90
|
def view
|
67
|
-
|
68
|
-
::Haml::Engine.new(File.read(filename), :filename => filename).render(self) do
|
91
|
+
haml(Milk::COMPONENTS_DIR + "/xhtml.haml", self) do
|
69
92
|
preview
|
70
93
|
end
|
71
94
|
end
|
data/lib/milk/templates/rackup
CHANGED
data/lib/milk/templates/rakefile
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Caswell
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-06-02 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -51,44 +51,42 @@ extensions: []
|
|
51
51
|
extra_rdoc_files: []
|
52
52
|
|
53
53
|
files:
|
54
|
-
- INSTALL
|
55
|
-
- README
|
56
|
-
- Rakefile
|
57
|
-
- test
|
58
|
-
- pkg
|
59
54
|
- bin
|
60
55
|
- bin/milk
|
61
|
-
-
|
56
|
+
- INSTALL
|
62
57
|
- lib
|
63
|
-
- lib/milk.rb
|
64
58
|
- lib/milk
|
65
|
-
- lib/milk/
|
59
|
+
- lib/milk/application.rb
|
60
|
+
- lib/milk/component.rb
|
66
61
|
- lib/milk/field.rb
|
67
|
-
- lib/milk/haxe.rb
|
68
62
|
- lib/milk/fields
|
69
|
-
- lib/milk/fields/component_array.rb
|
70
|
-
- lib/milk/fields/sprite_chooser.haml
|
71
|
-
- lib/milk/fields/sprite_chooser.rb
|
72
|
-
- lib/milk/fields/image_chooser.rb
|
73
|
-
- lib/milk/fields/page_chooser.haml
|
74
|
-
- lib/milk/fields/markdown_field.rb
|
75
63
|
- lib/milk/fields/component.haml
|
64
|
+
- lib/milk/fields/component_array.haml
|
65
|
+
- lib/milk/fields/component_array.rb
|
66
|
+
- lib/milk/fields/component_view.haml
|
76
67
|
- lib/milk/fields/image_chooser.haml
|
68
|
+
- lib/milk/fields/image_chooser.rb
|
77
69
|
- lib/milk/fields/markdown_field.haml
|
78
|
-
- lib/milk/fields/
|
79
|
-
- lib/milk/fields/
|
70
|
+
- lib/milk/fields/markdown_field.rb
|
71
|
+
- lib/milk/fields/page_chooser.haml
|
80
72
|
- lib/milk/fields/page_chooser.rb
|
81
|
-
- lib/milk/fields/
|
73
|
+
- lib/milk/fields/sprite_chooser.haml
|
74
|
+
- lib/milk/fields/sprite_chooser.rb
|
82
75
|
- lib/milk/fields/text_field.haml
|
76
|
+
- lib/milk/fields/text_field.rb
|
83
77
|
- lib/milk/fields/xhtml.haml
|
84
|
-
- lib/milk/
|
78
|
+
- lib/milk/haxe.rb
|
85
79
|
- lib/milk/page.rb
|
80
|
+
- lib/milk/tasks.rb
|
86
81
|
- lib/milk/templates
|
87
|
-
- lib/milk/templates/rackup
|
88
|
-
- lib/milk/templates/restart
|
89
82
|
- lib/milk/templates/bzrignore
|
83
|
+
- lib/milk/templates/rackup
|
90
84
|
- lib/milk/templates/rakefile
|
91
|
-
- lib/milk/
|
85
|
+
- lib/milk/templates/restart
|
86
|
+
- lib/milk.rb
|
87
|
+
- LICENSE
|
88
|
+
- Rakefile
|
89
|
+
- README
|
92
90
|
has_rdoc: false
|
93
91
|
homepage: http://milk.rubyforge.org
|
94
92
|
post_install_message:
|