hydeweb 0.0.1.pre3 → 0.0.1.pre4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +5 -7
- data/VERSION +1 -1
- data/bin/hyde +2 -2
- data/data/new_site/.gitignore +24 -0
- data/data/new_site/_config.yml +1 -1
- data/data/new_site/layouts/default.haml +1 -1
- data/data/new_site/site/index.html.haml +5 -0
- data/lib/hyde/init.rb +7 -0
- data/lib/hyde/ostruct.rb +4 -0
- data/lib/hyde/page.rb +36 -12
- data/lib/hyde/project.rb +30 -15
- data/lib/hyde/renderer.rb +52 -7
- data/lib/hyde/renderers.rb +41 -9
- data/lib/hyde/scope.rb +12 -0
- data/lib/hyde/template_helpers.rb +6 -0
- data/lib/hyde.rb +8 -0
- data/test/fixtures/custom/layouts/default.haml +3 -1
- data/test/fixtures/custom/layouts/erbtest.erb +2 -0
- data/test/fixtures/custom/site/assets/common.css.less +1 -0
- data/test/fixtures/custom/site/assets/style.css.less +3 -0
- data/test/fixtures/custom/site/lol.html.erb +7 -0
- data/test/fixtures/custom/site/markdown.html.md +8 -0
- data/test/fixtures/custom/{www → www_control}/about/index.html +0 -0
- data/test/fixtures/custom/www_control/assets/common.css +1 -0
- data/test/fixtures/custom/www_control/assets/style.css +6 -0
- data/test/fixtures/custom/{www → www_control}/foo.html +0 -0
- data/test/fixtures/custom/{www → www_control}/index.html +0 -0
- data/test/fixtures/custom/{www → www_control}/layout_test.html +0 -0
- data/test/fixtures/custom/www_control/lol.html +5 -0
- data/test/fixtures/custom/www_control/markdown.html +10 -0
- data/test/fixtures/custom/{www → www_control}/yes.html +0 -0
- data/test/fixtures/default/_config.yml +1 -1
- data/test/fixtures/default/_layouts/default.haml +1 -1
- data/test/fixtures/default/{_www → www_control}/Users/rsc/Workdesk/hyde/hyde/test/fixtures/default/about/index.html +0 -0
- data/test/fixtures/default/{_www → www_control}/about/index.html +0 -0
- data/test/fixtures/default/{_www → www_control}/foo.html +0 -0
- data/test/fixtures/default/{_www → www_control}/index.html +0 -0
- data/test/fixtures/default/{_www → www_control}/layout_test.html +0 -0
- data/test/fixtures/default/{_www → www_control}/yes.html +0 -0
- data/test/test_all_fixtures.rb +47 -0
- metadata +29 -15
- data/data/new_site/site/index.html +0 -5
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Hyde
|
|
4
4
|
Installation
|
5
5
|
------------
|
6
6
|
|
7
|
-
gem install hydeweb
|
7
|
+
gem install hydeweb --pre
|
8
8
|
|
9
9
|
Usage
|
10
10
|
-----
|
@@ -18,16 +18,14 @@ To do
|
|
18
18
|
-----
|
19
19
|
|
20
20
|
- partials support
|
21
|
-
- more renderers
|
22
|
-
- less
|
23
|
-
- markdown
|
24
|
-
- textile
|
25
|
-
|
26
21
|
- extensions support
|
27
|
-
|
28
22
|
- _meta.yml
|
29
23
|
|
30
24
|
Done:
|
31
25
|
|
32
26
|
- hyde build
|
33
27
|
- hyde gen
|
28
|
+
- more renderers
|
29
|
+
- less
|
30
|
+
- markdown
|
31
|
+
- textile
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.1.
|
1
|
+
0.0.1.pre4
|
data/bin/hyde
CHANGED
data/data/new_site/_config.yml
CHANGED
data/lib/hyde/init.rb
CHANGED
@@ -5,6 +5,11 @@ require "logger"
|
|
5
5
|
$:.unshift File.dirname(__FILE__) + "/.."
|
6
6
|
require 'hyde'
|
7
7
|
|
8
|
+
puts "Starting server..."
|
9
|
+
puts " http://127.0.0.1:4567 Homepage"
|
10
|
+
puts " http://127.0.0.1:4567/- File list"
|
11
|
+
puts ""
|
12
|
+
|
8
13
|
class Main < Sinatra::Base
|
9
14
|
@@project ||= Hyde::Project.new
|
10
15
|
|
@@ -18,6 +23,8 @@ class Main < Sinatra::Base
|
|
18
23
|
get '/*' do
|
19
24
|
begin
|
20
25
|
path = params[:splat][0]
|
26
|
+
type = File.extname(path)[1..-1]
|
27
|
+
content_type type.to_sym if type.is_a? String
|
21
28
|
@@project.render path
|
22
29
|
rescue Hyde::NotFound
|
23
30
|
raise Sinatra::NotFound
|
data/lib/hyde/ostruct.rb
CHANGED
data/lib/hyde/page.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
module Hyde
|
2
2
|
class Page
|
3
|
-
attr :filename
|
4
|
-
|
3
|
+
attr :filename
|
4
|
+
attr :renderer
|
5
|
+
attr :meta
|
6
|
+
attr :page
|
7
|
+
attr :layout
|
8
|
+
attr :project
|
5
9
|
|
6
10
|
# The filename of the source file.
|
7
11
|
# @example
|
@@ -22,19 +26,35 @@ module Hyde
|
|
22
26
|
attr_reader :project
|
23
27
|
|
24
28
|
# Factory
|
29
|
+
# Try {Project#get_page} instead
|
25
30
|
def self.create(path, project, page_class = Page)
|
26
31
|
info = get_page_info(path, project)
|
27
32
|
page = page_class.new(path, project, info[:renderer], info[:filename])
|
28
33
|
end
|
29
34
|
|
30
35
|
# Returns the rendered output.
|
31
|
-
def render(
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
def render(data = {}, &block)
|
37
|
+
if self.is_a? Layout
|
38
|
+
# puts debug
|
39
|
+
end
|
40
|
+
output = @renderer.render(data, &block)
|
41
|
+
# BUG: @layout should build on top of that data
|
42
|
+
output = @layout.render(@meta.merge data) { output } unless @layout.nil?
|
43
|
+
output
|
44
|
+
end
|
45
|
+
|
46
|
+
def method_missing(meth, *args, &blk)
|
47
|
+
if meta.keys.include?(meth.to_s)
|
48
|
+
meta[meth.to_s]
|
49
|
+
elsif meta.keys.include?(meth.to_sym)
|
50
|
+
meta[meth.to_sym]
|
51
|
+
else
|
52
|
+
raise NoMethodError.new "Undefined method `#{self.class}::#{meth}`"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_binding
|
57
|
+
binding
|
38
58
|
end
|
39
59
|
|
40
60
|
# Sets the meta data as read from the file.
|
@@ -87,14 +107,18 @@ module Hyde
|
|
87
107
|
matches.each do |match|
|
88
108
|
begin
|
89
109
|
ext = File.extname(match)[1..-1].capitalize.to_sym
|
110
|
+
exts << File.extname(match)
|
90
111
|
r_class = Hyde::Renderers.const_get(ext)
|
91
|
-
exts << ext
|
92
112
|
renderer ||= r_class
|
93
113
|
filename = match
|
94
|
-
rescue NoMethodError
|
114
|
+
rescue NoMethodError
|
115
|
+
# pass
|
116
|
+
rescue NameError # Renderer not found
|
117
|
+
# pass
|
118
|
+
end
|
95
119
|
end
|
96
120
|
|
97
|
-
raise NotFound.new("No matching renderers found
|
121
|
+
raise NotFound.new("No matching (#{exts.join(", ")}) renderers found for `#{path}`") \
|
98
122
|
if renderer.nil?
|
99
123
|
end
|
100
124
|
|
data/lib/hyde/project.rb
CHANGED
@@ -20,17 +20,22 @@ module Hyde
|
|
20
20
|
attr_accessor :config
|
21
21
|
|
22
22
|
def initialize( root = Dir.pwd )
|
23
|
+
@config = OStruct.new defaults
|
24
|
+
|
25
|
+
# find_root
|
23
26
|
@root = root
|
24
27
|
@config_file ||= "#{@root}/_config.yml"
|
25
28
|
|
26
|
-
@config = OStruct.new defaults
|
27
29
|
@config.merge! YAML::load_file(@config_file) if File.exists? @config_file
|
28
30
|
end
|
29
31
|
|
30
32
|
def method_missing(meth, *args, &blk)
|
31
|
-
|
33
|
+
raise NoMethodError, "No method `#{meth}`" unless @config.include?(meth)
|
34
|
+
@config.send meth
|
32
35
|
end
|
33
36
|
|
37
|
+
# Returns a page in a certain URL path.
|
38
|
+
# @return {Page} or a subclass of it
|
34
39
|
def get_page(path)
|
35
40
|
path = "index.html" if path.empty?
|
36
41
|
Page.create path, self
|
@@ -45,19 +50,26 @@ module Hyde
|
|
45
50
|
get_page(path).render
|
46
51
|
end
|
47
52
|
|
53
|
+
# Writes the output files.
|
54
|
+
# @param
|
55
|
+
# ostream - (Stream) Where to send the messages
|
48
56
|
def build(ostream = nil)
|
49
|
-
raise Errno::EEXISTS if File.exists? root(:output) and not
|
50
|
-
Dir.mkdir root(:output) unless
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
+
raise Errno::EEXISTS if File.exists? root(:output) and not File.directory? root(:output)
|
58
|
+
Dir.mkdir root(:output) unless File.directory? root(:output)
|
59
|
+
|
60
|
+
begin
|
61
|
+
files.each do |path|
|
62
|
+
ostream << " * #{output_path}/#{path}\n" if ostream
|
63
|
+
mfile = force_file_open(root(:output, path))
|
64
|
+
mfile << render(path)
|
65
|
+
mfile.close
|
66
|
+
end
|
67
|
+
rescue NoGemError => e
|
68
|
+
ostream << "Error: #{e.message}\n"
|
57
69
|
end
|
58
70
|
end
|
59
71
|
|
60
|
-
# Returns a list of all
|
72
|
+
# Returns a list of all URL paths
|
61
73
|
def files
|
62
74
|
@file_list ||= Dir[File.join(root(:site), '**', '*')].inject([]) do |a, match|
|
63
75
|
# Make sure its the canonical name
|
@@ -65,7 +77,7 @@ module Hyde
|
|
65
77
|
file = path.gsub /^#{Regexp.escape root(:site)}\/?/, ''
|
66
78
|
ext = File.extname(file)[1..-1]
|
67
79
|
|
68
|
-
if ignored_files.include?(path) or
|
80
|
+
if ignored_files.include?(path) or File.directory?(match)
|
69
81
|
# pass
|
70
82
|
elsif not get_renderer(ext).nil? # Has a renderer associated
|
71
83
|
a << file.chomp(".#{ext}")
|
@@ -77,7 +89,7 @@ module Hyde
|
|
77
89
|
end
|
78
90
|
|
79
91
|
def ignore_list
|
80
|
-
@
|
92
|
+
@ignore_list ||= [
|
81
93
|
root(:layouts, '**/*'),
|
82
94
|
root(:extensions, '**/*'),
|
83
95
|
root(:output, '**/*'),
|
@@ -85,6 +97,8 @@ module Hyde
|
|
85
97
|
]
|
86
98
|
end
|
87
99
|
|
100
|
+
# Returns a list of ignored files.
|
101
|
+
# TODO: This is innefficient... do it another way
|
88
102
|
def ignored_files
|
89
103
|
@ignored_files ||= ignore_list.inject([]) { |a, spec|
|
90
104
|
Dir[spec].each { |file| a << File.expand_path(file) }; a
|
@@ -96,14 +110,15 @@ module Hyde
|
|
96
110
|
{ 'layouts_path' => 'layouts',
|
97
111
|
'extensions_path' => 'extensions',
|
98
112
|
'site_path' => 'site',
|
99
|
-
'output_path' => '
|
113
|
+
'output_path' => 'public'
|
100
114
|
}
|
101
115
|
end
|
102
116
|
|
117
|
+
# Returns the renderer associated with the given file extension.
|
103
118
|
def get_renderer(name)
|
104
119
|
begin
|
105
120
|
class_name = name.to_s.capitalize.to_sym
|
106
|
-
renderer = Renderers.const_get(class_name)
|
121
|
+
renderer = ::Hyde::Renderers.const_get(class_name)
|
107
122
|
rescue NameError
|
108
123
|
renderer = nil
|
109
124
|
end
|
data/lib/hyde/renderer.rb
CHANGED
@@ -14,15 +14,56 @@ module Hyde
|
|
14
14
|
@filename = filename
|
15
15
|
end
|
16
16
|
|
17
|
-
def render(
|
17
|
+
def render(data, &block)
|
18
|
+
scope = build_scope(page, data)
|
19
|
+
evaluate scope, data, &block
|
20
|
+
end
|
21
|
+
|
22
|
+
def markup
|
23
|
+
File.open(filename) { |f| @markup = f.read } unless @markup
|
24
|
+
@markup
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
def require_lib(lib, gem=lib)
|
29
|
+
begin
|
30
|
+
require lib
|
31
|
+
rescue LoadError
|
32
|
+
class_name = self.class.to_s.downcase
|
33
|
+
ext = /[^:]*$/.match(class_name)
|
34
|
+
raise NoGemError.new("To use .#{ext} files, type: `gem install #{gem}`")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def build_scope(page, data)
|
39
|
+
# Page is the scope
|
40
|
+
scope = page.get_binding
|
41
|
+
scope_object = eval("self", scope)
|
42
|
+
|
43
|
+
# Inherit local vars
|
44
|
+
scope_object.send(:instance_variable_set, '@_locals', data)
|
45
|
+
f_set_locals = data.keys.map { |k| "#{k} = @_locals[#{k.inspect}];" }.join("\n")
|
46
|
+
eval(f_set_locals, scope)
|
47
|
+
|
48
|
+
scope_object.instance_eval do
|
49
|
+
def eval_block(src, &block)
|
50
|
+
# This will let you eval something, and `yield` within that block.
|
51
|
+
eval src
|
52
|
+
end
|
53
|
+
extend Hyde::TemplateHelpers
|
54
|
+
end
|
55
|
+
|
56
|
+
scope
|
57
|
+
end
|
58
|
+
|
59
|
+
# Override me
|
60
|
+
def evaluate(scope, data, &block)
|
18
61
|
""
|
19
62
|
end
|
20
63
|
end
|
21
64
|
|
22
65
|
# Any filetype that is split with the -- separator
|
23
66
|
class Parsable < Base
|
24
|
-
@markup = ""
|
25
|
-
|
26
67
|
def initialize(page, filename)
|
27
68
|
super page, filename
|
28
69
|
|
@@ -37,6 +78,10 @@ module Hyde
|
|
37
78
|
end
|
38
79
|
end
|
39
80
|
|
81
|
+
def markup
|
82
|
+
@markup
|
83
|
+
end
|
84
|
+
|
40
85
|
protected
|
41
86
|
def get_file_parts(filename, *args)
|
42
87
|
options = { :max_parts => -1 }
|
@@ -57,10 +102,10 @@ module Hyde
|
|
57
102
|
end
|
58
103
|
|
59
104
|
class Passthru < Base
|
60
|
-
def render(
|
61
|
-
|
62
|
-
File.open(@page.filename, "r")
|
63
|
-
|
105
|
+
def render(data = 0, &block)
|
106
|
+
output = ''
|
107
|
+
File.open(@page.filename, "r") { |f| output = f.read }
|
108
|
+
output
|
64
109
|
end
|
65
110
|
end
|
66
111
|
end
|
data/lib/hyde/renderers.rb
CHANGED
@@ -1,16 +1,48 @@
|
|
1
|
-
require 'haml'
|
2
|
-
|
3
1
|
module Hyde
|
4
2
|
module Renderers
|
5
3
|
class Haml < Renderer::Parsable
|
6
|
-
def
|
7
|
-
|
4
|
+
def evaluate(scope, data={}, &block)
|
5
|
+
require_lib 'haml'
|
6
|
+
@engine = ::Haml::Engine.new(markup, {})
|
7
|
+
@engine.render scope, data, &block
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Erb < Renderer::Parsable
|
12
|
+
def evaluate(scope, data={}, &block)
|
13
|
+
require_lib 'erb'
|
14
|
+
@engine = ::ERB.new markup
|
15
|
+
# So that we can yield!
|
16
|
+
eval("self", scope).eval_block @engine.src, &block
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Less < Renderer::Base
|
21
|
+
def evaluate(scope, data={}, &block)
|
22
|
+
require_lib 'less'
|
23
|
+
@engine = ::Less::Engine.new(File.open(filename))
|
24
|
+
@engine.to_css
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
#class Sass < Renderer::Base
|
29
|
+
# def evaluate(scope, data={}, &block)
|
30
|
+
# require 'haml'
|
31
|
+
# @engine = ::Sass::Engine.new(File.open(filename))
|
32
|
+
# end
|
33
|
+
#end
|
34
|
+
|
35
|
+
class Md < Renderer::Parsable
|
36
|
+
def evaluate(s, d={}, &block)
|
37
|
+
require_lib 'maruku'
|
38
|
+
Maruku.new(markup).to_html
|
39
|
+
end
|
40
|
+
end
|
8
41
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
42
|
+
class Textile < Renderer::Parsable
|
43
|
+
def evaluate(s, d={}, &block)
|
44
|
+
require_lib 'redcloth', 'RedCloth'
|
45
|
+
RedCloth.new(markup).to_html
|
14
46
|
end
|
15
47
|
end
|
16
48
|
end
|
data/lib/hyde/scope.rb
ADDED
data/lib/hyde.rb
CHANGED
@@ -9,7 +9,15 @@ module Hyde
|
|
9
9
|
autoload :Renderer, "#{prefix}/hyde/renderer"
|
10
10
|
autoload :Renderers, "#{prefix}/hyde/renderers"
|
11
11
|
autoload :Utils, "#{prefix}/hyde/utils"
|
12
|
+
autoload :Scope, "#{prefix}/hyde/scope"
|
13
|
+
autoload :TemplateHelpers,"#{prefix}/hyde/template_helpers"
|
14
|
+
|
15
|
+
class Exception < ::Exception
|
16
|
+
end
|
12
17
|
|
13
18
|
class NotFound < Exception
|
14
19
|
end
|
20
|
+
|
21
|
+
class NoGemError < Exception
|
22
|
+
end
|
15
23
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
body { background: white; }
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
body { background: white; }
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Hello
|
2
|
+
Hey there!
|
3
|
+
#<Hyde::Page:0x0000010126a930 @project=#<Hyde::Project:0x00000100b35058 @config=#<Hyde::OStruct layouts_path="layouts", extensions_path="extensions", site_path="site", output_path="www", ignore=["hyde", "_*"]>, @root="/Users/rsc/Workdesk/hyde/test/fixtures/custom", @config_file="/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml", @ignore_list=["/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/extensions/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/www/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml"], @ignored_files=["/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/default.haml", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/erbtest.erb", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml"], @file_list=["about/index.html", "assets/common.css", "assets/style.css", "foo.html", "index.html", "layout_test.html", "lol.html", "markdown.html", "yes.html"]>, @name="lol.html", @meta={"yay"=>444, "layout"=>"erbtest", "title"=>"This is from lol.html"}, @filename="/Users/rsc/Workdesk/hyde/test/fixtures/custom/site/lol.html.erb", @renderer=#<Hyde::Renderers::Erb:0x0000010126a578 @page=#<Hyde::Page:0x0000010126a930 ...>, @filename="/Users/rsc/Workdesk/hyde/test/fixtures/custom/site/lol.html.erb", @markup="Hey there!\n<%= self.inspect %>\n<%= yay %>\n", @engine=#<ERB:0x0000010125ebc0 @safe_level=nil, @src="#coding:US-ASCII\n_erbout = ''; _erbout.concat \"Hey there!\\n\"\n; _erbout.concat(( self.inspect ).to_s); _erbout.concat \"\\n\"\n; _erbout.concat(( yay ).to_s); _erbout.concat \"\\n\"\n; _erbout.force_encoding(__ENCODING__)", @enc=#<Encoding:US-ASCII>, @filename=nil>>, @_locals={}, @layout=#<Hyde::Layout:0x000001012624a0 @project=#<Hyde::Project:0x00000100b35058 @config=#<Hyde::OStruct layouts_path="layouts", extensions_path="extensions", site_path="site", output_path="www", ignore=["hyde", "_*"]>, @root="/Users/rsc/Workdesk/hyde/test/fixtures/custom", @config_file="/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml", @ignore_list=["/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/extensions/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/www/**/*", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml"], @ignored_files=["/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/default.haml", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/erbtest.erb", "/Users/rsc/Workdesk/hyde/test/fixtures/custom/_config.yml"], @file_list=["about/index.html", "assets/common.css", "assets/style.css", "foo.html", "index.html", "layout_test.html", "lol.html", "markdown.html", "yes.html"]>, @name="erbtest", @meta={}, @filename="/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/erbtest.erb", @renderer=#<Hyde::Renderers::Erb:0x000001012623f8 @page=#<Hyde::Layout:0x000001012624a0 ...>, @filename="/Users/rsc/Workdesk/hyde/test/fixtures/custom/layouts/erbtest.erb", @markup="Hello\n<%= yield %>\n">>>
|
4
|
+
444
|
5
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require "helper"
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
class TestAllFixtures < Test::Unit::TestCase
|
5
|
+
@@root = File.join(Dir.pwd, 'test', 'fixtures')
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@original_pwd = Dir.pwd
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
# Remove all the generated www's
|
13
|
+
Dir["#{@@root}/**/www"].each do |match|
|
14
|
+
FileUtils.rm_rf match
|
15
|
+
end
|
16
|
+
Dir.chdir @original_pwd
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.all_sites
|
20
|
+
@@sites ||= Dir["#{@@root}/*"] \
|
21
|
+
.reject { |f| not Dir.exists? f } \
|
22
|
+
.map { |f| File.basename(f) }
|
23
|
+
end
|
24
|
+
|
25
|
+
all_sites.each do |site|
|
26
|
+
describe "Test `#{site}`" do
|
27
|
+
should "Build it properly and have identical files to the control" do
|
28
|
+
@project = Hyde::Project.new File.join(@@root, site)
|
29
|
+
@project.build
|
30
|
+
|
31
|
+
unknown_root = @project.root :site
|
32
|
+
control_root = @project.root 'www_control'
|
33
|
+
|
34
|
+
if not Dir.exists? control_root
|
35
|
+
flunk "No www_control"
|
36
|
+
else
|
37
|
+
@project.files.reject { |f| not Dir.exists? f }.each do |path|
|
38
|
+
unknown = File.open(File.join(unknown_root, path)).read
|
39
|
+
control = File.open(File.join(control_root, path)).read
|
40
|
+
|
41
|
+
assert_equal control, unknown
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
|
|
6
6
|
- 0
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.0.1.
|
9
|
+
- pre4
|
10
|
+
version: 0.0.1.pre4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rico Sta. Cruz
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-04-
|
19
|
+
date: 2010-04-30 00:00:00 +08:00
|
20
20
|
default_executable: hyde
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -78,10 +78,11 @@ files:
|
|
78
78
|
- Rakefile
|
79
79
|
- VERSION
|
80
80
|
- bin/hyde
|
81
|
+
- data/new_site/.gitignore
|
81
82
|
- data/new_site/README.md
|
82
83
|
- data/new_site/_config.yml
|
83
84
|
- data/new_site/layouts/default.haml
|
84
|
-
- data/new_site/site/index.html
|
85
|
+
- data/new_site/site/index.html.haml
|
85
86
|
- lib/hyde.rb
|
86
87
|
- lib/hyde/init.rb
|
87
88
|
- lib/hyde/layout.rb
|
@@ -90,33 +91,45 @@ files:
|
|
90
91
|
- lib/hyde/project.rb
|
91
92
|
- lib/hyde/renderer.rb
|
92
93
|
- lib/hyde/renderers.rb
|
94
|
+
- lib/hyde/scope.rb
|
95
|
+
- lib/hyde/template_helpers.rb
|
93
96
|
- lib/hyde/utils.rb
|
94
97
|
- test/fixtures/custom/_config.yml
|
95
98
|
- test/fixtures/custom/layouts/default.haml
|
99
|
+
- test/fixtures/custom/layouts/erbtest.erb
|
96
100
|
- test/fixtures/custom/site/about/index.html
|
101
|
+
- test/fixtures/custom/site/assets/common.css.less
|
102
|
+
- test/fixtures/custom/site/assets/style.css.less
|
97
103
|
- test/fixtures/custom/site/foo.html.haml
|
98
104
|
- test/fixtures/custom/site/index.html.haml
|
99
105
|
- test/fixtures/custom/site/layout_test.html.haml
|
106
|
+
- test/fixtures/custom/site/lol.html.erb
|
107
|
+
- test/fixtures/custom/site/markdown.html.md
|
100
108
|
- test/fixtures/custom/site/yes.html
|
101
|
-
- test/fixtures/custom/
|
102
|
-
- test/fixtures/custom/
|
103
|
-
- test/fixtures/custom/
|
104
|
-
- test/fixtures/custom/
|
105
|
-
- test/fixtures/custom/
|
109
|
+
- test/fixtures/custom/www_control/about/index.html
|
110
|
+
- test/fixtures/custom/www_control/assets/common.css
|
111
|
+
- test/fixtures/custom/www_control/assets/style.css
|
112
|
+
- test/fixtures/custom/www_control/foo.html
|
113
|
+
- test/fixtures/custom/www_control/index.html
|
114
|
+
- test/fixtures/custom/www_control/layout_test.html
|
115
|
+
- test/fixtures/custom/www_control/lol.html
|
116
|
+
- test/fixtures/custom/www_control/markdown.html
|
117
|
+
- test/fixtures/custom/www_control/yes.html
|
106
118
|
- test/fixtures/default/_config.yml
|
107
119
|
- test/fixtures/default/_layouts/default.haml
|
108
|
-
- test/fixtures/default/_www/Users/rsc/Workdesk/hyde/hyde/test/fixtures/default/about/index.html
|
109
|
-
- test/fixtures/default/_www/about/index.html
|
110
|
-
- test/fixtures/default/_www/foo.html
|
111
|
-
- test/fixtures/default/_www/index.html
|
112
|
-
- test/fixtures/default/_www/layout_test.html
|
113
|
-
- test/fixtures/default/_www/yes.html
|
114
120
|
- test/fixtures/default/about/index.html
|
115
121
|
- test/fixtures/default/foo.html.haml
|
116
122
|
- test/fixtures/default/index.html.haml
|
117
123
|
- test/fixtures/default/layout_test.html.haml
|
124
|
+
- test/fixtures/default/www_control/Users/rsc/Workdesk/hyde/hyde/test/fixtures/default/about/index.html
|
125
|
+
- test/fixtures/default/www_control/about/index.html
|
126
|
+
- test/fixtures/default/www_control/foo.html
|
127
|
+
- test/fixtures/default/www_control/index.html
|
128
|
+
- test/fixtures/default/www_control/layout_test.html
|
129
|
+
- test/fixtures/default/www_control/yes.html
|
118
130
|
- test/fixtures/default/yes.html
|
119
131
|
- test/helper.rb
|
132
|
+
- test/test_all_fixtures.rb
|
120
133
|
- test/test_build.rb
|
121
134
|
- test/test_hyde.rb
|
122
135
|
- test/test_utils.rb
|
@@ -154,6 +167,7 @@ specification_version: 3
|
|
154
167
|
summary: Website preprocessor
|
155
168
|
test_files:
|
156
169
|
- test/helper.rb
|
170
|
+
- test/test_all_fixtures.rb
|
157
171
|
- test/test_build.rb
|
158
172
|
- test/test_hyde.rb
|
159
173
|
- test/test_utils.rb
|