creationix-milk 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/.document +5 -0
- data/.gitignore +7 -0
- data/LICENSE +27 -0
- data/README.rdoc +7 -0
- data/Rakefile +62 -0
- data/VERSION +1 -0
- data/bin/milk +22 -0
- data/lib/milk.rb +82 -0
- data/lib/milk/application.rb +227 -0
- data/lib/milk/component.rb +142 -0
- data/lib/milk/field.rb +60 -0
- data/lib/milk/fields/component.haml +8 -0
- data/lib/milk/fields/component_array.haml +3 -0
- data/lib/milk/fields/component_array.rb +4 -0
- data/lib/milk/fields/image_chooser.haml +7 -0
- data/lib/milk/fields/image_chooser.rb +26 -0
- data/lib/milk/fields/login.haml +90 -0
- data/lib/milk/fields/markdown_field.haml +1 -0
- data/lib/milk/fields/markdown_field.rb +4 -0
- data/lib/milk/fields/page_chooser.haml +3 -0
- data/lib/milk/fields/page_chooser.rb +17 -0
- data/lib/milk/fields/sprite_chooser.haml +6 -0
- data/lib/milk/fields/sprite_chooser.rb +19 -0
- data/lib/milk/fields/text_field.haml +1 -0
- data/lib/milk/fields/text_field.rb +4 -0
- data/lib/milk/fields/xhtml.haml +253 -0
- data/lib/milk/haxe.rb +139 -0
- data/lib/milk/page.rb +139 -0
- data/lib/milk/tasks.rb +51 -0
- data/milk.gemspec +137 -0
- data/site_template/Rakefile +3 -0
- data/site_template/config.ru +16 -0
- data/site_template/config/config.yaml +31 -0
- data/site_template/config/foot.yaml +3 -0
- data/site_template/config/head.yaml +18 -0
- data/site_template/config/users.yaml +18 -0
- data/site_template/design/0-reset.sass +170 -0
- data/site_template/design/1-text.sass +65 -0
- data/site_template/design/960.sass +305 -0
- data/site_template/design/body.haml +1 -0
- data/site_template/design/body.rb +4 -0
- data/site_template/design/button.haml +2 -0
- data/site_template/design/button.rb +16 -0
- data/site_template/design/foot.haml +1 -0
- data/site_template/design/foot.rb +4 -0
- data/site_template/design/foot.sass +3 -0
- data/site_template/design/head.haml +3 -0
- data/site_template/design/head.rb +4 -0
- data/site_template/design/head.sass +27 -0
- data/site_template/design/page.haml +2 -0
- data/site_template/design/page.sass +7 -0
- data/site_template/design/sprites.sass +0 -0
- data/site_template/design/xhtml.haml +15 -0
- data/site_template/pages/About.yaml +14 -0
- data/site_template/pages/Home.yaml +14 -0
- data/site_template/pages/News.yaml +14 -0
- data/site_template/pages/NotFound.yaml +14 -0
- data/site_template/pages/Products.yaml +14 -0
- data/site_template/public/cache/About/index.html +42 -0
- data/site_template/public/cache/Home/index.html +44 -0
- data/site_template/public/cache/News/index.html +42 -0
- data/site_template/public/cache/Products/index.html +42 -0
- data/site_template/public/favicon.ico +0 -0
- data/site_template/public/images/README.txt +2 -0
- data/site_template/public/js/jquery-1.3.2.min.js +19 -0
- data/site_template/public/js/jquery-ui-1.7.2.custom.min.js +34 -0
- data/site_template/public/js/jquery.json-1.3.min.js +37 -0
- data/site_template/public/robots.txt +0 -0
- data/site_template/public/skin/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/site_template/public/skin/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/site_template/public/skin/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/site_template/public/skin/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/site_template/public/skin/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/site_template/public/skin/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/site_template/public/skin/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/site_template/public/skin/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/site_template/public/skin/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/site_template/public/skin/images/ui-icons_222222_256x240.png +0 -0
- data/site_template/public/skin/images/ui-icons_228ef1_256x240.png +0 -0
- data/site_template/public/skin/images/ui-icons_ef8c08_256x240.png +0 -0
- data/site_template/public/skin/images/ui-icons_ffd27a_256x240.png +0 -0
- data/site_template/public/skin/images/ui-icons_ffffff_256x240.png +0 -0
- data/site_template/public/skin/jquery-ui-1.7.2.custom.css +406 -0
- data/site_template/public/style/style.css +157 -0
- data/site_template/tmp/restart.txt +1 -0
- data/test/milk_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +170 -0
data/lib/milk/haxe.rb
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
module Milk
|
2
|
+
class Haxe
|
3
|
+
HAXE_HEADER_REGEX = /^\/\/ COMPILE_FLAGS (.*)$/
|
4
|
+
HAXE_BIN = Milk::BIN_DIR+"/haxe"
|
5
|
+
ENV['HAXE_LIBRARY_PATH'] = File.absolute_path(Milk::BIN_DIR+"/../haxe/std")
|
6
|
+
HAXE_DIR = Milk::COMPONENTS_DIR + "/haxe"
|
7
|
+
|
8
|
+
def initialize(page_name)
|
9
|
+
@page_name = page_name
|
10
|
+
base_path = HAXE_DIR + "/" + @page_name
|
11
|
+
@haxe = base_path + ".hx"
|
12
|
+
@haxe_swf = @haxe + ".swf"
|
13
|
+
@swfmill = base_path + ".xml"
|
14
|
+
@swfmill_swf = @swfmill + ".swf"
|
15
|
+
|
16
|
+
raise PageNotFoundError if not File.file? @haxe
|
17
|
+
|
18
|
+
# Compile swfmill resource if it exists and the binary is nonexistant/outdated
|
19
|
+
if File.file? @swfmill
|
20
|
+
if (not (File.file?(@swfmill_swf)) or (File.mtime(@swfmill) > File.mtime(@swfmill_swf)))
|
21
|
+
compile_swfmill
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Compile haxe binary if nonexistant/outdated
|
26
|
+
# if a swfmill resource exists, it can outdate the main swf too
|
27
|
+
if (not (File.file?(@haxe_swf)) \
|
28
|
+
or (File.mtime(@haxe) > File.mtime(@haxe_swf)) \
|
29
|
+
or (File.file?(@swfmill_swf) \
|
30
|
+
and File.mtime(@swfmill_swf) > File.mtime(@haxe_swf) \
|
31
|
+
) \
|
32
|
+
)
|
33
|
+
compile_haxe
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def render(mode='view')
|
38
|
+
open(@haxe_swf)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def popen3(*cmd)
|
44
|
+
pw = IO::pipe # pipe[0] for read, pipe[1] for write
|
45
|
+
pr = IO::pipe
|
46
|
+
pe = IO::pipe
|
47
|
+
|
48
|
+
pid = fork{
|
49
|
+
# child
|
50
|
+
fork{
|
51
|
+
# grandchild
|
52
|
+
pw[1].close
|
53
|
+
STDIN.reopen(pw[0])
|
54
|
+
pw[0].close
|
55
|
+
|
56
|
+
pr[0].close
|
57
|
+
STDOUT.reopen(pr[1])
|
58
|
+
pr[1].close
|
59
|
+
|
60
|
+
pe[0].close
|
61
|
+
STDERR.reopen(pe[1])
|
62
|
+
pe[1].close
|
63
|
+
|
64
|
+
exec(*cmd)
|
65
|
+
}
|
66
|
+
exit!(0)
|
67
|
+
}
|
68
|
+
|
69
|
+
pw[0].close
|
70
|
+
pr[1].close
|
71
|
+
pe[1].close
|
72
|
+
Process.waitpid(pid)
|
73
|
+
pi = [pw[1], pr[0], pe[0]]
|
74
|
+
pw[1].sync = true
|
75
|
+
if defined? yield
|
76
|
+
begin
|
77
|
+
return yield(*pi)
|
78
|
+
ensure
|
79
|
+
pi.each{|p| p.close unless p.closed?}
|
80
|
+
end
|
81
|
+
end
|
82
|
+
pi
|
83
|
+
end
|
84
|
+
|
85
|
+
def run_command(*command)
|
86
|
+
popen3(*command) do |stdin, stdout, stderr|
|
87
|
+
stdin.close
|
88
|
+
error = stderr.read
|
89
|
+
if error.length > 0
|
90
|
+
raise ExternalCompilerError.new(error.inspect)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def compile_swfmill
|
96
|
+
command = ["swfmill", "simple", @swfmill, @swfmill_swf]
|
97
|
+
Dir.chdir(Milk::HAXE_DIR)
|
98
|
+
run_command *command
|
99
|
+
end
|
100
|
+
|
101
|
+
def compile_haxe
|
102
|
+
command = [HAXE_BIN,
|
103
|
+
"-swf-version", "9", "--flash-strict",
|
104
|
+
"-swf", @haxe_swf,
|
105
|
+
"-main", @page_name,
|
106
|
+
"-cp", Milk::HAXE_DIR]
|
107
|
+
open @haxe, "r" do |file|
|
108
|
+
line = file.readline
|
109
|
+
if HAXE_HEADER_REGEX =~ line
|
110
|
+
HAXE_HEADER_REGEX.match(line)[1].split(' ').each do |item|
|
111
|
+
command.push(item)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
if File.file? @swfmill_swf
|
116
|
+
# For some reason, haxe doesn't like a full path here, so convert
|
117
|
+
# to relative.
|
118
|
+
command.push('-swf-lib')
|
119
|
+
command.push(@swfmill_swf.split("/").last)
|
120
|
+
end
|
121
|
+
run_command *command
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
# An exception raised by haxe or swfmill.
|
127
|
+
class ExternalCompilerError < StandardError
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
data/lib/milk/page.rb
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
module Milk
|
2
|
+
class Page
|
3
|
+
|
4
|
+
attr_reader :components
|
5
|
+
attr_reader :title
|
6
|
+
attr_reader :description
|
7
|
+
attr_reader :pagename
|
8
|
+
attr_accessor :parent
|
9
|
+
@parent = nil
|
10
|
+
|
11
|
+
PATH_TO_NAME_REGEXP = Regexp.new("#{Milk::PAGES_DIR}\/(.*)\.yaml")
|
12
|
+
|
13
|
+
def self.each_page
|
14
|
+
Dir.glob(Milk::PAGES_DIR + "/**/*.yaml").each do |yaml_file|
|
15
|
+
p = load_file(yaml_file)
|
16
|
+
Milk::Application.join_tree(p, nil)
|
17
|
+
yield p
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.load_file(yaml_file, pagename=nil)
|
22
|
+
pagename ||= PATH_TO_NAME_REGEXP.match(yaml_file)[1]
|
23
|
+
page = YAML.load_file(yaml_file)
|
24
|
+
page.instance_variable_set('@pagename', pagename)
|
25
|
+
page.load_settings
|
26
|
+
page
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.find(pagename)
|
30
|
+
yaml_file = Milk::PAGES_DIR + "/" + pagename + ".yaml"
|
31
|
+
raise PageNotFoundError unless File.readable? yaml_file
|
32
|
+
load_file(yaml_file, pagename)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.haml(filename, context, extras)
|
36
|
+
if block_given?
|
37
|
+
::Haml::Engine.new(File.read(filename), :filename => filename).render(context, extras) do
|
38
|
+
yield
|
39
|
+
end
|
40
|
+
else
|
41
|
+
::Haml::Engine.new(File.read(filename), :filename => filename).render(context, extras)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def haml(filename, context=self, extras={})
|
46
|
+
if block_given?
|
47
|
+
Page.haml(filename, context, extras) { yield }
|
48
|
+
else
|
49
|
+
Page.haml(filename, context, extras)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def to_yaml_properties
|
54
|
+
[:@components, :@title, :@keywords, :@description]
|
55
|
+
end
|
56
|
+
|
57
|
+
def app
|
58
|
+
@parent
|
59
|
+
end
|
60
|
+
|
61
|
+
def save
|
62
|
+
save_settings
|
63
|
+
yaml_file = Milk::PAGES_DIR + "/" + @pagename + ".yaml"
|
64
|
+
data = YAML.dump(self)
|
65
|
+
File.open(yaml_file, "w") do |file|
|
66
|
+
file.write(data)
|
67
|
+
end
|
68
|
+
data
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.json_unserialize(data, pagename=nil)
|
72
|
+
class_name = data.delete('class')
|
73
|
+
obj = class_name.constantize.allocate
|
74
|
+
data.each do |key, value|
|
75
|
+
if value.class == Array
|
76
|
+
value.collect! { |item| json_unserialize(item) }
|
77
|
+
end
|
78
|
+
obj.instance_variable_set("@#{key}", value)
|
79
|
+
end
|
80
|
+
obj.instance_variable_set("@pagename", pagename) if obj.class == Milk::Page
|
81
|
+
obj
|
82
|
+
end
|
83
|
+
|
84
|
+
def load_settings
|
85
|
+
@components.each do |component|
|
86
|
+
component.load_settings
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def save_settings
|
91
|
+
@components.each do |component|
|
92
|
+
component.save_settings
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def edit
|
97
|
+
haml(FIELDS_DIR + "/xhtml.haml", self)
|
98
|
+
end
|
99
|
+
|
100
|
+
def preview
|
101
|
+
haml(Milk::COMPONENTS_DIR + "/page.haml", self) do
|
102
|
+
(@components.collect do |component|
|
103
|
+
component.view
|
104
|
+
end).join("")
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def view
|
109
|
+
haml(Milk::COMPONENTS_DIR + "/xhtml.haml", self) do
|
110
|
+
preview
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def link_to
|
115
|
+
if @pagename == "Home"
|
116
|
+
"/"
|
117
|
+
else
|
118
|
+
"/#{@pagename}"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def link_to?(url)
|
123
|
+
(@pagename == "Home" && url == '/') || url == "/#{@pagename}"
|
124
|
+
end
|
125
|
+
|
126
|
+
def save_to_cache(html=nil)
|
127
|
+
html ||= view
|
128
|
+
folder = Milk::PUBLIC_DIR + "/cache/" + @pagename
|
129
|
+
cache_file = folder + "/index.html"
|
130
|
+
# Make the folder if it doesn't exist
|
131
|
+
FileUtils.mkdir_p folder
|
132
|
+
open(cache_file, "w") { |file| file.write html }
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
|
139
|
+
|
data/lib/milk/tasks.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
desc "Loads the Milk environment, mainly used as a dependency"
|
3
|
+
task :environment do |t|
|
4
|
+
MILK_ROOT ||= t.application.original_dir
|
5
|
+
require "milk"
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Compile all the sass files in the component dir and merge into style.css"
|
9
|
+
task :sass => :environment do
|
10
|
+
style_file = Milk::PUBLIC_DIR + "/style/style.css"
|
11
|
+
puts "Updating #{style_file}..."
|
12
|
+
require 'haml'
|
13
|
+
open(style_file, "w") do |style|
|
14
|
+
Dir.glob(Milk::COMPONENTS_DIR + "/*.sass").sort.each do |c|
|
15
|
+
puts "Adding #{c}"
|
16
|
+
open(c, "r") do |file|
|
17
|
+
style.write Sass::Engine.new(file.read, :filename=>c, :style=>:compact, :load_paths => [Milk::COMPONENTS_DIR]).render.strip
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Rebuild the page cache files"
|
24
|
+
task :cache => :environment do
|
25
|
+
cachedir = Milk::PUBLIC_DIR+"/cache"
|
26
|
+
FileUtils.rm_rf(cachedir, :verbose=>true)
|
27
|
+
Milk::Page.each_page do |page|
|
28
|
+
puts "saving #{page.pagename}"
|
29
|
+
page.save_to_cache
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "Start up an interactive ruby session with Milk preloaded"
|
34
|
+
task :console => :environment do
|
35
|
+
# Remove the task name from argv so irb doesn't explode
|
36
|
+
ARGV.shift
|
37
|
+
|
38
|
+
# Start an irb session with the environment loaded
|
39
|
+
require "irb"
|
40
|
+
IRB.start(__FILE__)
|
41
|
+
end
|
42
|
+
|
43
|
+
desc "Start up a development server using thin"
|
44
|
+
task :server do
|
45
|
+
exec "thin -R config.ru start"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
data/milk.gemspec
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{milk}
|
5
|
+
s.version = "0.0.9"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Tim Caswell"]
|
9
|
+
s.date = %q{2009-06-25}
|
10
|
+
s.default_executable = %q{milk}
|
11
|
+
s.email = %q{tim@creationix.com}
|
12
|
+
s.executables = ["milk"]
|
13
|
+
s.extra_rdoc_files = [
|
14
|
+
"LICENSE",
|
15
|
+
"README.rdoc"
|
16
|
+
]
|
17
|
+
s.files = [
|
18
|
+
".document",
|
19
|
+
".gitignore",
|
20
|
+
"LICENSE",
|
21
|
+
"README.rdoc",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"bin/milk",
|
25
|
+
"lib/milk.rb",
|
26
|
+
"lib/milk/application.rb",
|
27
|
+
"lib/milk/component.rb",
|
28
|
+
"lib/milk/field.rb",
|
29
|
+
"lib/milk/fields/component.haml",
|
30
|
+
"lib/milk/fields/component_array.haml",
|
31
|
+
"lib/milk/fields/component_array.rb",
|
32
|
+
"lib/milk/fields/image_chooser.haml",
|
33
|
+
"lib/milk/fields/image_chooser.rb",
|
34
|
+
"lib/milk/fields/login.haml",
|
35
|
+
"lib/milk/fields/markdown_field.haml",
|
36
|
+
"lib/milk/fields/markdown_field.rb",
|
37
|
+
"lib/milk/fields/page_chooser.haml",
|
38
|
+
"lib/milk/fields/page_chooser.rb",
|
39
|
+
"lib/milk/fields/sprite_chooser.haml",
|
40
|
+
"lib/milk/fields/sprite_chooser.rb",
|
41
|
+
"lib/milk/fields/text_field.haml",
|
42
|
+
"lib/milk/fields/text_field.rb",
|
43
|
+
"lib/milk/fields/xhtml.haml",
|
44
|
+
"lib/milk/haxe.rb",
|
45
|
+
"lib/milk/page.rb",
|
46
|
+
"lib/milk/tasks.rb",
|
47
|
+
"milk.gemspec",
|
48
|
+
"site_template/Rakefile",
|
49
|
+
"site_template/config.ru",
|
50
|
+
"site_template/config/config.yaml",
|
51
|
+
"site_template/config/foot.yaml",
|
52
|
+
"site_template/config/head.yaml",
|
53
|
+
"site_template/config/users.yaml",
|
54
|
+
"site_template/design/0-reset.sass",
|
55
|
+
"site_template/design/1-text.sass",
|
56
|
+
"site_template/design/960.sass",
|
57
|
+
"site_template/design/body.haml",
|
58
|
+
"site_template/design/body.rb",
|
59
|
+
"site_template/design/button.haml",
|
60
|
+
"site_template/design/button.rb",
|
61
|
+
"site_template/design/foot.haml",
|
62
|
+
"site_template/design/foot.rb",
|
63
|
+
"site_template/design/foot.sass",
|
64
|
+
"site_template/design/head.haml",
|
65
|
+
"site_template/design/head.rb",
|
66
|
+
"site_template/design/head.sass",
|
67
|
+
"site_template/design/page.haml",
|
68
|
+
"site_template/design/page.sass",
|
69
|
+
"site_template/design/sprites.sass",
|
70
|
+
"site_template/design/xhtml.haml",
|
71
|
+
"site_template/pages/About.yaml",
|
72
|
+
"site_template/pages/Home.yaml",
|
73
|
+
"site_template/pages/News.yaml",
|
74
|
+
"site_template/pages/NotFound.yaml",
|
75
|
+
"site_template/pages/Products.yaml",
|
76
|
+
"site_template/public/cache/About/index.html",
|
77
|
+
"site_template/public/cache/Home/index.html",
|
78
|
+
"site_template/public/cache/News/index.html",
|
79
|
+
"site_template/public/cache/Products/index.html",
|
80
|
+
"site_template/public/favicon.ico",
|
81
|
+
"site_template/public/images/README.txt",
|
82
|
+
"site_template/public/js/jquery-1.3.2.min.js",
|
83
|
+
"site_template/public/js/jquery-ui-1.7.2.custom.min.js",
|
84
|
+
"site_template/public/js/jquery.json-1.3.min.js",
|
85
|
+
"site_template/public/robots.txt",
|
86
|
+
"site_template/public/skin/images/ui-bg_diagonals-thick_18_b81900_40x40.png",
|
87
|
+
"site_template/public/skin/images/ui-bg_diagonals-thick_20_666666_40x40.png",
|
88
|
+
"site_template/public/skin/images/ui-bg_flat_10_000000_40x100.png",
|
89
|
+
"site_template/public/skin/images/ui-bg_glass_100_f6f6f6_1x400.png",
|
90
|
+
"site_template/public/skin/images/ui-bg_glass_100_fdf5ce_1x400.png",
|
91
|
+
"site_template/public/skin/images/ui-bg_glass_65_ffffff_1x400.png",
|
92
|
+
"site_template/public/skin/images/ui-bg_gloss-wave_35_f6a828_500x100.png",
|
93
|
+
"site_template/public/skin/images/ui-bg_highlight-soft_100_eeeeee_1x100.png",
|
94
|
+
"site_template/public/skin/images/ui-bg_highlight-soft_75_ffe45c_1x100.png",
|
95
|
+
"site_template/public/skin/images/ui-icons_222222_256x240.png",
|
96
|
+
"site_template/public/skin/images/ui-icons_228ef1_256x240.png",
|
97
|
+
"site_template/public/skin/images/ui-icons_ef8c08_256x240.png",
|
98
|
+
"site_template/public/skin/images/ui-icons_ffd27a_256x240.png",
|
99
|
+
"site_template/public/skin/images/ui-icons_ffffff_256x240.png",
|
100
|
+
"site_template/public/skin/jquery-ui-1.7.2.custom.css",
|
101
|
+
"site_template/public/style/style.css",
|
102
|
+
"site_template/tmp/restart.txt",
|
103
|
+
"test/milk_test.rb",
|
104
|
+
"test/test_helper.rb"
|
105
|
+
]
|
106
|
+
s.has_rdoc = true
|
107
|
+
s.homepage = %q{http://github.com/creationix/milk}
|
108
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
109
|
+
s.require_paths = ["lib"]
|
110
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
111
|
+
s.rubyforge_project = %q{milk}
|
112
|
+
s.rubygems_version = %q{1.3.1}
|
113
|
+
s.summary = %q{Milk is a rack based content management system built for ease of use and simplicity. Milk tastes great with and without cookies.}
|
114
|
+
s.test_files = [
|
115
|
+
"test/test_helper.rb",
|
116
|
+
"test/milk_test.rb"
|
117
|
+
]
|
118
|
+
|
119
|
+
if s.respond_to? :specification_version then
|
120
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
121
|
+
s.specification_version = 2
|
122
|
+
|
123
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
124
|
+
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
125
|
+
s.add_runtime_dependency(%q<maruku>, [">= 0.6.0"])
|
126
|
+
s.add_runtime_dependency(%q<haml>, [">= 2.0.9"])
|
127
|
+
else
|
128
|
+
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
129
|
+
s.add_dependency(%q<maruku>, [">= 0.6.0"])
|
130
|
+
s.add_dependency(%q<haml>, [">= 2.0.9"])
|
131
|
+
end
|
132
|
+
else
|
133
|
+
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
134
|
+
s.add_dependency(%q<maruku>, [">= 0.6.0"])
|
135
|
+
s.add_dependency(%q<haml>, [">= 2.0.9"])
|
136
|
+
end
|
137
|
+
end
|