machined 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +49 -0
- data/Rakefile +6 -0
- data/bin/machined +4 -0
- data/lib/machined.rb +23 -0
- data/lib/machined/cli.rb +99 -0
- data/lib/machined/context.rb +52 -0
- data/lib/machined/environment.rb +297 -0
- data/lib/machined/helpers/asset_tag_helpers.rb +135 -0
- data/lib/machined/helpers/locals_helpers.rb +57 -0
- data/lib/machined/helpers/output_helpers.rb +43 -0
- data/lib/machined/helpers/render_helpers.rb +138 -0
- data/lib/machined/processors/front_matter_processor.rb +35 -0
- data/lib/machined/processors/layout_processor.rb +71 -0
- data/lib/machined/server.rb +37 -0
- data/lib/machined/sprocket.rb +55 -0
- data/lib/machined/static_compiler.rb +71 -0
- data/lib/machined/templates/site/Gemfile.tt +10 -0
- data/lib/machined/templates/site/assets/images/.empty_directory +0 -0
- data/lib/machined/templates/site/assets/javascripts/main.js.coffee +0 -0
- data/lib/machined/templates/site/assets/stylesheets/main.css.scss +0 -0
- data/lib/machined/templates/site/config.ru +2 -0
- data/lib/machined/templates/site/machined.rb +17 -0
- data/lib/machined/templates/site/pages/index.html.erb +5 -0
- data/lib/machined/templates/site/public/.empty_directory +0 -0
- data/lib/machined/templates/site/views/layouts/main.html.erb +12 -0
- data/lib/machined/utils.rb +31 -0
- data/lib/machined/version.rb +3 -0
- data/machined.gemspec +39 -0
- data/spec/machined/cli_spec.rb +154 -0
- data/spec/machined/context_spec.rb +20 -0
- data/spec/machined/environment_spec.rb +202 -0
- data/spec/machined/helpers/asset_tag_helpers_spec.rb +95 -0
- data/spec/machined/helpers/locals_helper_spec.rb +37 -0
- data/spec/machined/helpers/output_helpers_spec.rb +81 -0
- data/spec/machined/helpers/render_helpers_spec.rb +53 -0
- data/spec/machined/processors/front_matter_processor_spec.rb +42 -0
- data/spec/machined/processors/layout_processor_spec.rb +32 -0
- data/spec/machined/server_spec.rb +77 -0
- data/spec/machined/sprocket_spec.rb +36 -0
- data/spec/machined/static_compiler_spec.rb +85 -0
- data/spec/machined/utils_spec.rb +31 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/support/helpers.rb +59 -0
- data/spec/support/match_paths_matcher.rb +20 -0
- 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
|
data/spec/spec_helper.rb
ADDED
@@ -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
|