tdreyno-staticmatic 2.1.4 → 2.9.0
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/bin/sm-build +4 -0
- data/bin/sm-init +4 -0
- data/bin/sm-server +4 -0
- data/lib/staticmatic.rb +1 -0
- data/lib/staticmatic/autoload.rb +1 -4
- data/lib/staticmatic/base.rb +39 -93
- data/lib/staticmatic/builder.rb +59 -53
- data/lib/staticmatic/builder/dotnet.rb +44 -0
- data/lib/staticmatic/builder/html.rb +23 -0
- data/lib/staticmatic/generator.rb +3 -3
- data/lib/staticmatic/previewer.rb +23 -14
- data/lib/staticmatic/template.rb +97 -0
- data/lib/templates/{src/helpers → helpers}/site_helper.rb +0 -0
- data/lib/templates/{src/layouts → layouts}/site.html.haml +0 -0
- data/lib/templates/{src/pages → pages}/index.html.haml +0 -0
- data/lib/templates/{src/stylesheets → stylesheets}/site.css.sass +0 -0
- data/spec/action_view_helpers_spec.rb +1 -1
- data/spec/asset_helpers_spec.rb +9 -7
- data/spec/base_spec.rb +22 -10
- data/spec/builder_spec.rb +29 -33
- data/spec/fixtures/sample/{src/helpers → helpers}/speech_helper.rb +0 -0
- data/spec/fixtures/sample/{src/layouts → layouts}/site.html.erb +0 -0
- data/spec/fixtures/sample/{src/layouts → layouts}/specified_layout.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/_form.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/haml_test.html.haml +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/hello_world.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/index.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/liquid_test.html.liquid +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/markdown_test.html.markdown +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/page_with_error.html.haml +0 -0
- data/spec/fixtures/sample/pages/partial_test.html.erb +1 -0
- data/spec/fixtures/sample/{src/pages → pages}/services/index.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/services/web_development.html.erb +0 -0
- data/spec/fixtures/sample/{src/pages → pages}/specify_layout.html.erb +0 -0
- data/spec/fixtures/sample/pages/static.html +1 -0
- data/spec/fixtures/sample/{src/pages → pages}/textile_test.html.textile +0 -0
- data/spec/fixtures/sample/{src/stylesheets → stylesheets}/site.css.sass +0 -0
- data/spec/layouts_spec.rb +1 -2
- data/spec/rendering_spec.rb +4 -25
- metadata +66 -52
- data/bin/staticmatic +0 -5
- data/lib/templates/script/builder +0 -5
- data/lib/templates/script/server +0 -4
- data/spec/fixtures/sample/Rakefile +0 -4
- data/spec/fixtures/sample/config.rb +0 -3
data/bin/sm-build
ADDED
data/bin/sm-init
ADDED
data/bin/sm-server
ADDED
data/lib/staticmatic.rb
CHANGED
|
@@ -5,6 +5,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) unless
|
|
|
5
5
|
require 'rubygems'
|
|
6
6
|
require 'staticmatic/autoload'
|
|
7
7
|
|
|
8
|
+
gem 'actionpack', '2.1.2'
|
|
8
9
|
require 'active_support'
|
|
9
10
|
$LOAD_PATH.unshift Gem.required_location('actionpack', 'action_controller/vendor/html-scanner')
|
|
10
11
|
require 'action_view'
|
data/lib/staticmatic/autoload.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
module StaticMatic
|
|
2
2
|
autoload :Base, File.join(File.dirname(__FILE__), 'base')
|
|
3
|
+
autoload :Template, File.join(File.dirname(__FILE__), 'template')
|
|
3
4
|
autoload :Config, File.join(File.dirname(__FILE__), 'config')
|
|
4
5
|
autoload :Builder, File.join(File.dirname(__FILE__), 'builder')
|
|
5
6
|
autoload :Generator, File.join(File.dirname(__FILE__), 'generator')
|
|
@@ -14,8 +15,4 @@ module StaticMatic
|
|
|
14
15
|
|
|
15
16
|
module TemplateHandlers
|
|
16
17
|
end
|
|
17
|
-
|
|
18
|
-
module Generator
|
|
19
|
-
autoload :BuilderGenerator, File.join(File.dirname(__FILE__), 'builder')
|
|
20
|
-
end
|
|
21
18
|
end
|
data/lib/staticmatic/base.rb
CHANGED
|
@@ -2,12 +2,12 @@ module StaticMatic
|
|
|
2
2
|
class Base
|
|
3
3
|
include StaticMatic::Deprecation
|
|
4
4
|
|
|
5
|
-
attr_accessor :logger, :root_dir, :
|
|
5
|
+
attr_accessor :logger, :root_dir, :build_dir, :extentions, :guard
|
|
6
6
|
|
|
7
7
|
def initialize(root_dir)
|
|
8
8
|
@root_dir = root_dir
|
|
9
|
-
@src_dir = File.join(@root_dir, "src")
|
|
10
9
|
@build_dir = File.join(@root_dir, "build")
|
|
10
|
+
@guard = Mutex.new
|
|
11
11
|
|
|
12
12
|
# Setup logger
|
|
13
13
|
@logger = Logger.new(STDERR)
|
|
@@ -17,115 +17,61 @@ module StaticMatic
|
|
|
17
17
|
StaticMatic::Config.setup
|
|
18
18
|
config_file = File.join(@root_dir, "config.rb")
|
|
19
19
|
require config_file if File.exists? config_file
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# Checks to see if a template exists within a given path
|
|
23
|
-
#
|
|
24
|
-
# Current only used by the previewer as ActionView handles the actual checking
|
|
25
|
-
def can_render?(filename)
|
|
26
|
-
relative_path = full_template_path(filename)
|
|
27
|
-
view.template_format = determine_format_for(relative_path)
|
|
28
|
-
view.finder.class.reload!
|
|
29
|
-
view.finder.file_exists?(strip_extension(relative_path))
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def rendered_ext(filename)
|
|
33
|
-
regex = Regexp.new('\.(' + ActionView::Template.template_handler_extensions.join('|') + ')')
|
|
34
|
-
filename.gsub(regex, '')
|
|
20
|
+
|
|
21
|
+
@extentions = ActionView::Template.template_handler_extensions.map { |ext| ext.to_s }
|
|
35
22
|
end
|
|
36
23
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# For example: application.css.sass -> :css
|
|
40
|
-
def determine_format_for(filename)
|
|
41
|
-
extension = File.extname(filename)
|
|
42
|
-
|
|
43
|
-
# For templates that have only handler extensions, default for backwards compatibility
|
|
44
|
-
extension = ".html" if extension.empty? || extension == ".haml"
|
|
45
|
-
extension = ".css" if extension == ".sass"
|
|
46
|
-
|
|
47
|
-
extension[1,extension.length-1].to_sym
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def calculate_relative_path_to_root(template)
|
|
51
|
-
return '' if template.match(/^((\.\.?)?\/|\#|.+?\:)/)
|
|
52
|
-
|
|
53
|
-
current_page_depth = template.split('/').length - 2;
|
|
54
|
-
(current_page_depth > 0) ? ([ '..' ] * current_page_depth).join('/') + '/' : ''
|
|
24
|
+
def helpers
|
|
25
|
+
Dir[File.join(@root_dir, 'helpers', '**', '*_helper.rb')]
|
|
55
26
|
end
|
|
56
|
-
|
|
57
|
-
def render(filename)
|
|
58
|
-
load_helpers
|
|
59
|
-
filename = full_template_path(filename)
|
|
60
|
-
output = do_render(filename)
|
|
61
|
-
|
|
62
|
-
return output if determine_format_for(filename) == :css
|
|
63
|
-
layout = view.instance_variable_get("@layout")
|
|
64
|
-
layout = "site" if layout.nil?
|
|
65
|
-
return output unless layout
|
|
66
27
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def view
|
|
75
|
-
@view ||= begin
|
|
76
|
-
# Initialize View
|
|
77
|
-
view = ActionView::Base.new([], {}, self)
|
|
78
|
-
view.template_format = :html
|
|
79
|
-
view.finder.view_paths = [ @src_dir ]
|
|
80
|
-
view.instance_variable_set("@staticmatic", self)
|
|
81
|
-
view
|
|
28
|
+
def layouts
|
|
29
|
+
@layouts ||= Dir[File.join(@root_dir, "layouts", "*")].select do |path|
|
|
30
|
+
!File.directory?(path)
|
|
31
|
+
end.map do |path|
|
|
32
|
+
File.basename(path)
|
|
82
33
|
end
|
|
83
34
|
end
|
|
84
|
-
|
|
85
|
-
def do_render(filename)
|
|
86
|
-
view.instance_variable_set("@current_page", filename)
|
|
87
|
-
view.template_format = determine_format_for(filename)
|
|
88
|
-
view.render_file(strip_extension(filename), true)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def rescue_from_error(exception)
|
|
92
|
-
rescue_template = (exception == ActionView::TemplateError) ? "template_error" : "default_error"
|
|
93
|
-
error_template_path = File.expand_path(File.dirname(__FILE__) + "/templates/rescues/#{rescue_template}.html.erb")
|
|
94
35
|
|
|
95
|
-
|
|
96
|
-
|
|
36
|
+
def template(filename)
|
|
37
|
+
filename = full_template_path(filename)
|
|
38
|
+
@templates ||= {}
|
|
39
|
+
@templates[filename] ||= Template.new(filename, self)
|
|
97
40
|
end
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
41
|
+
|
|
42
|
+
def pages
|
|
43
|
+
@pages ||= Dir[File.join(@root_dir, "pages", "**/*")].select do |path|
|
|
44
|
+
!File.directory?(path) && File.basename(path) !~ /^_/
|
|
45
|
+
end.map do |path|
|
|
46
|
+
path.gsub("#{@root_dir}/", "")
|
|
47
|
+
end.partition do |relative_path|
|
|
48
|
+
can_render?(relative_path)
|
|
105
49
|
end
|
|
106
50
|
end
|
|
51
|
+
|
|
52
|
+
# Aliases
|
|
53
|
+
def dynamic_pages; pages.first; end
|
|
54
|
+
def static_pages; pages.last; end
|
|
55
|
+
|
|
56
|
+
# Delegate to Template class
|
|
57
|
+
def render(filename); template(filename).render; end
|
|
58
|
+
def rendered_ext(filename); template(filename).rendered_ext; end
|
|
59
|
+
def can_render?(filename)
|
|
60
|
+
return false if filename =~ /images\/|javascripts\//
|
|
61
|
+
template(filename).can_render?
|
|
62
|
+
end
|
|
107
63
|
|
|
64
|
+
protected
|
|
108
65
|
# Full path to a template, relative to src/
|
|
109
66
|
def full_template_path(template)
|
|
110
|
-
template = template.gsub("#{@
|
|
111
|
-
directory =
|
|
67
|
+
template = template.gsub("#{@root_dir}/", '')
|
|
68
|
+
directory = template.match(/^(\/)?(layouts|stylesheets|pages)/) ? "" : "pages"
|
|
112
69
|
template = File.join(directory, template) unless directory.empty?
|
|
113
70
|
|
|
114
|
-
path = File.join(File.expand_path(
|
|
71
|
+
path = File.join(File.expand_path(@root_dir), template)
|
|
115
72
|
template = File.join(template, "index") if File.directory? path
|
|
116
73
|
|
|
117
74
|
template
|
|
118
75
|
end
|
|
119
|
-
|
|
120
|
-
# Return the source directory for a given template
|
|
121
|
-
# Default is pages/
|
|
122
|
-
def template_directory_for(template)
|
|
123
|
-
template.match(/^(\/)?(layouts|stylesheets|pages)/) ? "" : "pages"
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
# Remove the extension from a given template path
|
|
127
|
-
def strip_extension(template)
|
|
128
|
-
template.split('.').first
|
|
129
|
-
end
|
|
130
76
|
end
|
|
131
77
|
end
|
data/lib/staticmatic/builder.rb
CHANGED
|
@@ -1,80 +1,86 @@
|
|
|
1
1
|
require 'templater'
|
|
2
|
+
require 'zip/zip'
|
|
3
|
+
require 'find'
|
|
4
|
+
require 'fileutils'
|
|
2
5
|
|
|
3
6
|
module StaticMatic
|
|
4
7
|
module Builder
|
|
5
8
|
extend Templater::Manifold
|
|
6
9
|
desc "Multiple ways to build a staticmatic site"
|
|
7
10
|
|
|
8
|
-
class
|
|
11
|
+
class BaseGenerator < Templater::Generator
|
|
9
12
|
# Setup StaticMatic site
|
|
10
13
|
def self.site; @@site ||= ::StaticMatic::Base.new(Dir.pwd); end
|
|
11
14
|
def site; self.class.site; end
|
|
12
15
|
|
|
13
16
|
# Define source and desintation
|
|
14
|
-
def self.source_root; site.
|
|
17
|
+
def self.source_root; site.root_dir; end
|
|
15
18
|
def destination_root; site.build_dir; end
|
|
16
19
|
|
|
17
|
-
# Override the
|
|
18
|
-
|
|
20
|
+
# Override template to ask staticmatic for the correct extension to output
|
|
21
|
+
# NOTE: could probably be better
|
|
19
22
|
def self.template(name, *args, &block)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# else
|
|
26
|
-
# HTMLTemplate
|
|
27
|
-
# end
|
|
28
|
-
|
|
29
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
|
30
|
-
source, destination = args
|
|
31
|
-
destination ||= source
|
|
32
|
-
templates << Templater::ActionDescription.new(name, options) do |generator|
|
|
33
|
-
HTMLTemplate.new(generator, name, source, destination, options)
|
|
23
|
+
ext = File.extname(args.first)
|
|
24
|
+
ext = ext[1..ext.length]
|
|
25
|
+
|
|
26
|
+
if (args[0] === args[1]) && (site.extentions.include? ext)
|
|
27
|
+
args[1] = site.rendered_ext(args[0])
|
|
34
28
|
end
|
|
29
|
+
|
|
30
|
+
super(name, *args, &block)
|
|
35
31
|
end
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Dir[File.join(base_path, "**", "*")].each do |path|
|
|
40
|
-
next if File.directory?(path)
|
|
41
|
-
relative_path = path.gsub("#{source_root}/", "")
|
|
42
|
-
|
|
43
|
-
if !%w(images javascripts).include?(dir) && site.can_render?(relative_path)
|
|
44
|
-
destination_path = site.rendered_ext(relative_path)
|
|
45
|
-
|
|
46
|
-
if dir == 'pages'
|
|
47
|
-
destination_path.gsub!("pages/", "")
|
|
48
|
-
next if destination_path =~ /^_/
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
template :rendered_file, relative_path, destination_path
|
|
52
|
-
else
|
|
53
|
-
file :static_file, relative_path
|
|
54
|
-
end
|
|
55
|
-
end
|
|
33
|
+
def render(action)
|
|
34
|
+
site.render(action.source)
|
|
56
35
|
end
|
|
57
36
|
end
|
|
58
37
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
38
|
+
require File.join(File.dirname(__FILE__), 'builder', 'html')
|
|
39
|
+
require File.join(File.dirname(__FILE__), 'builder', 'dotnet')
|
|
40
|
+
|
|
41
|
+
class BuilderGenerator < Templater::Generator
|
|
42
|
+
# Setup StaticMatic site
|
|
43
|
+
def self.site; @@site ||= ::StaticMatic::Base.new(Dir.pwd); end
|
|
44
|
+
def site; self.class.site; end
|
|
45
|
+
|
|
46
|
+
option :format, :default => :html, :desc => "Which format to export as (html, dotnet)"
|
|
47
|
+
option :package, :as => :boolean, :desc => "Build a Zip file"
|
|
48
|
+
|
|
49
|
+
invoke :build_html, :format => :html
|
|
50
|
+
invoke :build_dotnet, :format => :dotnet
|
|
51
|
+
|
|
52
|
+
def after_generation
|
|
53
|
+
return unless package
|
|
54
|
+
|
|
55
|
+
output_file = File.join(site.build_dir, "package.zip")
|
|
56
|
+
FileUtils.rm(output_file) if File.exists?(output_file)
|
|
57
|
+
|
|
58
|
+
Zip::ZipFile.open(output_file, Zip::ZipFile::CREATE) do |zipfile|
|
|
59
|
+
Find.find(site.build_dir) do |path|
|
|
60
|
+
Find.prune if File.basename(path)[0] == ?.
|
|
61
|
+
dest = /build\/(\w.*)/.match(path)
|
|
62
|
+
zipfile.add(dest[1], path) if dest
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
status_flag = "[PACKAGE]".rjust(12)
|
|
67
|
+
say "<%= color('#{status_flag}', :green) %> " + File.basename(output_file)
|
|
62
68
|
end
|
|
63
69
|
end
|
|
64
70
|
|
|
65
|
-
# class RailsTemplate < Templater::Actions::Template
|
|
66
|
-
# def render
|
|
67
|
-
# # No render, just copy it
|
|
68
|
-
# end
|
|
69
|
-
# end
|
|
70
|
-
#
|
|
71
|
-
# class DotNetTemplate < Templater::Actions::Template
|
|
72
|
-
# def render
|
|
73
|
-
# # Wrap with MasterPage tags
|
|
74
|
-
# @staticmatic.render(file_name) # no layout
|
|
75
|
-
# end
|
|
76
|
-
# end
|
|
77
|
-
|
|
78
71
|
add :build, BuilderGenerator
|
|
79
72
|
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Monkey-patch to use a dynamic renderer, not just ERb
|
|
76
|
+
class Templater::Actions::Template
|
|
77
|
+
# Re-route back to the generator
|
|
78
|
+
def render
|
|
79
|
+
if generator.respond_to? :render
|
|
80
|
+
generator.render(self)
|
|
81
|
+
else
|
|
82
|
+
context = generator.instance_eval 'binding'
|
|
83
|
+
ERB.new(::File.read(source), nil, '-').result(context)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
80
86
|
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module StaticMatic
|
|
2
|
+
module Builder
|
|
3
|
+
class DotNetGenerator < BaseGenerator
|
|
4
|
+
glob! "images", [] # No templates
|
|
5
|
+
glob! "javascripts", [] # No templates
|
|
6
|
+
glob! "stylesheets", site.extentions # Registered templates
|
|
7
|
+
|
|
8
|
+
# Run the dynamic pages through actionpack
|
|
9
|
+
site.dynamic_pages.each do |relative_path|
|
|
10
|
+
output_name = site.rendered_ext(relative_path).gsub("pages/", "")
|
|
11
|
+
template output_name.gsub('.', '_').to_sym, relative_path, output_name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Build master pages
|
|
15
|
+
site.layouts.each do |layout_name|
|
|
16
|
+
file_name = (site.layouts.length <= 1) ? "MasterPage" : layout_name.split('.')[0].capitalize
|
|
17
|
+
template :layout, File.join("layouts", layout_name), "#{file_name}.master"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Copy static pages
|
|
21
|
+
site.static_pages.each do |relative_path|
|
|
22
|
+
output_name = relative_path.gsub("pages/", "")
|
|
23
|
+
file output_name.gsub('.', '_').to_sym, relative_path, output_name
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def render(action)
|
|
27
|
+
if action.name == :layout
|
|
28
|
+
output = site.render_layout(action.source, '<asp:ContentPlaceHolder id="content" runat="server" />')
|
|
29
|
+
file_name = File.basename(action.destination).gsub(".master", '')
|
|
30
|
+
prefix = %Q(<%@ Master Language="C#" AutoEventWireup="true" CodeFile="#{file_name}.master.cs" Inherits="#{file_name}" %>)
|
|
31
|
+
output = prefix + "\n" + output
|
|
32
|
+
output.gsub!("<head", '<head runat="server"')
|
|
33
|
+
else
|
|
34
|
+
# replace content_for with <asp:whatevers
|
|
35
|
+
site.render(action.source)
|
|
36
|
+
#prefix = %Q(<%@ Master Language="C#" AutoEventWireup="true" CodeFile="#{file_name}.master.cs" Inherits="#{file_name}" %>)
|
|
37
|
+
#output = prefix + "\n" + output
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
add :build_dotnet, DotNetGenerator
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module StaticMatic
|
|
2
|
+
module Builder
|
|
3
|
+
class HTMLGenerator < BaseGenerator
|
|
4
|
+
glob! "images", [] # No templates
|
|
5
|
+
glob! "javascripts", [] # No templates
|
|
6
|
+
glob! "stylesheets", site.extentions # Registered templates
|
|
7
|
+
|
|
8
|
+
# Run the dynamic pages through actionpack
|
|
9
|
+
site.dynamic_pages.each do |relative_path|
|
|
10
|
+
output_name = site.rendered_ext(relative_path).gsub("pages/", "")
|
|
11
|
+
template output_name.gsub('.', '_').to_sym, relative_path, output_name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Copy static pages
|
|
15
|
+
site.static_pages.each do |relative_path|
|
|
16
|
+
output_name = relative_path.gsub("pages/", "")
|
|
17
|
+
file output_name.gsub('.', '_').to_sym, relative_path, output_name
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
add :build_html, HTMLGenerator
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -18,9 +18,9 @@ module StaticMatic
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
glob!
|
|
21
|
-
empty_directory :
|
|
22
|
-
empty_directory :javascripts,
|
|
23
|
-
empty_directory :
|
|
21
|
+
empty_directory :build, "build"
|
|
22
|
+
empty_directory :javascripts, "javascripts"
|
|
23
|
+
empty_directory :images, "images"
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
add :setup, StaticmaticGenerator
|
|
@@ -3,27 +3,36 @@ require 'mongrel'
|
|
|
3
3
|
module StaticMatic
|
|
4
4
|
class Previewer < Mongrel::HttpHandler
|
|
5
5
|
def initialize(staticmatic)
|
|
6
|
-
@files = Mongrel::DirHandler.new(staticmatic.
|
|
6
|
+
@files = Mongrel::DirHandler.new(staticmatic.root_dir, false)
|
|
7
|
+
@guard = Mutex.new
|
|
7
8
|
@staticmatic = staticmatic
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def process(request, response)
|
|
12
|
+
return if response.socket.closed?
|
|
13
|
+
|
|
11
14
|
path_info = request.params[Mongrel::Const::PATH_INFO].chomp("/")
|
|
12
15
|
get_or_head = %w(GET HEAD).include? request.params[Mongrel::Const::REQUEST_METHOD]
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
# Reload(and therefore can_render?) is not thread-safe... so lame
|
|
18
|
+
@guard.synchronize {
|
|
19
|
+
if @staticmatic.can_render? path_info
|
|
20
|
+
file_ext = File.extname(path_info).gsub(/^\./, '')
|
|
21
|
+
file_ext = "html" if file_ext.blank?
|
|
22
|
+
file_name = CGI::unescape(path_info).gsub!(/^\//, '') || ''
|
|
23
|
+
begin
|
|
24
|
+
response.start(200) do |head, out|
|
|
25
|
+
output = @staticmatic.render(file_name)
|
|
26
|
+
head[Mongrel::Const::CONTENT_TYPE] = Mongrel::DirHandler::MIME_TYPES[".#{file_ext}"] || "application/octet-stream"
|
|
27
|
+
out.write(output || "")
|
|
28
|
+
end
|
|
29
|
+
rescue Errno::EPIPE
|
|
30
|
+
response.socket.close
|
|
31
|
+
end
|
|
32
|
+
elsif get_or_head and @files.can_serve(path_info)
|
|
33
|
+
@files.process(request, response) # try to serve static file from site dir
|
|
34
|
+
end
|
|
35
|
+
}
|
|
27
36
|
end
|
|
28
37
|
|
|
29
38
|
class << self
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
module StaticMatic
|
|
2
|
+
class Template
|
|
3
|
+
attr_accessor :view, :path
|
|
4
|
+
|
|
5
|
+
def initialize(filename, site)
|
|
6
|
+
@path = filename
|
|
7
|
+
@site = site
|
|
8
|
+
|
|
9
|
+
@view = ActionView::Base.new([], {}, self)
|
|
10
|
+
@view.template_format = determine_format_for(@path)
|
|
11
|
+
@view.finder.view_paths = [ @site.root_dir ]
|
|
12
|
+
@view.instance_variable_set("@staticmatic", @site)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def can_render?
|
|
16
|
+
@view.finder.class.reload!
|
|
17
|
+
@view.finder.file_exists?(strip_extension(@path))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def render
|
|
21
|
+
load_helpers
|
|
22
|
+
|
|
23
|
+
@view.instance_variable_set("@current_page", File.basename(@path))
|
|
24
|
+
output = @view.render_file(strip_extension(@path), true)
|
|
25
|
+
return output if layout === false
|
|
26
|
+
|
|
27
|
+
render_with_layout(layout, output)
|
|
28
|
+
rescue Exception => e
|
|
29
|
+
rescue_from_error(e)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def rendered_ext
|
|
33
|
+
@path.gsub(Regexp.new('\.(' + @site.extentions.join('|') + ')'), '')
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
protected
|
|
37
|
+
def render_with_layout(layout, content)
|
|
38
|
+
#layout = full_template_path(layout).gsub("pages/", "layouts/")
|
|
39
|
+
@view.instance_variable_set("@content_for_layout", content)
|
|
40
|
+
output = @view.render_file("layouts/#{layout}", true)
|
|
41
|
+
|
|
42
|
+
# little bit of cleaning for content_for blocks which concat by default (wtf?)
|
|
43
|
+
@view.instance_variables.grep(/content_for_|layout/).select do |name|
|
|
44
|
+
name != "content_for_layout"
|
|
45
|
+
end.each do |name|
|
|
46
|
+
@view.instance_variable_set(name, nil)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
output
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def layout
|
|
53
|
+
return false unless @path.include? "pages"
|
|
54
|
+
|
|
55
|
+
layout = @view.instance_variable_get("@layout")
|
|
56
|
+
layout = "site" if layout.nil? # @layout = false is valid
|
|
57
|
+
layout
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def rescue_from_error(exception)
|
|
61
|
+
rescue_template = (exception == ActionView::TemplateError) ? "template_error" : "default_error"
|
|
62
|
+
error_template_path = File.expand_path(File.dirname(__FILE__) + "/templates/rescues/#{rescue_template}.html.erb")
|
|
63
|
+
|
|
64
|
+
@view.instance_variable_set("@exception", exception)
|
|
65
|
+
@view.render_file(error_template_path, false)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Return the format for a given template path
|
|
69
|
+
#
|
|
70
|
+
# For example: application.css.sass -> :css
|
|
71
|
+
def determine_format_for(filename)
|
|
72
|
+
if File.extname(filename).empty? || filename =~ /(\.html|\.haml)/
|
|
73
|
+
extension = ".html"
|
|
74
|
+
elsif filename =~ /(\.css|\.sass)/
|
|
75
|
+
extension = ".css"
|
|
76
|
+
else
|
|
77
|
+
extension = File.extname(filename)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
extension[1,extension.length-1].to_sym
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Load all helpers from src/helpers/
|
|
84
|
+
def load_helpers
|
|
85
|
+
@site.helpers.each do |helper|
|
|
86
|
+
load(helper)
|
|
87
|
+
module_name = File.basename(helper, '.rb').gsub(/(^|\_)./) { |c| c.upcase }.gsub(/\_/, '')
|
|
88
|
+
ActionView::Base.class_eval("include #{module_name}")
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Remove the extension from a given template path
|
|
93
|
+
def strip_extension(template)
|
|
94
|
+
template.split('.').first
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/asset_helpers_spec.rb
CHANGED
|
@@ -7,16 +7,18 @@ describe "Asset Helpers" do
|
|
|
7
7
|
|
|
8
8
|
include StaticMatic::Helpers::AssetTagHelper
|
|
9
9
|
before :all do
|
|
10
|
-
@
|
|
11
|
-
@staticmatic = StaticMatic::Base.new(@sample_site_path)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it "should render partial" do
|
|
15
|
-
@staticmatic.view.render(:partial => "pages/form").should include("This is a form")
|
|
10
|
+
@staticmatic = StaticMatic::Base.new(File.dirname(__FILE__) + "/fixtures/sample")
|
|
16
11
|
end
|
|
17
12
|
|
|
18
13
|
it "should generate stylesheet link" do
|
|
19
|
-
@relative_path_to_root =
|
|
14
|
+
@relative_path_to_root = calculate_relative_path_to_root('pages/services/web_development/costs')
|
|
20
15
|
stylesheet_link_tag("site").should include("../../stylesheets/site.css")
|
|
21
16
|
end
|
|
17
|
+
|
|
18
|
+
def calculate_relative_path_to_root(template)
|
|
19
|
+
return '' if template.match(/^((\.\.?)?\/|\#|.+?\:)/)
|
|
20
|
+
|
|
21
|
+
current_page_depth = template.split('/').length - 2;
|
|
22
|
+
(current_page_depth > 0) ? ([ '..' ] * current_page_depth).join('/') + '/' : ''
|
|
23
|
+
end
|
|
22
24
|
end
|
data/spec/base_spec.rb
CHANGED
|
@@ -6,6 +6,23 @@ describe StaticMatic::Base do
|
|
|
6
6
|
@staticmatic = StaticMatic::Base.new(@sample_site_path)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
it "should list static pages" do
|
|
10
|
+
@staticmatic.static_pages.should include("pages/static.html")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Depending on system gems, markdown/textile files would be listed here too
|
|
14
|
+
it "should list dynamic pages" do
|
|
15
|
+
["pages/haml_test.html.haml", "pages/hello_world.html.erb", "pages/index.html.erb",
|
|
16
|
+
"pages/no_layout.html.erb", "pages/page_with_error.html.haml", "pages/services/index.html.erb",
|
|
17
|
+
"pages/services/web_development.html.erb", "pages/specify_layout.html.erb"].each do |path|
|
|
18
|
+
@staticmatic.dynamic_pages.should include(path)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should list layouts" do
|
|
23
|
+
@staticmatic.layouts.should == %w(site.html.erb specified_layout.html.erb)
|
|
24
|
+
end
|
|
25
|
+
|
|
9
26
|
it "should catch any haml template errors" do
|
|
10
27
|
output = @staticmatic.render("page_with_error")
|
|
11
28
|
output.should include("Illegal nesting")
|
|
@@ -17,13 +34,13 @@ describe StaticMatic::Base do
|
|
|
17
34
|
end
|
|
18
35
|
|
|
19
36
|
it "should load custom helpers" do
|
|
20
|
-
@staticmatic.view.respond_to?(:say).should be_true
|
|
37
|
+
@staticmatic.template("haml_test").view.respond_to?(:say).should be_true
|
|
21
38
|
end
|
|
22
39
|
|
|
23
40
|
it "should determine template directory for file" do
|
|
24
|
-
@staticmatic.
|
|
25
|
-
@staticmatic.
|
|
26
|
-
@staticmatic.
|
|
41
|
+
@staticmatic.template("stylesheets/site.css").path.should_not include("pages/")
|
|
42
|
+
@staticmatic.template("hello_world.html").path.should include("pages/")
|
|
43
|
+
@staticmatic.template("haml_test").path.should include("pages/")
|
|
27
44
|
end
|
|
28
45
|
|
|
29
46
|
it "should know if we can render a template or not" do
|
|
@@ -32,11 +49,6 @@ describe StaticMatic::Base do
|
|
|
32
49
|
end
|
|
33
50
|
|
|
34
51
|
it "should add index if needed" do
|
|
35
|
-
@staticmatic.
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "should know the relative path to the base dir" do
|
|
39
|
-
@staticmatic.calculate_relative_path_to_root("pages/services/web_development/costs").should == "../../"
|
|
40
|
-
@staticmatic.calculate_relative_path_to_root("pages/services/web_development").should == "../"
|
|
52
|
+
@staticmatic.template("services").path.should == "pages/services/index"
|
|
41
53
|
end
|
|
42
54
|
end
|
data/spec/builder_spec.rb
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
# build_site
|
|
31
|
-
# File.exists?("#{@root_dir}/build/_partial.html").should be_false
|
|
32
|
-
# end
|
|
33
|
-
# end
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "staticmatic")
|
|
2
|
+
|
|
3
|
+
describe StaticMatic::Builder do
|
|
4
|
+
before :each do
|
|
5
|
+
@root_dir = File.expand_path(File.join(File.dirname(__FILE__), "fixtures", "builder-test"))
|
|
6
|
+
@init_cmd = File.expand_path(File.join(File.dirname(__FILE__), "..", "bin", "sm-init"))
|
|
7
|
+
@build_cmd = File.expand_path(File.join(File.dirname(__FILE__), "..", "bin", "sm-build"))
|
|
8
|
+
|
|
9
|
+
`cd #{File.dirname(@root_dir)} && #{@init_cmd} #{File.basename(@root_dir)}`
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after :each do
|
|
13
|
+
FileUtils.rm_rf(@root_dir)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should build normal files" do
|
|
17
|
+
`cd #{@root_dir} && #{@build_cmd}`
|
|
18
|
+
File.exists?("#{@root_dir}/build/index.html").should_not be_false
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should not build partial files" do
|
|
22
|
+
File.open("#{@root_dir}/pages/_partial.html.erb", "w") do |f|
|
|
23
|
+
f.puts "Test"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
`cd #{@root_dir} && #{@build_cmd}`
|
|
27
|
+
File.exists?("#{@root_dir}/build/_partial.html").should be_false
|
|
28
|
+
end
|
|
29
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render(:partial => "pages/form") %>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Static, no code!
|
|
File without changes
|
|
File without changes
|
data/spec/layouts_spec.rb
CHANGED
|
@@ -18,8 +18,7 @@ describe StaticMatic::Base do
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it "should clean layout variable for next request" do
|
|
21
|
-
|
|
22
|
-
@staticmatic.view.instance_variable_get("@layout").should be_nil
|
|
21
|
+
@staticmatic.template("specify_layout").view.instance_variable_get("@layout").should be_nil
|
|
23
22
|
end
|
|
24
23
|
|
|
25
24
|
it "should allow disabling the layout" do
|
data/spec/rendering_spec.rb
CHANGED
|
@@ -25,27 +25,6 @@ describe StaticMatic::Base do
|
|
|
25
25
|
output = @staticmatic.render("haml_test")
|
|
26
26
|
output.should include("<strong>Hello from haml</strong>")
|
|
27
27
|
end
|
|
28
|
-
|
|
29
|
-
if ActionView::Template.template_handler_extensions.include? :markdown
|
|
30
|
-
it "should render markdown template" do
|
|
31
|
-
output = @staticmatic.render("markdown_test")
|
|
32
|
-
output.should match(/<strong>Hello from markdown<\/strong>/)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
if ActionView::Template.template_handler_extensions.include? :textile
|
|
37
|
-
it "should render textile template" do
|
|
38
|
-
output = @staticmatic.render("textile_test")
|
|
39
|
-
output.should match(/<strong>Hello from textile<\/strong>/)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
if ActionView::Template.template_handler_extensions.include? :liquid
|
|
44
|
-
it "should render liquid template" do
|
|
45
|
-
output = @staticmatic.render("liquid_test")
|
|
46
|
-
output.should match(/<strong>Hello from liquid<\/strong>/)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
28
|
|
|
50
29
|
it "should register a css renderer" do
|
|
51
30
|
output = @staticmatic.render("stylesheets/site.css")
|
|
@@ -54,16 +33,16 @@ describe StaticMatic::Base do
|
|
|
54
33
|
end
|
|
55
34
|
|
|
56
35
|
it "should setup up css type correctly" do
|
|
57
|
-
@staticmatic.
|
|
36
|
+
@staticmatic.template("stylesheets/site.css").view.template_format.should == :css
|
|
58
37
|
end
|
|
59
38
|
|
|
60
39
|
it "should determine format for file with extension" do
|
|
61
|
-
@staticmatic.
|
|
40
|
+
@staticmatic.template("stylesheets/site.css.sass").view.template_format.should == :css
|
|
62
41
|
end
|
|
63
42
|
|
|
64
43
|
it "should have sensible defaults for haml & sass" do
|
|
65
|
-
@staticmatic.
|
|
66
|
-
@staticmatic.
|
|
44
|
+
@staticmatic.template("stylesheets/site.sass").view.template_format.should == :css
|
|
45
|
+
@staticmatic.template("pages/test.haml").view.template_format.should == :html
|
|
67
46
|
end
|
|
68
47
|
|
|
69
48
|
it "should render index template from sub-directory" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tdreyno-staticmatic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stephen Bartholomew
|
|
@@ -10,20 +10,20 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2008-
|
|
14
|
-
default_executable:
|
|
13
|
+
date: 2008-11-05 00:00:00 -08:00
|
|
14
|
+
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
|
-
name:
|
|
17
|
+
name: mongrel
|
|
18
18
|
version_requirement:
|
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
|
20
20
|
requirements:
|
|
21
21
|
- - ">="
|
|
22
22
|
- !ruby/object:Gem::Version
|
|
23
|
-
version: 0
|
|
23
|
+
version: "0"
|
|
24
24
|
version:
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
|
-
name:
|
|
26
|
+
name: rubyzip
|
|
27
27
|
version_requirement:
|
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
@@ -31,6 +31,15 @@ dependencies:
|
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: "0"
|
|
33
33
|
version:
|
|
34
|
+
- !ruby/object:Gem::Dependency
|
|
35
|
+
name: templater
|
|
36
|
+
version_requirement:
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - ">="
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: 0.3.5
|
|
42
|
+
version:
|
|
34
43
|
- !ruby/object:Gem::Dependency
|
|
35
44
|
name: haml
|
|
36
45
|
version_requirement:
|
|
@@ -45,38 +54,45 @@ dependencies:
|
|
|
45
54
|
version_requirement:
|
|
46
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
47
56
|
requirements:
|
|
48
|
-
- - "
|
|
57
|
+
- - "="
|
|
49
58
|
- !ruby/object:Gem::Version
|
|
50
|
-
version: 2.1.
|
|
59
|
+
version: 2.1.2
|
|
51
60
|
version:
|
|
52
61
|
- !ruby/object:Gem::Dependency
|
|
53
62
|
name: activesupport
|
|
54
63
|
version_requirement:
|
|
55
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
56
65
|
requirements:
|
|
57
|
-
- - "
|
|
66
|
+
- - "="
|
|
58
67
|
- !ruby/object:Gem::Version
|
|
59
|
-
version: 2.1.
|
|
68
|
+
version: 2.1.2
|
|
60
69
|
version:
|
|
61
70
|
description:
|
|
62
71
|
email: tdreyno@gmail.com
|
|
63
72
|
executables:
|
|
64
|
-
-
|
|
73
|
+
- sm-init
|
|
74
|
+
- sm-build
|
|
75
|
+
- sm-server
|
|
65
76
|
extensions: []
|
|
66
77
|
|
|
67
78
|
extra_rdoc_files: []
|
|
68
79
|
|
|
69
80
|
files:
|
|
70
81
|
- LICENSE
|
|
71
|
-
- bin/
|
|
82
|
+
- bin/sm-init
|
|
83
|
+
- bin/sm-build
|
|
84
|
+
- bin/sm-server
|
|
72
85
|
- lib/staticmatic.rb
|
|
73
86
|
- lib/staticmatic/autoload.rb
|
|
74
87
|
- lib/staticmatic/base.rb
|
|
75
88
|
- lib/staticmatic/builder.rb
|
|
89
|
+
- lib/staticmatic/builder/html.rb
|
|
90
|
+
- lib/staticmatic/builder/dotnet.rb
|
|
76
91
|
- lib/staticmatic/config.rb
|
|
77
92
|
- lib/staticmatic/deprecation.rb
|
|
78
93
|
- lib/staticmatic/generator.rb
|
|
79
94
|
- lib/staticmatic/previewer.rb
|
|
95
|
+
- lib/staticmatic/template.rb
|
|
80
96
|
- lib/staticmatic/actionpack_support/mime.rb
|
|
81
97
|
- lib/staticmatic/actionpack_support/remove_partial_benchmark.rb
|
|
82
98
|
- lib/staticmatic/actionpack_support/remove_controller_caching.rb
|
|
@@ -90,12 +106,10 @@ files:
|
|
|
90
106
|
- lib/staticmatic/template_handlers/textile.rb
|
|
91
107
|
- lib/staticmatic/templates/rescues/default_error.html.erb
|
|
92
108
|
- lib/staticmatic/templates/rescues/template_error.html.erb
|
|
93
|
-
- lib/templates/
|
|
94
|
-
- lib/templates/
|
|
95
|
-
- lib/templates/
|
|
96
|
-
- lib/templates/
|
|
97
|
-
- lib/templates/src/pages/index.html.haml
|
|
98
|
-
- lib/templates/src/stylesheets/site.css.sass
|
|
109
|
+
- lib/templates/helpers/site_helper.rb
|
|
110
|
+
- lib/templates/layouts/site.html.haml
|
|
111
|
+
- lib/templates/pages/index.html.haml
|
|
112
|
+
- lib/templates/stylesheets/site.css.sass
|
|
99
113
|
- spec/action_view_helpers_spec.rb
|
|
100
114
|
- spec/asset_helpers_spec.rb
|
|
101
115
|
- spec/base_spec.rb
|
|
@@ -104,8 +118,6 @@ files:
|
|
|
104
118
|
- spec/deprecation_spec.rb
|
|
105
119
|
- spec/layouts_spec.rb
|
|
106
120
|
- spec/rendering_spec.rb
|
|
107
|
-
- spec/fixtures/sample/Rakefile
|
|
108
|
-
- spec/fixtures/sample/config.rb
|
|
109
121
|
- spec/fixtures/sample/build/haml_test.html
|
|
110
122
|
- spec/fixtures/sample/build/hello_world.html
|
|
111
123
|
- spec/fixtures/sample/build/index.html
|
|
@@ -113,21 +125,23 @@ files:
|
|
|
113
125
|
- spec/fixtures/sample/build/services/index.html
|
|
114
126
|
- spec/fixtures/sample/build/services/web_development.html
|
|
115
127
|
- spec/fixtures/sample/build/stylesheets/site.css
|
|
116
|
-
- spec/fixtures/sample/
|
|
117
|
-
- spec/fixtures/sample/
|
|
118
|
-
- spec/fixtures/sample/
|
|
119
|
-
- spec/fixtures/sample/
|
|
120
|
-
- spec/fixtures/sample/
|
|
121
|
-
- spec/fixtures/sample/
|
|
122
|
-
- spec/fixtures/sample/
|
|
123
|
-
- spec/fixtures/sample/
|
|
124
|
-
- spec/fixtures/sample/
|
|
125
|
-
- spec/fixtures/sample/
|
|
126
|
-
- spec/fixtures/sample/
|
|
127
|
-
- spec/fixtures/sample/
|
|
128
|
-
- spec/fixtures/sample/
|
|
129
|
-
- spec/fixtures/sample/
|
|
130
|
-
- spec/fixtures/sample/
|
|
128
|
+
- spec/fixtures/sample/helpers/speech_helper.rb
|
|
129
|
+
- spec/fixtures/sample/layouts/site.html.erb
|
|
130
|
+
- spec/fixtures/sample/layouts/specified_layout.html.erb
|
|
131
|
+
- spec/fixtures/sample/pages/_form.html.erb
|
|
132
|
+
- spec/fixtures/sample/pages/haml_test.html.haml
|
|
133
|
+
- spec/fixtures/sample/pages/hello_world.html.erb
|
|
134
|
+
- spec/fixtures/sample/pages/index.html.erb
|
|
135
|
+
- spec/fixtures/sample/pages/partial_test.html.erb
|
|
136
|
+
- spec/fixtures/sample/pages/liquid_test.html.liquid
|
|
137
|
+
- spec/fixtures/sample/pages/markdown_test.html.markdown
|
|
138
|
+
- spec/fixtures/sample/pages/page_with_error.html.haml
|
|
139
|
+
- spec/fixtures/sample/pages/specify_layout.html.erb
|
|
140
|
+
- spec/fixtures/sample/pages/static.html
|
|
141
|
+
- spec/fixtures/sample/pages/textile_test.html.textile
|
|
142
|
+
- spec/fixtures/sample/pages/services/index.html.erb
|
|
143
|
+
- spec/fixtures/sample/pages/services/web_development.html.erb
|
|
144
|
+
- spec/fixtures/sample/stylesheets/site.css.sass
|
|
131
145
|
has_rdoc: false
|
|
132
146
|
homepage: http://github.com/tdreyno/staticmatic
|
|
133
147
|
post_install_message:
|
|
@@ -163,8 +177,6 @@ test_files:
|
|
|
163
177
|
- spec/deprecation_spec.rb
|
|
164
178
|
- spec/layouts_spec.rb
|
|
165
179
|
- spec/rendering_spec.rb
|
|
166
|
-
- spec/fixtures/sample/Rakefile
|
|
167
|
-
- spec/fixtures/sample/config.rb
|
|
168
180
|
- spec/fixtures/sample/build/haml_test.html
|
|
169
181
|
- spec/fixtures/sample/build/hello_world.html
|
|
170
182
|
- spec/fixtures/sample/build/index.html
|
|
@@ -172,18 +184,20 @@ test_files:
|
|
|
172
184
|
- spec/fixtures/sample/build/services/index.html
|
|
173
185
|
- spec/fixtures/sample/build/services/web_development.html
|
|
174
186
|
- spec/fixtures/sample/build/stylesheets/site.css
|
|
175
|
-
- spec/fixtures/sample/
|
|
176
|
-
- spec/fixtures/sample/
|
|
177
|
-
- spec/fixtures/sample/
|
|
178
|
-
- spec/fixtures/sample/
|
|
179
|
-
- spec/fixtures/sample/
|
|
180
|
-
- spec/fixtures/sample/
|
|
181
|
-
- spec/fixtures/sample/
|
|
182
|
-
- spec/fixtures/sample/
|
|
183
|
-
- spec/fixtures/sample/
|
|
184
|
-
- spec/fixtures/sample/
|
|
185
|
-
- spec/fixtures/sample/
|
|
186
|
-
- spec/fixtures/sample/
|
|
187
|
-
- spec/fixtures/sample/
|
|
188
|
-
- spec/fixtures/sample/
|
|
189
|
-
- spec/fixtures/sample/
|
|
187
|
+
- spec/fixtures/sample/helpers/speech_helper.rb
|
|
188
|
+
- spec/fixtures/sample/layouts/site.html.erb
|
|
189
|
+
- spec/fixtures/sample/layouts/specified_layout.html.erb
|
|
190
|
+
- spec/fixtures/sample/pages/_form.html.erb
|
|
191
|
+
- spec/fixtures/sample/pages/haml_test.html.haml
|
|
192
|
+
- spec/fixtures/sample/pages/hello_world.html.erb
|
|
193
|
+
- spec/fixtures/sample/pages/index.html.erb
|
|
194
|
+
- spec/fixtures/sample/pages/partial_test.html.erb
|
|
195
|
+
- spec/fixtures/sample/pages/liquid_test.html.liquid
|
|
196
|
+
- spec/fixtures/sample/pages/markdown_test.html.markdown
|
|
197
|
+
- spec/fixtures/sample/pages/page_with_error.html.haml
|
|
198
|
+
- spec/fixtures/sample/pages/specify_layout.html.erb
|
|
199
|
+
- spec/fixtures/sample/pages/static.html
|
|
200
|
+
- spec/fixtures/sample/pages/textile_test.html.textile
|
|
201
|
+
- spec/fixtures/sample/pages/services/index.html.erb
|
|
202
|
+
- spec/fixtures/sample/pages/services/web_development.html.erb
|
|
203
|
+
- spec/fixtures/sample/stylesheets/site.css.sass
|
data/bin/staticmatic
DELETED
data/lib/templates/script/server
DELETED