milk 0.0.0 → 0.0.1

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 (170) hide show
  1. data/INSTALL +8 -0
  2. data/LICENSE +24 -17
  3. data/README +3 -0
  4. data/Rakefile +21 -56
  5. data/bin/milk +2 -19
  6. data/doc/classes/Milk.html +198 -0
  7. data/doc/classes/Milk.src/M000005.html +17 -0
  8. data/doc/classes/Milk/Application.html +209 -0
  9. data/doc/classes/Milk/Application.src/M000007.html +69 -0
  10. data/doc/classes/Milk/Application.src/M000008.html +38 -0
  11. data/doc/classes/Milk/Component.html +397 -0
  12. data/doc/classes/Milk/Component.src/M000014.html +19 -0
  13. data/doc/classes/Milk/Component.src/M000015.html +16 -0
  14. data/doc/classes/Milk/Component.src/M000016.html +15 -0
  15. data/doc/classes/Milk/Component.src/M000017.html +15 -0
  16. data/doc/classes/Milk/Component.src/M000018.html +15 -0
  17. data/doc/classes/Milk/Component.src/M000019.html +15 -0
  18. data/doc/classes/Milk/Component.src/M000020.html +15 -0
  19. data/doc/classes/Milk/Component.src/M000021.html +15 -0
  20. data/doc/classes/Milk/Component.src/M000022.html +18 -0
  21. data/doc/classes/Milk/Component.src/M000023.html +21 -0
  22. data/doc/classes/Milk/Component.src/M000024.html +15 -0
  23. data/doc/classes/Milk/Component.src/M000025.html +22 -0
  24. data/doc/classes/Milk/ExternalCompilerError.html +117 -0
  25. data/doc/classes/Milk/Field.html +114 -0
  26. data/doc/classes/Milk/Fields.html +173 -0
  27. data/doc/classes/Milk/Fields/ComponentArray.html +114 -0
  28. data/doc/classes/Milk/Fields/ImageChooser.html +114 -0
  29. data/doc/classes/Milk/Fields/MarkdownField.html +114 -0
  30. data/doc/classes/Milk/Fields/PageChooser.html +114 -0
  31. data/doc/classes/Milk/Fields/SpriteChooser.html +114 -0
  32. data/doc/classes/Milk/Fields/TextField.html +114 -0
  33. data/doc/classes/Milk/Haxe.html +208 -0
  34. data/doc/classes/Milk/Haxe.src/M000005.html +40 -0
  35. data/doc/classes/Milk/Haxe.src/M000006.html +15 -0
  36. data/doc/classes/Milk/Page.html +243 -0
  37. data/doc/classes/Milk/Page.src/M000009.html +17 -0
  38. data/doc/classes/Milk/Page.src/M000010.html +17 -0
  39. data/doc/classes/Milk/Page.src/M000011.html +18 -0
  40. data/doc/classes/Milk/Page.src/M000012.html +20 -0
  41. data/doc/classes/Milk/Page.src/M000013.html +21 -0
  42. data/doc/classes/Milk/PageNotFoundError.html +110 -0
  43. data/doc/classes/Object.html +237 -0
  44. data/doc/classes/Object.src/M000001.html +13 -0
  45. data/doc/classes/Object.src/M000002.html +13 -0
  46. data/doc/classes/Object.src/M000003.html +15 -0
  47. data/doc/classes/Object.src/M000004.html +15 -0
  48. data/doc/created.rid +1 -0
  49. data/doc/files/INSTALL.html +106 -0
  50. data/doc/files/LICENSE.html +126 -0
  51. data/doc/files/README.html +100 -0
  52. data/doc/files/Rakefile.html +121 -0
  53. data/doc/files/bin/milk.html +100 -0
  54. data/doc/files/doc/classes/Milk/Application_html.html +302 -0
  55. data/doc/files/doc/classes/Milk/Application_src/M000007_html.html +173 -0
  56. data/doc/files/doc/classes/Milk/Application_src/M000008_html.html +142 -0
  57. data/doc/files/doc/classes/Milk/Component_html.html +477 -0
  58. data/doc/files/doc/classes/Milk/Component_src/M000014_html.html +123 -0
  59. data/doc/files/doc/classes/Milk/Component_src/M000015_html.html +120 -0
  60. data/doc/files/doc/classes/Milk/Component_src/M000016_html.html +119 -0
  61. data/doc/files/doc/classes/Milk/Component_src/M000017_html.html +119 -0
  62. data/doc/files/doc/classes/Milk/Component_src/M000018_html.html +119 -0
  63. data/doc/files/doc/classes/Milk/Component_src/M000019_html.html +119 -0
  64. data/doc/files/doc/classes/Milk/Component_src/M000020_html.html +119 -0
  65. data/doc/files/doc/classes/Milk/Component_src/M000021_html.html +119 -0
  66. data/doc/files/doc/classes/Milk/Component_src/M000022_html.html +122 -0
  67. data/doc/files/doc/classes/Milk/Component_src/M000023_html.html +125 -0
  68. data/doc/files/doc/classes/Milk/Component_src/M000024_html.html +119 -0
  69. data/doc/files/doc/classes/Milk/Component_src/M000025_html.html +126 -0
  70. data/doc/files/doc/classes/Milk/ExternalCompilerError_html.html +214 -0
  71. data/doc/files/doc/classes/Milk/Field_html.html +209 -0
  72. data/doc/files/doc/classes/Milk/Fields/ComponentArray_html.html +209 -0
  73. data/doc/files/doc/classes/Milk/Fields/ImageChooser_html.html +209 -0
  74. data/doc/files/doc/classes/Milk/Fields/MarkdownField_html.html +209 -0
  75. data/doc/files/doc/classes/Milk/Fields/PageChooser_html.html +209 -0
  76. data/doc/files/doc/classes/Milk/Fields/SpriteChooser_html.html +209 -0
  77. data/doc/files/doc/classes/Milk/Fields/TextField_html.html +209 -0
  78. data/doc/files/doc/classes/Milk/Fields_html.html +264 -0
  79. data/doc/files/doc/classes/Milk/Haxe_html.html +298 -0
  80. data/doc/files/doc/classes/Milk/Haxe_src/M000005_html.html +144 -0
  81. data/doc/files/doc/classes/Milk/Haxe_src/M000006_html.html +119 -0
  82. data/doc/files/doc/classes/Milk/PageNotFoundError_html.html +205 -0
  83. data/doc/files/doc/classes/Milk/Page_html.html +330 -0
  84. data/doc/files/doc/classes/Milk/Page_src/M000009_html.html +121 -0
  85. data/doc/files/doc/classes/Milk/Page_src/M000010_html.html +121 -0
  86. data/doc/files/doc/classes/Milk/Page_src/M000011_html.html +122 -0
  87. data/doc/files/doc/classes/Milk/Page_src/M000012_html.html +124 -0
  88. data/doc/files/doc/classes/Milk/Page_src/M000013_html.html +125 -0
  89. data/doc/files/doc/classes/Milk_html.html +321 -0
  90. data/doc/files/doc/classes/Object_html.html +334 -0
  91. data/doc/files/doc/classes/Object_src/M000001_html.html +117 -0
  92. data/doc/files/doc/classes/Object_src/M000002_html.html +117 -0
  93. data/doc/files/doc/classes/Object_src/M000003_html.html +119 -0
  94. data/doc/files/doc/classes/Object_src/M000004_html.html +119 -0
  95. data/doc/files/doc/created_rid.html +97 -0
  96. data/doc/files/doc/files/INSTALL_html.html +206 -0
  97. data/doc/files/doc/files/LICENSE_html.html +226 -0
  98. data/doc/files/doc/files/README_html.html +201 -0
  99. data/doc/files/doc/files/Rakefile_html.html +221 -0
  100. data/doc/files/doc/files/bin/milk_html.html +198 -0
  101. data/doc/files/doc/files/lib/milk/application_rb_html.html +188 -0
  102. data/doc/files/doc/files/lib/milk/component_rb_html.html +188 -0
  103. data/doc/files/doc/files/lib/milk/field_rb_html.html +188 -0
  104. data/doc/files/doc/files/lib/milk/fields/component_array_rb_html.html +188 -0
  105. data/doc/files/doc/files/lib/milk/fields/image_chooser_rb_html.html +188 -0
  106. data/doc/files/doc/files/lib/milk/fields/markdown_field_rb_html.html +188 -0
  107. data/doc/files/doc/files/lib/milk/fields/page_chooser_rb_html.html +188 -0
  108. data/doc/files/doc/files/lib/milk/fields/sprite_chooser_rb_html.html +188 -0
  109. data/doc/files/doc/files/lib/milk/fields/text_field_rb_html.html +188 -0
  110. data/doc/files/doc/files/lib/milk/fields/xhtml_haml_html.html +211 -0
  111. data/doc/files/doc/files/lib/milk/haxe_rb_html.html +188 -0
  112. data/doc/files/doc/files/lib/milk/page_rb_html.html +188 -0
  113. data/doc/files/doc/files/lib/milk/tasks_rb_html.html +202 -0
  114. data/doc/files/doc/files/lib/milk/templates/bzrignore_html.html +197 -0
  115. data/doc/files/doc/files/lib/milk/templates/rackup_html.html +217 -0
  116. data/doc/files/doc/files/lib/milk/templates/rakefile_html.html +198 -0
  117. data/doc/files/doc/files/lib/milk/templates/restart_html.html +197 -0
  118. data/doc/files/doc/files/lib/milk_rb_html.html +197 -0
  119. data/doc/files/doc/fr_class_index_html.html +160 -0
  120. data/doc/files/doc/fr_file_index_html.html +174 -0
  121. data/doc/files/doc/fr_method_index_html.html +178 -0
  122. data/doc/files/doc/index_html.html +128 -0
  123. data/doc/files/doc/rdoc-style_css.html +665 -0
  124. data/doc/files/lib/milk/application_rb.html +90 -0
  125. data/doc/files/lib/milk/component_rb.html +90 -0
  126. data/doc/files/lib/milk/field_rb.html +90 -0
  127. data/doc/files/lib/milk/fields/component_array_rb.html +90 -0
  128. data/doc/files/lib/milk/fields/image_chooser_rb.html +90 -0
  129. data/doc/files/lib/milk/fields/markdown_field_rb.html +90 -0
  130. data/doc/files/lib/milk/fields/page_chooser_rb.html +90 -0
  131. data/doc/files/lib/milk/fields/sprite_chooser_rb.html +90 -0
  132. data/doc/files/lib/milk/fields/text_field_rb.html +90 -0
  133. data/doc/files/lib/milk/fields/xhtml_haml.html +107 -0
  134. data/doc/files/lib/milk/haxe_rb.html +90 -0
  135. data/doc/files/lib/milk/page_rb.html +90 -0
  136. data/doc/files/lib/milk/tasks_rb.html +104 -0
  137. data/doc/files/lib/milk/templates/bzrignore.html +97 -0
  138. data/doc/files/lib/milk/templates/rackup.html +119 -0
  139. data/doc/files/lib/milk/templates/rakefile.html +98 -0
  140. data/doc/files/lib/milk/templates/restart.html +97 -0
  141. data/doc/files/lib/milk_rb.html +97 -0
  142. data/doc/fr_class_index.html +27 -0
  143. data/doc/fr_file_index.html +169 -0
  144. data/doc/fr_method_index.html +33 -0
  145. data/doc/index.html +21 -0
  146. data/doc/rdoc-style.css +299 -0
  147. data/lib/milk.rb +58 -0
  148. data/lib/milk/application.rb +98 -0
  149. data/lib/milk/component.rb +73 -0
  150. data/lib/milk/field.rb +16 -0
  151. data/lib/milk/fields/component_array.rb +4 -0
  152. data/lib/milk/fields/image_chooser.rb +4 -0
  153. data/lib/milk/fields/markdown_field.rb +4 -0
  154. data/lib/milk/fields/page_chooser.rb +4 -0
  155. data/lib/milk/fields/sprite_chooser.rb +4 -0
  156. data/lib/milk/fields/text_field.rb +4 -0
  157. data/lib/milk/fields/xhtml.haml +10 -0
  158. data/lib/milk/haxe.rb +139 -0
  159. data/lib/milk/page.rb +45 -0
  160. data/lib/milk/tasks.rb +89 -0
  161. data/lib/milk/templates/bzrignore +3 -0
  162. data/lib/milk/templates/rackup +16 -0
  163. data/lib/milk/templates/rakefile +4 -0
  164. data/lib/milk/templates/restart +1 -0
  165. metadata +246 -26
  166. data/.document +0 -5
  167. data/.gitignore +0 -5
  168. data/README.rdoc +0 -7
  169. data/test/milk_test.rb +0 -7
  170. data/test/test_helper.rb +0 -10
@@ -0,0 +1,73 @@
1
+ module Milk
2
+ class Component
3
+ @@props = []
4
+ @@fields = []
5
+
6
+ def self.local_properties(*props)
7
+ @@props += props
8
+ # Dynamically set the yaml dumper to only store local properties
9
+ meta_def :to_yaml_properties do
10
+ props
11
+ end
12
+ end
13
+
14
+ def self.global_properties(*props)
15
+ @@props += props
16
+ # TODO: put hook in save
17
+ end
18
+
19
+ def self.component_array(field, label, com_class)
20
+ # TODO: create hooks to add field
21
+ end
22
+ def self.image_chooser(field, label, alt_field)
23
+ # TODO: create hooks to add field
24
+ end
25
+ def self.markdown_field(field, label)
26
+ # TODO: create hooks to add field
27
+ end
28
+ def self.page_chooser(field, label)
29
+ # TODO: create hooks to add field
30
+ end
31
+ def self.sprite_chooser(field, label, main_class, sub_classes)
32
+ # TODO: create hooks to add field
33
+ end
34
+ def self.text_field(field, label)
35
+ # TODO: create hooks to add field
36
+ end
37
+
38
+ def initilize(*props)
39
+ props.each_pair do |key, value|
40
+ raise "Undefined property \"" + key.to_s + "\"" unless @@props.member? key
41
+ self.instance_variable_set(key, value)
42
+ end
43
+ end
44
+
45
+ def load_settings
46
+ name = self.class.to_s.gsub(/([a-z])([A-Z])/) { "#{$1}_#{$2}" }.downcase
47
+ yml_file = Milk::PAGES_DIR + "/global/" + name + ".yml"
48
+ if File.file? yml_file
49
+ YAML.load_file(yml_file)
50
+ else
51
+ {}
52
+ end
53
+ end
54
+
55
+ def edit
56
+ self.inspect
57
+ end
58
+
59
+ def view
60
+ globals = load_settings
61
+ globals.each_pair do |key, value|
62
+ self.instance_variable_set(('@' + key).to_sym, value)
63
+ end unless globals.nil?
64
+ name = self.class.to_s.gsub(/([a-z])([A-Z])/) { "#{$1}_#{$2}" }.downcase
65
+ haml_file = Milk::COMPONENTS_DIR + "/" + name + ".haml"
66
+ raise "Missing template \"" + haml_file + "\"" unless File.file? haml_file
67
+ ::Haml::Engine.new(File.read(haml_file), :filename => haml_file).render(self)
68
+ end
69
+
70
+ end
71
+ end
72
+
73
+
@@ -0,0 +1,16 @@
1
+ module Milk
2
+ class Field
3
+ end
4
+
5
+ module Fields
6
+ # Autoload the fields of the user space app into the root namespace for easy use
7
+ Dir.glob(Milk::LIB_DIR + "/milk/fields/*.rb").each do |c|
8
+ name = c.split('/').last.gsub(/(.*)\.rb/) { $1 }
9
+ class_name = name.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
10
+ path = c.gsub(/(.*)\.rb/) { $1 }
11
+ autoload class_name.to_sym, path
12
+ end
13
+
14
+ end
15
+ end
16
+
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class ComponentArray < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class ImageChooser < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class MarkdownField < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class PageChooser < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class SpriteChooser < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Milk::Fields
2
+ class TextField < Milk::Field
3
+ end
4
+ end
@@ -0,0 +1,10 @@
1
+ !!! xml
2
+ !!! 1.1
3
+ %html{:xmlns =>"http://www.w3.org/1999/xhtml"}
4
+ %head
5
+ %link{ :rel => "shortcut icon", :href => "/favicon.ico", :type => "image/x-icon"}/
6
+ %link{ :href => "http://static.creationix.com/skins/ui-lightness/jquery-ui-1.7.1.custom.css", :media => "screen", :rel => "stylesheet", :type => "text/css" }/
7
+ %title&= "Edit #{@pagename}"
8
+ %script{:src=>"http://static.creationix.com/scripts/jquery-1.3.2.min.js", :type=>"text/javascript"}
9
+ %script{:src=>"http://static.creationix.com/scripts/jquery-ui-1.7.1.custom.min.js", :type=>"text/javascript"}
10
+ %body= yield
@@ -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 is 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
+
@@ -0,0 +1,45 @@
1
+ module Milk
2
+ class Page
3
+ def self.find(pagename)
4
+ yaml_file = Milk::PAGES_DIR + "/" + pagename.gsub(/\//, '.') + ".yml"
5
+ raise PageNotFoundError unless File.readable? yaml_file
6
+ YAML.load_file(yaml_file)
7
+ end
8
+
9
+ def initialize(pagename)
10
+ @pagename = pagename
11
+ @title = pagename
12
+ @components = []
13
+ end
14
+
15
+ def edit
16
+ filename = TEMPLATE_DIR + "/xhtml.haml"
17
+ ::Haml::Engine.new(File.read(filename), :filename => filename).render(self) do
18
+ @components.map {|c| c.edit}.join("\n")
19
+ end
20
+ end
21
+
22
+ def view
23
+ filename = Milk::COMPONENTS_DIR + "/xhtml.haml"
24
+ html = ::Haml::Engine.new(File.read(filename), :filename => filename).render(self) do
25
+ @components.map {|c| c.view}.join("\n")
26
+ end
27
+ save_to_cache html
28
+ html
29
+ end
30
+
31
+ def save_to_cache(html=nil)
32
+ html ||= view
33
+ folder = Milk::PUBLIC_DIR + "/cache/" + @pagename
34
+ cache_file = folder + "/index.html"
35
+
36
+ # Make the folder if it doesn't exist
37
+ FileUtils.mkdir_p folder
38
+ open(cache_file, "w") { |file| file.write html }
39
+ end
40
+
41
+ end
42
+ end
43
+
44
+
45
+
@@ -0,0 +1,89 @@
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 "Build the site from scratch if needed"
9
+ task :default => [:install, :compile_sass]
10
+
11
+ desc "Create the skeleton structure, install the rackup file, and init the bzr repo"
12
+ task :install => :environment do
13
+
14
+
15
+ # Create missing directories
16
+ [ Milk::COMPONENTS_DIR + "/haxe", \
17
+ Milk::PAGES_DIR + "/global", \
18
+ Milk::PUBLIC_DIR + "/cache", \
19
+ Milk::PUBLIC_DIR + "/images", \
20
+ Milk::PUBLIC_DIR + "/style", \
21
+ MILK_ROOT + "/tmp", \
22
+ ].each do |path|
23
+ FileUtils.mkdir_p(path, :verbose=>true) unless File.directory?(path)
24
+ end
25
+
26
+ # Install/update some template files
27
+ [ ["rackup", MILK_ROOT + "/config.ru"], \
28
+ ["bzrignore", MILK_ROOT + "/.bzrignore"], \
29
+ ["rakefile", MILK_ROOT + "/Rakefile"], \
30
+ ["restart", MILK_ROOT+"/tmp/restart.txt"] \
31
+ ].each do |pair|
32
+ source = Milk::LIB_DIR+"/milk/templates/" + pair.first
33
+ target = pair.last
34
+ FileUtils.install(source, target, :verbose=>true, :preserve => true) \
35
+ unless (File.file?(target) && File.mtime(source) <= File.mtime(target))
36
+ end
37
+
38
+ # Set up bzr repository
39
+ if !File.directory? MILK_ROOT+"/.bzr"
40
+ exec("cd #{MILK_ROOT} && bzr init && bzr add && bzr ci -m 'Commit initial Milk structure'")
41
+ end
42
+
43
+ end
44
+
45
+ desc "Compile all the sass files in the component dir and merge into style.css"
46
+ task :compile_sass => :environment do
47
+ style_file = Milk::PUBLIC_DIR + "/style/style.css"
48
+ style_mtime = (File.file? style_file) && (File.mtime style_file)
49
+ if (!File.file? style_file) || Dir.glob(Milk::COMPONENTS_DIR + "/*.sass").any? { |sass| (File.mtime sass) > style_mtime }
50
+ puts "Updating #{style_file}..."
51
+ require 'haml'
52
+ open(style_file, "w") do |style|
53
+ Dir.glob(Milk::COMPONENTS_DIR + "/*.sass").each do |c|
54
+ puts "Adding #{c}"
55
+ open(c, "r") do |file|
56
+ style.write Sass::Engine.new(file.read, :filename=>c, :style=>:compressed).render.strip
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
+ desc "Delete the cache files and the generated style file"
64
+ task :clean => :environment do
65
+ cachedir = Milk::PUBLIC_DIR+"/cache"
66
+ FileUtils.rm_rf(cachedir, :verbose=>true)
67
+ FileUtils.mkdir_p(cachedir, :verbose=>true)
68
+ FileUtils.rm(Milk::PUBLIC_DIR+"/style/style.css", :verbose=>true)
69
+ end
70
+
71
+ desc "Start up an interactive ruby session with Milk preloaded"
72
+ task :console => :environment do
73
+ # Remove the task name from argv so irb doesn't explode
74
+ ARGV.shift
75
+
76
+ # Start an irb session with the environment loaded
77
+ require "irb"
78
+ IRB.start(__FILE__)
79
+ end
80
+
81
+ desc "Start up a development server using thin"
82
+ task :server do
83
+ exec "rackup -s thin"
84
+ end
85
+
86
+
87
+
88
+
89
+
@@ -0,0 +1,3 @@
1
+ haxe/*.swf
2
+ public/cache/*
3
+ public/style/style.css
@@ -0,0 +1,16 @@
1
+ ::MILK_ROOT = ::File.absolute_path(::File.dirname(__FILE__))
2
+ require '../lib/milk'
3
+
4
+ # use Lock
5
+ if %w{rackup thin}.member?($0.rpartition('/').last)
6
+ puts "Running in development mode"
7
+ use ContentLength
8
+ use Reloader
9
+ run Cascade.new([
10
+ File.new('public'),
11
+ Milk::Application.new
12
+ ])
13
+ else
14
+ run Milk::Application.new
15
+ end
16
+
@@ -0,0 +1,4 @@
1
+ ::MILK_ROOT = File.dirname(__FILE__)
2
+ require 'rake'
3
+ load '../lib/milk/tasks.rb'
4
+
@@ -0,0 +1 @@
1
+ Touch this file to restart the running passenger server.
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.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Caswell
@@ -9,40 +9,261 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-25 00:00:00 -05:00
13
- default_executable: milk
14
- dependencies: []
15
-
16
- description:
12
+ date: 2009-05-14 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: maruku
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.6.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: haml
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.0.9
44
+ version:
45
+ description: Milk is a rack based cms system built for ease of use and simplicity. Milk tastes great with and without cookies. The public facing aspect is static html files, and the admin side is super easy to use.
17
46
  email: tim@creationix.com
18
47
  executables:
19
48
  - milk
20
49
  extensions: []
21
50
 
22
- extra_rdoc_files:
23
- - LICENSE
24
- - README.rdoc
51
+ extra_rdoc_files: []
52
+
25
53
  files:
26
- - .document
27
- - .gitignore
28
- - LICENSE
29
- - README.rdoc
54
+ - INSTALL
55
+ - README
30
56
  - Rakefile
57
+ - test
58
+ - bin
59
+ - bin/milk
60
+ - LICENSE
61
+ - doc
62
+ - doc/rdoc-style.css
63
+ - doc/index.html
64
+ - doc/fr_class_index.html
65
+ - doc/classes
66
+ - doc/classes/Object.html
67
+ - doc/classes/Milk
68
+ - doc/classes/Milk/Page.html
69
+ - doc/classes/Milk/PageNotFoundError.html
70
+ - doc/classes/Milk/Application.html
71
+ - doc/classes/Milk/Fields.html
72
+ - doc/classes/Milk/ExternalCompilerError.html
73
+ - doc/classes/Milk/Component.src
74
+ - doc/classes/Milk/Component.src/M000022.html
75
+ - doc/classes/Milk/Component.src/M000018.html
76
+ - doc/classes/Milk/Component.src/M000016.html
77
+ - doc/classes/Milk/Component.src/M000024.html
78
+ - doc/classes/Milk/Component.src/M000014.html
79
+ - doc/classes/Milk/Component.src/M000020.html
80
+ - doc/classes/Milk/Component.src/M000023.html
81
+ - doc/classes/Milk/Component.src/M000015.html
82
+ - doc/classes/Milk/Component.src/M000017.html
83
+ - doc/classes/Milk/Component.src/M000019.html
84
+ - doc/classes/Milk/Component.src/M000021.html
85
+ - doc/classes/Milk/Component.src/M000025.html
86
+ - doc/classes/Milk/Haxe.src
87
+ - doc/classes/Milk/Haxe.src/M000005.html
88
+ - doc/classes/Milk/Haxe.src/M000006.html
89
+ - doc/classes/Milk/Fields
90
+ - doc/classes/Milk/Fields/PageChooser.html
91
+ - doc/classes/Milk/Fields/MarkdownField.html
92
+ - doc/classes/Milk/Fields/ComponentArray.html
93
+ - doc/classes/Milk/Fields/SpriteChooser.html
94
+ - doc/classes/Milk/Fields/ImageChooser.html
95
+ - doc/classes/Milk/Fields/TextField.html
96
+ - doc/classes/Milk/Page.src
97
+ - doc/classes/Milk/Page.src/M000012.html
98
+ - doc/classes/Milk/Page.src/M000009.html
99
+ - doc/classes/Milk/Page.src/M000011.html
100
+ - doc/classes/Milk/Page.src/M000013.html
101
+ - doc/classes/Milk/Page.src/M000010.html
102
+ - doc/classes/Milk/Haxe.html
103
+ - doc/classes/Milk/Field.html
104
+ - doc/classes/Milk/Application.src
105
+ - doc/classes/Milk/Application.src/M000007.html
106
+ - doc/classes/Milk/Application.src/M000008.html
107
+ - doc/classes/Milk/Component.html
108
+ - doc/classes/Milk.html
109
+ - doc/classes/Milk.src
110
+ - doc/classes/Milk.src/M000005.html
111
+ - doc/classes/Object.src
112
+ - doc/classes/Object.src/M000004.html
113
+ - doc/classes/Object.src/M000003.html
114
+ - doc/classes/Object.src/M000002.html
115
+ - doc/classes/Object.src/M000001.html
116
+ - doc/files
117
+ - doc/files/Rakefile.html
118
+ - doc/files/INSTALL.html
119
+ - doc/files/README.html
120
+ - doc/files/LICENSE.html
121
+ - doc/files/bin
122
+ - doc/files/bin/milk.html
123
+ - doc/files/doc
124
+ - doc/files/doc/rdoc-style_css.html
125
+ - doc/files/doc/fr_class_index_html.html
126
+ - doc/files/doc/fr_file_index_html.html
127
+ - doc/files/doc/index_html.html
128
+ - doc/files/doc/fr_method_index_html.html
129
+ - doc/files/doc/created_rid.html
130
+ - doc/files/doc/classes
131
+ - doc/files/doc/classes/Milk_html.html
132
+ - doc/files/doc/classes/Milk
133
+ - doc/files/doc/classes/Milk/PageNotFoundError_html.html
134
+ - doc/files/doc/classes/Milk/Haxe_html.html
135
+ - doc/files/doc/classes/Milk/Field_html.html
136
+ - doc/files/doc/classes/Milk/Component_src
137
+ - doc/files/doc/classes/Milk/Component_src/M000022_html.html
138
+ - doc/files/doc/classes/Milk/Component_src/M000025_html.html
139
+ - doc/files/doc/classes/Milk/Component_src/M000017_html.html
140
+ - doc/files/doc/classes/Milk/Component_src/M000021_html.html
141
+ - doc/files/doc/classes/Milk/Component_src/M000024_html.html
142
+ - doc/files/doc/classes/Milk/Component_src/M000019_html.html
143
+ - doc/files/doc/classes/Milk/Component_src/M000018_html.html
144
+ - doc/files/doc/classes/Milk/Component_src/M000023_html.html
145
+ - doc/files/doc/classes/Milk/Component_src/M000015_html.html
146
+ - doc/files/doc/classes/Milk/Component_src/M000016_html.html
147
+ - doc/files/doc/classes/Milk/Component_src/M000020_html.html
148
+ - doc/files/doc/classes/Milk/Component_src/M000014_html.html
149
+ - doc/files/doc/classes/Milk/Application_src
150
+ - doc/files/doc/classes/Milk/Application_src/M000007_html.html
151
+ - doc/files/doc/classes/Milk/Application_src/M000008_html.html
152
+ - doc/files/doc/classes/Milk/Haxe_src
153
+ - doc/files/doc/classes/Milk/Haxe_src/M000005_html.html
154
+ - doc/files/doc/classes/Milk/Haxe_src/M000006_html.html
155
+ - doc/files/doc/classes/Milk/ExternalCompilerError_html.html
156
+ - doc/files/doc/classes/Milk/Fields
157
+ - doc/files/doc/classes/Milk/Fields/SpriteChooser_html.html
158
+ - doc/files/doc/classes/Milk/Fields/PageChooser_html.html
159
+ - doc/files/doc/classes/Milk/Fields/ImageChooser_html.html
160
+ - doc/files/doc/classes/Milk/Fields/ComponentArray_html.html
161
+ - doc/files/doc/classes/Milk/Fields/MarkdownField_html.html
162
+ - doc/files/doc/classes/Milk/Fields/TextField_html.html
163
+ - doc/files/doc/classes/Milk/Page_html.html
164
+ - doc/files/doc/classes/Milk/Fields_html.html
165
+ - doc/files/doc/classes/Milk/Component_html.html
166
+ - doc/files/doc/classes/Milk/Page_src
167
+ - doc/files/doc/classes/Milk/Page_src/M000010_html.html
168
+ - doc/files/doc/classes/Milk/Page_src/M000013_html.html
169
+ - doc/files/doc/classes/Milk/Page_src/M000011_html.html
170
+ - doc/files/doc/classes/Milk/Page_src/M000009_html.html
171
+ - doc/files/doc/classes/Milk/Page_src/M000012_html.html
172
+ - doc/files/doc/classes/Milk/Application_html.html
173
+ - doc/files/doc/classes/Object_html.html
174
+ - doc/files/doc/classes/Object_src
175
+ - doc/files/doc/classes/Object_src/M000001_html.html
176
+ - doc/files/doc/classes/Object_src/M000004_html.html
177
+ - doc/files/doc/classes/Object_src/M000003_html.html
178
+ - doc/files/doc/classes/Object_src/M000002_html.html
179
+ - doc/files/doc/files
180
+ - doc/files/doc/files/README_html.html
181
+ - doc/files/doc/files/LICENSE_html.html
182
+ - doc/files/doc/files/Rakefile_html.html
183
+ - doc/files/doc/files/bin
184
+ - doc/files/doc/files/bin/milk_html.html
185
+ - doc/files/doc/files/lib
186
+ - doc/files/doc/files/lib/milk_rb_html.html
187
+ - doc/files/doc/files/lib/milk
188
+ - doc/files/doc/files/lib/milk/page_rb_html.html
189
+ - doc/files/doc/files/lib/milk/haxe_rb_html.html
190
+ - doc/files/doc/files/lib/milk/field_rb_html.html
191
+ - doc/files/doc/files/lib/milk/fields
192
+ - doc/files/doc/files/lib/milk/fields/text_field_rb_html.html
193
+ - doc/files/doc/files/lib/milk/fields/page_chooser_rb_html.html
194
+ - doc/files/doc/files/lib/milk/fields/image_chooser_rb_html.html
195
+ - doc/files/doc/files/lib/milk/fields/sprite_chooser_rb_html.html
196
+ - doc/files/doc/files/lib/milk/fields/xhtml_haml_html.html
197
+ - doc/files/doc/files/lib/milk/fields/component_array_rb_html.html
198
+ - doc/files/doc/files/lib/milk/fields/markdown_field_rb_html.html
199
+ - doc/files/doc/files/lib/milk/tasks_rb_html.html
200
+ - doc/files/doc/files/lib/milk/templates
201
+ - doc/files/doc/files/lib/milk/templates/rackup_html.html
202
+ - doc/files/doc/files/lib/milk/templates/bzrignore_html.html
203
+ - doc/files/doc/files/lib/milk/templates/restart_html.html
204
+ - doc/files/doc/files/lib/milk/templates/rakefile_html.html
205
+ - doc/files/doc/files/lib/milk/application_rb_html.html
206
+ - doc/files/doc/files/lib/milk/component_rb_html.html
207
+ - doc/files/doc/files/INSTALL_html.html
208
+ - doc/files/lib
209
+ - doc/files/lib/milk_rb.html
210
+ - doc/files/lib/milk
211
+ - doc/files/lib/milk/tasks_rb.html
212
+ - doc/files/lib/milk/component_rb.html
213
+ - doc/files/lib/milk/fields
214
+ - doc/files/lib/milk/fields/image_chooser_rb.html
215
+ - doc/files/lib/milk/fields/sprite_chooser_rb.html
216
+ - doc/files/lib/milk/fields/xhtml_haml.html
217
+ - doc/files/lib/milk/fields/markdown_field_rb.html
218
+ - doc/files/lib/milk/fields/component_array_rb.html
219
+ - doc/files/lib/milk/fields/text_field_rb.html
220
+ - doc/files/lib/milk/fields/page_chooser_rb.html
221
+ - doc/files/lib/milk/application_rb.html
222
+ - doc/files/lib/milk/field_rb.html
223
+ - doc/files/lib/milk/haxe_rb.html
224
+ - doc/files/lib/milk/page_rb.html
225
+ - doc/files/lib/milk/templates
226
+ - doc/files/lib/milk/templates/rackup.html
227
+ - doc/files/lib/milk/templates/bzrignore.html
228
+ - doc/files/lib/milk/templates/rakefile.html
229
+ - doc/files/lib/milk/templates/restart.html
230
+ - doc/fr_file_index.html
231
+ - doc/fr_method_index.html
232
+ - doc/created.rid
233
+ - lib
31
234
  - lib/milk.rb
32
- - test/milk_test.rb
33
- - test/test_helper.rb
34
- has_rdoc: true
35
- homepage: http://github.com/creationix/milk
235
+ - lib/milk
236
+ - lib/milk/tasks.rb
237
+ - lib/milk/field.rb
238
+ - lib/milk/haxe.rb
239
+ - lib/milk/fields
240
+ - lib/milk/fields/component_array.rb
241
+ - lib/milk/fields/sprite_chooser.rb
242
+ - lib/milk/fields/image_chooser.rb
243
+ - lib/milk/fields/markdown_field.rb
244
+ - lib/milk/fields/text_field.rb
245
+ - lib/milk/fields/page_chooser.rb
246
+ - lib/milk/fields/xhtml.haml
247
+ - lib/milk/application.rb
248
+ - lib/milk/page.rb
249
+ - lib/milk/templates
250
+ - lib/milk/templates/rackup
251
+ - lib/milk/templates/restart
252
+ - lib/milk/templates/bzrignore
253
+ - lib/milk/templates/rakefile
254
+ - lib/milk/component.rb
255
+ has_rdoc: false
256
+ homepage: http://milk.rubyforge.org
36
257
  post_install_message:
37
- rdoc_options:
38
- - --charset=UTF-8
258
+ rdoc_options: []
259
+
39
260
  require_paths:
40
261
  - lib
41
262
  required_ruby_version: !ruby/object:Gem::Requirement
42
263
  requirements:
43
264
  - - ">="
44
265
  - !ruby/object:Gem::Version
45
- version: "0"
266
+ version: "1.9"
46
267
  version:
47
268
  required_rubygems_version: !ruby/object:Gem::Requirement
48
269
  requirements:
@@ -50,13 +271,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
50
271
  - !ruby/object:Gem::Version
51
272
  version: "0"
52
273
  version:
53
- requirements: []
54
-
274
+ requirements:
275
+ - none
55
276
  rubyforge_project: milk
56
277
  rubygems_version: 1.3.1
57
278
  signing_key:
58
279
  specification_version: 2
59
- summary: TODO
60
- test_files:
61
- - test/test_helper.rb
62
- - test/milk_test.rb
280
+ summary: Milk is a rack based content management system built for ease of use and simplicity. Milk tastes great with and without cookies.
281
+ test_files: []
282
+