staticmatic 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/staticmatic/base.rb +23 -7
- data/lib/staticmatic/error.rb +17 -0
- data/lib/staticmatic/server.rb +8 -4
- data/lib/staticmatic.rb +2 -1
- data/staticmatic-0.2.0.gem +0 -0
- metadata +3 -1
data/lib/staticmatic/base.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module StaticMatic
|
2
2
|
class Base
|
3
|
-
VERSION = '0.2.0'
|
4
|
-
|
5
3
|
# Directories generated for a new site setup
|
6
4
|
@@base_dirs = %w{
|
7
5
|
site/
|
@@ -110,17 +108,35 @@ module StaticMatic
|
|
110
108
|
# Generate html from source file:
|
111
109
|
# generate_html("index.haml")
|
112
110
|
def generate_html(source_file)
|
113
|
-
|
114
|
-
|
111
|
+
full_file_path = "#{@src_dir}/pages/#{source_file}.haml"
|
112
|
+
begin
|
113
|
+
page = Haml::Engine.new(File.read(full_file_path), :locals => {:base_dir => @base_dir})
|
114
|
+
page.render
|
115
|
+
rescue Haml::Error => haml_error
|
116
|
+
raise StaticMatic::Error.new(haml_error.haml_line, full_file_path, haml_error.message)
|
117
|
+
end
|
115
118
|
end
|
116
119
|
|
117
120
|
def generate_html_with_layout(source)
|
118
|
-
|
121
|
+
begin
|
122
|
+
Haml::Engine.new(layout, :locals => {:base_dir => @base_dir}).to_html { generate_html(source) }
|
123
|
+
rescue StaticMatic::Error => staticmatic_error
|
124
|
+
# Catch any errors from the actual template - otherwise the error will be assumed to be from the
|
125
|
+
# layout
|
126
|
+
raise staticmatic_error
|
127
|
+
rescue Haml::Error => haml_error
|
128
|
+
raise StaticMatic::Error.new(haml_error.haml_line, "Layout: #{@layout_name}", haml_error.message)
|
129
|
+
end
|
119
130
|
end
|
120
131
|
|
121
132
|
def generate_css(source)
|
122
|
-
|
123
|
-
|
133
|
+
full_file_path = "#{@src_dir}/stylesheets/#{source}.sass"
|
134
|
+
begin
|
135
|
+
stylesheet = Sass::Engine.new(File.read(full_file_path))
|
136
|
+
stylesheet.to_css
|
137
|
+
rescue Sass::Error => sass_error
|
138
|
+
raise StaticMatic::Error.new(sass_error.sass_line, full_file_path, sass_error.message)
|
139
|
+
end
|
124
140
|
end
|
125
141
|
|
126
142
|
def template_exists?(name)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module StaticMatic
|
2
|
+
class Error < StandardError
|
3
|
+
attr_reader :line
|
4
|
+
|
5
|
+
attr_reader :filename
|
6
|
+
|
7
|
+
def initialize(lineno, filename, message)
|
8
|
+
@line = lineno
|
9
|
+
@filename = filename
|
10
|
+
@message = message
|
11
|
+
end
|
12
|
+
|
13
|
+
def message
|
14
|
+
"#{@filename}, line #{@line}: #{@message}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/staticmatic/server.rb
CHANGED
@@ -28,10 +28,14 @@ module StaticMatic
|
|
28
28
|
output = ""
|
29
29
|
|
30
30
|
if @staticmatic.template_exists?(file_name)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
begin
|
32
|
+
if file_ext == "html"
|
33
|
+
output = @staticmatic.generate_html_with_layout("#{file_name}")
|
34
|
+
elsif file_ext == "css"
|
35
|
+
output = @staticmatic.generate_css("#{file_name}")
|
36
|
+
end
|
37
|
+
rescue StaticMatic::Error => e
|
38
|
+
output = e.message
|
35
39
|
end
|
36
40
|
else
|
37
41
|
output = "File not Found"
|
data/lib/staticmatic.rb
CHANGED
@@ -2,5 +2,6 @@ require 'rubygems'
|
|
2
2
|
require 'haml'
|
3
3
|
require 'mongrel'
|
4
4
|
require File.dirname(__FILE__) + '/staticmatic/helpers'
|
5
|
+
require File.dirname(__FILE__) + '/staticmatic/error'
|
5
6
|
require File.dirname(__FILE__) + '/staticmatic/base'
|
6
|
-
require File.dirname(__FILE__) + '/staticmatic/server'
|
7
|
+
require File.dirname(__FILE__) + '/staticmatic/server'
|
Binary file
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: staticmatic
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.2.
|
6
|
+
version: 0.2.1
|
7
7
|
date: 2007-06-10 00:00:00 +01:00
|
8
8
|
summary: Manage static sites using Haml & Sass
|
9
9
|
require_paths:
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- lib
|
35
35
|
- RakeFile
|
36
36
|
- README
|
37
|
+
- staticmatic-0.2.0.gem
|
37
38
|
- test
|
38
39
|
- bin/staticmatic
|
39
40
|
- example/site
|
@@ -54,6 +55,7 @@ files:
|
|
54
55
|
- lib/staticmatic
|
55
56
|
- lib/staticmatic.rb
|
56
57
|
- lib/staticmatic/base.rb
|
58
|
+
- lib/staticmatic/error.rb
|
57
59
|
- lib/staticmatic/helpers.rb
|
58
60
|
- lib/staticmatic/server.rb
|
59
61
|
- lib/staticmatic/templates
|