machined 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +2 -0
  3. data/LICENSE +20 -0
  4. data/README.md +49 -0
  5. data/Rakefile +6 -0
  6. data/bin/machined +4 -0
  7. data/lib/machined.rb +23 -0
  8. data/lib/machined/cli.rb +99 -0
  9. data/lib/machined/context.rb +52 -0
  10. data/lib/machined/environment.rb +297 -0
  11. data/lib/machined/helpers/asset_tag_helpers.rb +135 -0
  12. data/lib/machined/helpers/locals_helpers.rb +57 -0
  13. data/lib/machined/helpers/output_helpers.rb +43 -0
  14. data/lib/machined/helpers/render_helpers.rb +138 -0
  15. data/lib/machined/processors/front_matter_processor.rb +35 -0
  16. data/lib/machined/processors/layout_processor.rb +71 -0
  17. data/lib/machined/server.rb +37 -0
  18. data/lib/machined/sprocket.rb +55 -0
  19. data/lib/machined/static_compiler.rb +71 -0
  20. data/lib/machined/templates/site/Gemfile.tt +10 -0
  21. data/lib/machined/templates/site/assets/images/.empty_directory +0 -0
  22. data/lib/machined/templates/site/assets/javascripts/main.js.coffee +0 -0
  23. data/lib/machined/templates/site/assets/stylesheets/main.css.scss +0 -0
  24. data/lib/machined/templates/site/config.ru +2 -0
  25. data/lib/machined/templates/site/machined.rb +17 -0
  26. data/lib/machined/templates/site/pages/index.html.erb +5 -0
  27. data/lib/machined/templates/site/public/.empty_directory +0 -0
  28. data/lib/machined/templates/site/views/layouts/main.html.erb +12 -0
  29. data/lib/machined/utils.rb +31 -0
  30. data/lib/machined/version.rb +3 -0
  31. data/machined.gemspec +39 -0
  32. data/spec/machined/cli_spec.rb +154 -0
  33. data/spec/machined/context_spec.rb +20 -0
  34. data/spec/machined/environment_spec.rb +202 -0
  35. data/spec/machined/helpers/asset_tag_helpers_spec.rb +95 -0
  36. data/spec/machined/helpers/locals_helper_spec.rb +37 -0
  37. data/spec/machined/helpers/output_helpers_spec.rb +81 -0
  38. data/spec/machined/helpers/render_helpers_spec.rb +53 -0
  39. data/spec/machined/processors/front_matter_processor_spec.rb +42 -0
  40. data/spec/machined/processors/layout_processor_spec.rb +32 -0
  41. data/spec/machined/server_spec.rb +77 -0
  42. data/spec/machined/sprocket_spec.rb +36 -0
  43. data/spec/machined/static_compiler_spec.rb +85 -0
  44. data/spec/machined/utils_spec.rb +31 -0
  45. data/spec/spec_helper.rb +16 -0
  46. data/spec/support/helpers.rb +59 -0
  47. data/spec/support/match_paths_matcher.rb +20 -0
  48. metadata +389 -0
@@ -0,0 +1,42 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::Processors::FrontMatterProcessor do
4
+ it "parses the front matter and adds locals" do
5
+ within_construct do |c|
6
+ c.file "pages/index.html.haml", <<-CONTENT.unindent
7
+ ---
8
+ title: Hello
9
+ tags:
10
+ - 1
11
+ - 2
12
+ ---
13
+ = title.inspect
14
+ = tags.inspect
15
+ CONTENT
16
+
17
+ machined.pages["index.html"].to_s.should == <<-CONTENT.unindent
18
+ "Hello"
19
+ [1, 2]
20
+ CONTENT
21
+ end
22
+ end
23
+
24
+ it "ignores pages without front matter" do
25
+ within_construct do |c|
26
+ c.file "pages/index.html.md", <<-CONTENT.unindent
27
+ Title
28
+ ---
29
+ Another Title
30
+ ---
31
+ Content...
32
+ CONTENT
33
+ machined.pages["index.html"].to_s.should == <<-CONTENT.unindent
34
+ <h2>Title</h2>
35
+
36
+ <h2>Another Title</h2>
37
+
38
+ <p>Content...</p>
39
+ CONTENT
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::Processors::LayoutProcessor do
4
+ it "wraps the content with a layout" do
5
+ within_construct do |c|
6
+ c.file "pages/index.html", "<h1>Hello World</h1>"
7
+ c.file "views/layouts/main.html.haml", "#layout= yield"
8
+
9
+ machined.pages["index.html"].to_s.should == "<div id='layout'><h1>Hello World</h1></div>\n"
10
+ end
11
+ end
12
+
13
+ it "uses the default layout set in the configuration" do
14
+ within_construct do |c|
15
+ c.file "pages/index.html", "<h1>Hello World</h1>"
16
+ c.file "views/layouts/application.html.haml", "#layout= yield"
17
+
18
+ machined :layout => "application"
19
+ machined.pages["index.html"].to_s.should == "<div id='layout'><h1>Hello World</h1></div>\n"
20
+ end
21
+ end
22
+
23
+ it "does not wrap the content with a layout when layout is false" do
24
+ within_construct do |c|
25
+ c.file "pages/index.html", "<h1>Hello World</h1>"
26
+ c.file "views/layouts/application.html.haml", "#layout= yield"
27
+
28
+ machined :layout => false
29
+ machined.pages["index.html"].to_s.should == "<h1>Hello World</h1>"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,77 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::Server do
4
+ include Rack::Test::Methods
5
+
6
+ let(:app) { machined }
7
+
8
+ it "serves up assets at the asset url" do
9
+ within_construct do |c|
10
+ c.file "assets/javascripts/main.js", "var app = {};\n"
11
+ c.file "assets/stylesheets/main.css", "body { color: red; }\n"
12
+
13
+ get "/assets/main.js"
14
+ last_response.body.should == "var app = {};\n"
15
+ last_response.content_type.should == "application/javascript"
16
+
17
+ get "/assets/main.css"
18
+ last_response.body.should == "body { color: red; }\n"
19
+ last_response.content_type.should == "text/css"
20
+ end
21
+ end
22
+
23
+ it "serves up pages as the base url" do
24
+ within_construct do |c|
25
+ c.file "pages/index.html", "<h1>Hello World</h1>\n"
26
+ c.file "pages/about.html", "<h1>About Us</h1>\n"
27
+
28
+ get "/"
29
+ last_response.body.should == "<h1>Hello World</h1>\n"
30
+ last_response.content_type.should == "text/html"
31
+
32
+ get "/about"
33
+ last_response.body.should == "<h1>About Us</h1>\n"
34
+ last_response.content_type.should == "text/html"
35
+ end
36
+ end
37
+
38
+ it "does not serve up views" do
39
+ within_construct do |c|
40
+ c.file "views/about.html", "<h1>About Us</h1>\n"
41
+
42
+ get "/about"
43
+ last_response.should be_not_found
44
+
45
+ get "/views/about"
46
+ last_response.should be_not_found
47
+ end
48
+ end
49
+
50
+ it "serves up custom sprockets" do
51
+ within_construct do |c|
52
+ dir = c.directory "updates"
53
+ dir.file "new-site.html", "<h1>Hello World</h1>\n"
54
+
55
+ get "/"
56
+
57
+ machined.append_sprocket :updates, :url => "/updates" do |updates|
58
+ updates.append_path dir
59
+ updates.register_mime_type "text/html", ".html"
60
+ end
61
+
62
+ get "/updates/new-site"
63
+ last_response.body.should == "<h1>Hello World</h1>\n"
64
+ last_response.content_type.should == "text/html"
65
+ end
66
+ end
67
+
68
+ it "serves up files in the output path" do
69
+ within_construct do |c|
70
+ c.file "public/index.html", "<h1>Hello World</h1>\n"
71
+
72
+ get "/index.html"
73
+ last_response.body.should == "<h1>Hello World</h1>\n"
74
+ last_response.content_type.should == "text/html"
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,36 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::Sprocket do
4
+ describe "#initialize" do
5
+ it "keeps a reference to the Machined environment" do
6
+ sprocket = create_sprocket
7
+ sprocket.machined.should be(machined)
8
+ end
9
+
10
+ it "sets the root path" do
11
+ sprocket = create_sprocket
12
+ sprocket.root.should == Pathname.new(".").expand_path.to_s
13
+ sprocket = create_sprocket :root => "spec/machined"
14
+ sprocket.root.should == Pathname.new("spec/machined").expand_path.to_s
15
+ end
16
+ end
17
+
18
+ describe "#context_class" do
19
+ it "subclasses Machined::Context" do
20
+ sprocket = create_sprocket
21
+ sprocket.context_class.should < Sprockets::Context
22
+ sprocket.context_class.should < Machined::Context
23
+ end
24
+ end
25
+
26
+ describe "#use_all_templates" do
27
+ it "registers available templates as engines" do
28
+ sprocket = create_sprocket :assets => true
29
+ sprocket.engines(".haml").should be_nil
30
+ sprocket.engines(".md").should be_nil
31
+ sprocket.use_all_templates
32
+ sprocket.engines(".haml").should be(Tilt::HamlTemplate)
33
+ sprocket.engines(".md").should be(Tilt::RDiscountTemplate)
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,85 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::StaticCompiler do
4
+ it "generates all of the static files" do
5
+ within_construct do |c|
6
+ c.file "assets/javascripts/main.js", "//= require _dep"
7
+ c.file "assets/javascripts/_dep.js", "var app = {};"
8
+ c.file "assets/stylesheets/main.css.scss", %(@import "dep";\nbody { color: $color; })
9
+ c.file "assets/stylesheets/_dep.scss", "$color: red;"
10
+ c.file "assets/images/logo.jpg"
11
+ c.file "pages/index.html.md.erb", <<-CONTENT.unindent
12
+ ---
13
+ title: Hello World
14
+ ---
15
+ # <%= title %>
16
+
17
+ Here's some *content*.
18
+ CONTENT
19
+ c.file "views/layouts/main.html.haml", <<-CONTENT.unindent
20
+ !!! 5
21
+ %html
22
+ %head
23
+ %title= title
24
+ %body
25
+ = yield
26
+ CONTENT
27
+
28
+ machined.compile
29
+
30
+ File.read("public/assets/main.js").should == "var app = {};\n"
31
+ File.read("public/assets/main.css").should == "body {\n color: red; }\n"
32
+ File.exist?("public/assets/logo.jpg").should be_true
33
+ File.read("public/index.html").should == <<-CONTENT.unindent
34
+ <!DOCTYPE html>
35
+ <html>
36
+ <head>
37
+ <title>Hello World</title>
38
+ </head>
39
+ <body>
40
+ <h1>Hello World</h1>
41
+
42
+ <p>Here's some <em>content</em>.</p>
43
+ </body>
44
+ </html>
45
+ CONTENT
46
+ end
47
+ end
48
+
49
+ it "generates digests when configured" do
50
+ within_construct do |c|
51
+ c.file "_/js/main.js", "var app = {};"
52
+ c.file "_/css/main.css", "body { color: red; }"
53
+ c.file "_/img/logo.jpg"
54
+ c.file "pages/index.html"
55
+
56
+ machined(:digest_assets => true, :assets_url => "/_", :assets_path => "_").compile
57
+
58
+ asset = machined.assets["main.js"]
59
+ File.read("public/_/main-#{asset.digest}.js").should == "var app = {};\n"
60
+ asset = machined.assets["main.css"]
61
+ File.read("public/_/main-#{asset.digest}.css").should == "body { color: red; }\n"
62
+ asset = machined.assets["logo.jpg"]
63
+ File.exist?("public/_/logo-#{asset.digest}.jpg").should be_true
64
+ asset = machined.pages["index.html"]
65
+ File.exist?("public/index-#{asset.digest}.html").should be_false
66
+ File.exist?("public/index.html").should be_true
67
+ end
68
+ end
69
+
70
+ it "generates gzipped files when configured" do
71
+ within_construct do |c|
72
+ c.file "assets/javascripts/main.js"
73
+ c.file "assets/stylesheets/main.css"
74
+ c.file "assets/images/logo.jpg"
75
+ c.file "pages/index.html"
76
+
77
+ machined(:gzip_assets => true).compile
78
+
79
+ File.exist?("public/assets/main.js.gz").should be_true
80
+ File.exist?("public/assets/main.css.gz").should be_true
81
+ File.exist?("public/assets/logo.jpg.gz").should_not be_true
82
+ File.exist?("public/index.html.gz").should_not be_true
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe Machined::Utils do
4
+ describe ".avialable_templates" do
5
+ it "returns the available Tilt templates" do
6
+ Machined::Utils.instance_variable_set "@available_templates", nil
7
+ available_templates = Machined::Utils.available_templates
8
+ available_templates[".markdown"].should be(Tilt::RDiscountTemplate)
9
+ available_templates[".md"].should be(Tilt::RDiscountTemplate)
10
+ available_templates[".haml"].should be(Tilt::HamlTemplate)
11
+ end
12
+ end
13
+
14
+ describe ".existent_directories" do
15
+ it "returns directories that exist in the given path" do
16
+ within_construct do |c|
17
+ c.directory "dir1"
18
+ c.directory "dir2"
19
+ c.directory "dir3"
20
+
21
+ Machined::Utils.existent_directories(c).should match_paths(%w(dir1 dir2 dir3)).with_root(c)
22
+ end
23
+ end
24
+
25
+ it "returns an empty array when the path is not a directory" do
26
+ within_construct do |c|
27
+ Machined::Utils.existent_directories(c.join("blank")).should == []
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ require "construct"
2
+ require "rack/test"
3
+ require "unindent"
4
+ require "machined"
5
+ require "sprockets"
6
+ require "crush"
7
+ require "slim"
8
+
9
+ # Requires supporting files with custom matchers and macros, etc,
10
+ # in ./support/ and its subdirectories.
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ RSpec.configure do |config|
14
+ config.include Construct::Helpers
15
+ config.include Machined::SpecHelpers
16
+ end
@@ -0,0 +1,59 @@
1
+ module Machined
2
+ module SpecHelpers
3
+ # Convenience method for creating a new Machined environment
4
+ def machined(config = {})
5
+ @machined ||= Machined::Environment.new(config)
6
+ end
7
+
8
+ # Convenience method for creating a new Machined sprocket,
9
+ # with an automatic reference to the current Machined
10
+ # environment instance.
11
+ def create_sprocket(config = {})
12
+ Machined::Sprocket.new machined, config
13
+ end
14
+
15
+ # Yields a real context instance, created from
16
+ # a file with the given +content+. The processed
17
+ # output from the file is the second yielded param.
18
+ def with_context(content = "")
19
+ within_construct do |c|
20
+ # Create the necessary files
21
+ path = c.directory "context"
22
+ path.file "machined.css.erb", content
23
+
24
+ # Create a sprocket that points to the correct dir
25
+ sprocket = create_sprocket
26
+ sprocket.append_path path
27
+
28
+ # Find the asset and yield the context and output
29
+ asset = sprocket["machined.css"]
30
+ yield asset.send(:blank_context), asset.to_s
31
+ end
32
+ end
33
+
34
+ # Runs the CLI with the given args.
35
+ def machined_cli(args, silence = true)
36
+ capture(:stdout) {
37
+ Machined::CLI.start args.split(" ")
38
+ }
39
+ end
40
+
41
+ # Captures the given stream and returns it:
42
+ #
43
+ # stream = capture(:stdout) { puts "Cool" }
44
+ # stream # => "Cool\n"
45
+ #
46
+ def capture(stream)
47
+ begin
48
+ stream = stream.to_s
49
+ eval "$#{stream} = StringIO.new"
50
+ yield
51
+ result = eval("$#{stream}").string
52
+ ensure
53
+ eval "$#{stream} = #{stream.upcase}"
54
+ end
55
+
56
+ result
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,20 @@
1
+ # Determines if the given `Array` of paths
2
+ # matches the expected `Array` of paths. For consistency,
3
+ # each path is converted to a string for comparison. Also,
4
+ # the expected paths can be joined with a root path, using
5
+ # the `with_root` method.
6
+ RSpec::Matchers.define :match_paths do |expected|
7
+ match do |actual|
8
+ expected.map!(&:to_s)
9
+ actual.map!(&:to_s)
10
+ expected.map! { |path| File.join(@root, path) } if @root
11
+
12
+ actual == expected
13
+ end
14
+
15
+ chain :with_root do |root|
16
+ @root = root.to_s
17
+ end
18
+
19
+ diffable
20
+ end
metadata ADDED
@@ -0,0 +1,389 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: machined
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Pete Browne
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-10-06 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ hash: 3
27
+ segments:
28
+ - 2
29
+ - 0
30
+ version: "2.0"
31
+ requirement: *id001
32
+ name: sprockets
33
+ prerelease: false
34
+ type: :runtime
35
+ - !ruby/object:Gem::Dependency
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ hash: 13
42
+ segments:
43
+ - 0
44
+ - 3
45
+ version: "0.3"
46
+ requirement: *id002
47
+ name: sprockets-sass
48
+ prerelease: false
49
+ type: :runtime
50
+ - !ruby/object:Gem::Dependency
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ hash: 31
57
+ segments:
58
+ - 0
59
+ - 10
60
+ version: "0.10"
61
+ requirement: *id003
62
+ name: padrino-helpers
63
+ prerelease: false
64
+ type: :runtime
65
+ - !ruby/object:Gem::Dependency
66
+ version_requirements: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ hash: 5
72
+ segments:
73
+ - 3
74
+ - 1
75
+ version: "3.1"
76
+ requirement: *id004
77
+ name: activesupport
78
+ prerelease: false
79
+ type: :runtime
80
+ - !ruby/object:Gem::Dependency
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ hash: 7
87
+ segments:
88
+ - 0
89
+ - 6
90
+ version: "0.6"
91
+ requirement: *id005
92
+ name: i18n
93
+ prerelease: false
94
+ type: :runtime
95
+ - !ruby/object:Gem::Dependency
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ hash: 23
102
+ segments:
103
+ - 0
104
+ - 14
105
+ version: "0.14"
106
+ requirement: *id006
107
+ name: thor
108
+ prerelease: false
109
+ type: :runtime
110
+ - !ruby/object:Gem::Dependency
111
+ version_requirements: &id007 !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ~>
115
+ - !ruby/object:Gem::Version
116
+ hash: 13
117
+ segments:
118
+ - 0
119
+ - 3
120
+ version: "0.3"
121
+ requirement: *id007
122
+ name: crush
123
+ prerelease: false
124
+ type: :runtime
125
+ - !ruby/object:Gem::Dependency
126
+ version_requirements: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ hash: 15
132
+ segments:
133
+ - 2
134
+ - 6
135
+ version: "2.6"
136
+ requirement: *id008
137
+ name: rspec
138
+ prerelease: false
139
+ type: :development
140
+ - !ruby/object:Gem::Dependency
141
+ version_requirements: &id009 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ~>
145
+ - !ruby/object:Gem::Version
146
+ hash: 7
147
+ segments:
148
+ - 0
149
+ - 6
150
+ version: "0.6"
151
+ requirement: *id009
152
+ name: rack-test
153
+ prerelease: false
154
+ type: :development
155
+ - !ruby/object:Gem::Dependency
156
+ version_requirements: &id010 !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ~>
160
+ - !ruby/object:Gem::Version
161
+ hash: 11
162
+ segments:
163
+ - 1
164
+ - 2
165
+ version: "1.2"
166
+ requirement: *id010
167
+ name: test-construct
168
+ prerelease: false
169
+ type: :development
170
+ - !ruby/object:Gem::Dependency
171
+ version_requirements: &id011 !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ~>
175
+ - !ruby/object:Gem::Version
176
+ hash: 15
177
+ segments:
178
+ - 1
179
+ - 0
180
+ version: "1.0"
181
+ requirement: *id011
182
+ name: unindent
183
+ prerelease: false
184
+ type: :development
185
+ - !ruby/object:Gem::Dependency
186
+ version_requirements: &id012 !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ hash: 3
192
+ segments:
193
+ - 0
194
+ version: "0"
195
+ requirement: *id012
196
+ name: haml
197
+ prerelease: false
198
+ type: :development
199
+ - !ruby/object:Gem::Dependency
200
+ version_requirements: &id013 !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ hash: 3
206
+ segments:
207
+ - 0
208
+ version: "0"
209
+ requirement: *id013
210
+ name: sass
211
+ prerelease: false
212
+ type: :development
213
+ - !ruby/object:Gem::Dependency
214
+ version_requirements: &id014 !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ requirement: *id014
224
+ name: slim
225
+ prerelease: false
226
+ type: :development
227
+ - !ruby/object:Gem::Dependency
228
+ version_requirements: &id015 !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ hash: 3
234
+ segments:
235
+ - 0
236
+ version: "0"
237
+ requirement: *id015
238
+ name: erubis
239
+ prerelease: false
240
+ type: :development
241
+ - !ruby/object:Gem::Dependency
242
+ version_requirements: &id016 !ruby/object:Gem::Requirement
243
+ none: false
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ hash: 3
248
+ segments:
249
+ - 0
250
+ version: "0"
251
+ requirement: *id016
252
+ name: rdiscount
253
+ prerelease: false
254
+ type: :development
255
+ - !ruby/object:Gem::Dependency
256
+ version_requirements: &id017 !ruby/object:Gem::Requirement
257
+ none: false
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ hash: 3
262
+ segments:
263
+ - 0
264
+ version: "0"
265
+ requirement: *id017
266
+ name: uglifier
267
+ prerelease: false
268
+ type: :development
269
+ - !ruby/object:Gem::Dependency
270
+ version_requirements: &id018 !ruby/object:Gem::Requirement
271
+ none: false
272
+ requirements:
273
+ - - ">="
274
+ - !ruby/object:Gem::Version
275
+ hash: 3
276
+ segments:
277
+ - 0
278
+ version: "0"
279
+ requirement: *id018
280
+ name: rake
281
+ prerelease: false
282
+ type: :development
283
+ description: Why another static site generator? Machined is for the developers who know and love the asset pipeline of Rails 3.1 and want to develop blazingly fast static websites. It's built from the ground up using Sprockets 2.0.
284
+ email:
285
+ - me@petebrowne.com
286
+ executables:
287
+ - machined
288
+ extensions: []
289
+
290
+ extra_rdoc_files: []
291
+
292
+ files:
293
+ - .gitignore
294
+ - Gemfile
295
+ - LICENSE
296
+ - README.md
297
+ - Rakefile
298
+ - bin/machined
299
+ - lib/machined.rb
300
+ - lib/machined/cli.rb
301
+ - lib/machined/context.rb
302
+ - lib/machined/environment.rb
303
+ - lib/machined/helpers/asset_tag_helpers.rb
304
+ - lib/machined/helpers/locals_helpers.rb
305
+ - lib/machined/helpers/output_helpers.rb
306
+ - lib/machined/helpers/render_helpers.rb
307
+ - lib/machined/processors/front_matter_processor.rb
308
+ - lib/machined/processors/layout_processor.rb
309
+ - lib/machined/server.rb
310
+ - lib/machined/sprocket.rb
311
+ - lib/machined/static_compiler.rb
312
+ - lib/machined/templates/site/Gemfile.tt
313
+ - lib/machined/templates/site/assets/images/.empty_directory
314
+ - lib/machined/templates/site/assets/javascripts/main.js.coffee
315
+ - lib/machined/templates/site/assets/stylesheets/main.css.scss
316
+ - lib/machined/templates/site/config.ru
317
+ - lib/machined/templates/site/machined.rb
318
+ - lib/machined/templates/site/pages/index.html.erb
319
+ - lib/machined/templates/site/public/.empty_directory
320
+ - lib/machined/templates/site/views/layouts/main.html.erb
321
+ - lib/machined/utils.rb
322
+ - lib/machined/version.rb
323
+ - machined.gemspec
324
+ - spec/machined/cli_spec.rb
325
+ - spec/machined/context_spec.rb
326
+ - spec/machined/environment_spec.rb
327
+ - spec/machined/helpers/asset_tag_helpers_spec.rb
328
+ - spec/machined/helpers/locals_helper_spec.rb
329
+ - spec/machined/helpers/output_helpers_spec.rb
330
+ - spec/machined/helpers/render_helpers_spec.rb
331
+ - spec/machined/processors/front_matter_processor_spec.rb
332
+ - spec/machined/processors/layout_processor_spec.rb
333
+ - spec/machined/server_spec.rb
334
+ - spec/machined/sprocket_spec.rb
335
+ - spec/machined/static_compiler_spec.rb
336
+ - spec/machined/utils_spec.rb
337
+ - spec/spec_helper.rb
338
+ - spec/support/helpers.rb
339
+ - spec/support/match_paths_matcher.rb
340
+ homepage: ""
341
+ licenses: []
342
+
343
+ post_install_message:
344
+ rdoc_options: []
345
+
346
+ require_paths:
347
+ - lib
348
+ required_ruby_version: !ruby/object:Gem::Requirement
349
+ none: false
350
+ requirements:
351
+ - - ">="
352
+ - !ruby/object:Gem::Version
353
+ hash: 3
354
+ segments:
355
+ - 0
356
+ version: "0"
357
+ required_rubygems_version: !ruby/object:Gem::Requirement
358
+ none: false
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ hash: 3
363
+ segments:
364
+ - 0
365
+ version: "0"
366
+ requirements: []
367
+
368
+ rubyforge_project: machined
369
+ rubygems_version: 1.8.5
370
+ signing_key:
371
+ specification_version: 3
372
+ summary: A static site generator and Rack server built using Sprockets 2.0
373
+ test_files:
374
+ - spec/machined/cli_spec.rb
375
+ - spec/machined/context_spec.rb
376
+ - spec/machined/environment_spec.rb
377
+ - spec/machined/helpers/asset_tag_helpers_spec.rb
378
+ - spec/machined/helpers/locals_helper_spec.rb
379
+ - spec/machined/helpers/output_helpers_spec.rb
380
+ - spec/machined/helpers/render_helpers_spec.rb
381
+ - spec/machined/processors/front_matter_processor_spec.rb
382
+ - spec/machined/processors/layout_processor_spec.rb
383
+ - spec/machined/server_spec.rb
384
+ - spec/machined/sprocket_spec.rb
385
+ - spec/machined/static_compiler_spec.rb
386
+ - spec/machined/utils_spec.rb
387
+ - spec/spec_helper.rb
388
+ - spec/support/helpers.rb
389
+ - spec/support/match_paths_matcher.rb