spohlenz-sassic 0.2.3 → 0.2.4
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/Rakefile +9 -0
- data/lib/sassic/handlers.rb +4 -0
- data/lib/sassic/handlers/stylesheet.rb +22 -0
- data/lib/sassic/handlers/template.rb +15 -0
- data/lib/sassic/page.rb +1 -1
- data/lib/sassic/server.rb +33 -15
- data/sassic.gemspec +46 -34
- metadata +70 -22
- data/lib/sassic/servlets.rb +0 -4
- data/lib/sassic/servlets/sass.rb +0 -17
- data/lib/sassic/servlets/template.rb +0 -14
data/Rakefile
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'echoe'
|
2
|
+
|
3
|
+
Echoe.new('sassic', '0.2.4') do |p|
|
4
|
+
p.author = "Sam Pohlenz"
|
5
|
+
p.email = "sam@sampohlenz.com"
|
6
|
+
p.description = "Sassic is a simple framework for creating static web sites using SASS stylesheets."
|
7
|
+
p.url = "http://github.com/spohlenz/sassic"
|
8
|
+
p.runtime_dependencies = [ "hpricot", "haml", "rack", "mongrel" ]
|
9
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'sass'
|
2
|
+
|
3
|
+
class Sassic::Handlers::StylesheetHandler
|
4
|
+
def call(env)
|
5
|
+
sass = Dir::pwd + '/sass' + env['PATH_INFO'].sub(/\.css$/, '.sass')
|
6
|
+
|
7
|
+
# Ensure logger shows correct path
|
8
|
+
env['PATH_INFO'] = env['REQUEST_URI']
|
9
|
+
|
10
|
+
if File.exists?(sass)
|
11
|
+
[200, { 'Content-Type' => 'text/css' }, sassify(sass)]
|
12
|
+
else
|
13
|
+
env['rack.showstatus.detail'] = "Missing file #{sass}"
|
14
|
+
[404, {}, '']
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def sassify(file)
|
20
|
+
Sass::Engine.new(File.read(file), :style => :expanded, :load_paths => Dir::pwd + '/sass').render
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../page'
|
2
|
+
|
3
|
+
class Sassic::Handlers::TemplateHandler
|
4
|
+
def call(env)
|
5
|
+
path = env['PATH_INFO'].sub(/^\//, '')
|
6
|
+
page = Sassic::Page.new(path == '' ? 'index' : path)
|
7
|
+
|
8
|
+
if page.exists?
|
9
|
+
[200, { 'Content-Type' => 'text/html' }, page.render]
|
10
|
+
else
|
11
|
+
env['rack.showstatus.detail'] = "Missing template #{page.template_path}"
|
12
|
+
[404, {}, '']
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/sassic/page.rb
CHANGED
data/lib/sassic/server.rb
CHANGED
@@ -1,30 +1,48 @@
|
|
1
|
-
require '
|
1
|
+
require 'rack'
|
2
2
|
|
3
|
-
require File.dirname(__FILE__) +
|
3
|
+
require File.dirname(__FILE__) + "/handlers"
|
4
4
|
|
5
5
|
class Sassic::Server
|
6
|
-
include WEBrick
|
7
|
-
|
8
6
|
def initialize(port=2000)
|
9
7
|
@port = port
|
10
8
|
end
|
11
9
|
|
12
10
|
def start(options={})
|
13
|
-
|
14
|
-
|
15
|
-
trap("INT") { s.shutdown }
|
16
|
-
s.start
|
11
|
+
puts "Started Sassic server on port #{@port}."
|
12
|
+
handler.run app, :Port => @port
|
17
13
|
end
|
18
14
|
|
19
15
|
private
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
def app
|
17
|
+
Rack::Builder.new {
|
18
|
+
use Rack::CommonLogger
|
19
|
+
use Rack::ShowExceptions
|
20
|
+
use Rack::ShowStatus
|
21
|
+
|
22
|
+
use Rack::Static, :urls => [ "/images", "/javascripts" ]
|
23
|
+
|
24
|
+
map '/' do
|
25
|
+
run Sassic::Handlers::TemplateHandler.new
|
26
|
+
end
|
27
|
+
|
28
|
+
map '/stylesheets' do
|
29
|
+
run Sassic::Handlers::StylesheetHandler.new
|
30
|
+
end
|
31
|
+
}
|
25
32
|
end
|
26
33
|
|
27
|
-
def
|
28
|
-
|
34
|
+
def handler
|
35
|
+
Rack::Handler::Mongrel
|
29
36
|
end
|
37
|
+
|
38
|
+
# def setup_mount_points(s)
|
39
|
+
# setup_static_mount_point(s, '/javascripts')
|
40
|
+
# setup_static_mount_point(s, '/images')
|
41
|
+
# s.mount("/stylesheets", Sassic::Servlets::SassServlet)
|
42
|
+
# s.mount("/", Sassic::Servlets::TemplateServlet)
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# def setup_static_mount_point(s, folder)
|
46
|
+
# s.mount(folder, HTTPServlet::FileHandler, Dir::pwd + folder)
|
47
|
+
# end
|
30
48
|
end
|
data/sassic.gemspec
CHANGED
@@ -1,36 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
|
-
s.name =
|
3
|
-
s.version = "0.2.
|
4
|
-
|
5
|
-
|
6
|
-
s.authors = [
|
7
|
-
s.
|
8
|
-
s.
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
|
13
|
-
s.
|
14
|
-
|
15
|
-
s.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
4
|
+
s.name = %q{sassic}
|
5
|
+
s.version = "0.2.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Sam Pohlenz"]
|
9
|
+
s.date = %q{2008-11-20}
|
10
|
+
s.default_executable = %q{sassic}
|
11
|
+
s.description = %q{Sassic is a simple framework for creating static web sites using SASS stylesheets.}
|
12
|
+
s.email = %q{sam@sampohlenz.com}
|
13
|
+
s.executables = ["sassic"]
|
14
|
+
s.extra_rdoc_files = ["bin/sassic", "lib/sassic/builder.rb", "lib/sassic/exec.rb", "lib/sassic/files/index.html.erb", "lib/sassic/files/layout.html.erb", "lib/sassic/files/screen.sass", "lib/sassic/generator.rb", "lib/sassic/handlers/stylesheet.rb", "lib/sassic/handlers/template.rb", "lib/sassic/handlers.rb", "lib/sassic/page.rb", "lib/sassic/server.rb", "lib/sassic/tasks.rb", "lib/sassic.rb", "README"]
|
15
|
+
s.files = ["bin/sassic", "lib/sassic/builder.rb", "lib/sassic/exec.rb", "lib/sassic/files/index.html.erb", "lib/sassic/files/layout.html.erb", "lib/sassic/files/screen.sass", "lib/sassic/generator.rb", "lib/sassic/handlers/stylesheet.rb", "lib/sassic/handlers/template.rb", "lib/sassic/handlers.rb", "lib/sassic/page.rb", "lib/sassic/server.rb", "lib/sassic/tasks.rb", "lib/sassic.rb", "Rakefile", "README", "sassic.gemspec", "Manifest"]
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{http://github.com/spohlenz/sassic}
|
18
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Sassic", "--main", "README"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{sassic}
|
21
|
+
s.rubygems_version = %q{1.3.1}
|
22
|
+
s.summary = %q{Sassic is a simple framework for creating static web sites using SASS stylesheets.}
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 2
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
s.add_runtime_dependency(%q<hpricot>, [">= 0"])
|
30
|
+
s.add_runtime_dependency(%q<haml>, [">= 0"])
|
31
|
+
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
32
|
+
s.add_runtime_dependency(%q<mongrel>, [">= 0"])
|
33
|
+
s.add_development_dependency(%q<echoe>, [">= 0"])
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<hpricot>, [">= 0"])
|
36
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
37
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
38
|
+
s.add_dependency(%q<mongrel>, [">= 0"])
|
39
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
40
|
+
end
|
41
|
+
else
|
42
|
+
s.add_dependency(%q<hpricot>, [">= 0"])
|
43
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
44
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
45
|
+
s.add_dependency(%q<mongrel>, [">= 0"])
|
46
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
47
|
+
end
|
36
48
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spohlenz-sassic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Pohlenz
|
@@ -9,26 +9,53 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-11-
|
13
|
-
default_executable:
|
12
|
+
date: 2008-11-20 00:00:00 -08:00
|
13
|
+
default_executable: sassic
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hpricot
|
17
17
|
version_requirement:
|
18
18
|
version_requirements: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: "0
|
22
|
+
version: "0"
|
23
23
|
version:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: haml
|
26
26
|
version_requirement:
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
|
-
- - "
|
29
|
+
- - ">="
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
31
|
+
version: "0"
|
32
|
+
version:
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rack
|
35
|
+
version_requirement:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: "0"
|
41
|
+
version:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: mongrel
|
44
|
+
version_requirement:
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: "0"
|
50
|
+
version:
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: echoe
|
53
|
+
version_requirement:
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
32
59
|
version:
|
33
60
|
description: Sassic is a simple framework for creating static web sites using SASS stylesheets.
|
34
61
|
email: sam@sampohlenz.com
|
@@ -36,30 +63,51 @@ executables:
|
|
36
63
|
- sassic
|
37
64
|
extensions: []
|
38
65
|
|
39
|
-
extra_rdoc_files:
|
40
|
-
|
41
|
-
|
42
|
-
- README
|
43
|
-
- sassic.gemspec
|
66
|
+
extra_rdoc_files:
|
67
|
+
- bin/sassic
|
68
|
+
- lib/sassic/builder.rb
|
44
69
|
- lib/sassic/exec.rb
|
45
70
|
- lib/sassic/files/index.html.erb
|
46
71
|
- lib/sassic/files/layout.html.erb
|
47
72
|
- lib/sassic/files/screen.sass
|
48
73
|
- lib/sassic/generator.rb
|
74
|
+
- lib/sassic/handlers/stylesheet.rb
|
75
|
+
- lib/sassic/handlers/template.rb
|
76
|
+
- lib/sassic/handlers.rb
|
49
77
|
- lib/sassic/page.rb
|
50
78
|
- lib/sassic/server.rb
|
51
|
-
- lib/sassic/servlets/template.rb
|
52
|
-
- lib/sassic/servlets/sass.rb
|
53
|
-
- lib/sassic/servlets.rb
|
54
|
-
- lib/sassic/builder.rb
|
55
79
|
- lib/sassic/tasks.rb
|
56
80
|
- lib/sassic.rb
|
81
|
+
- README
|
82
|
+
files:
|
57
83
|
- bin/sassic
|
58
|
-
|
84
|
+
- lib/sassic/builder.rb
|
85
|
+
- lib/sassic/exec.rb
|
86
|
+
- lib/sassic/files/index.html.erb
|
87
|
+
- lib/sassic/files/layout.html.erb
|
88
|
+
- lib/sassic/files/screen.sass
|
89
|
+
- lib/sassic/generator.rb
|
90
|
+
- lib/sassic/handlers/stylesheet.rb
|
91
|
+
- lib/sassic/handlers/template.rb
|
92
|
+
- lib/sassic/handlers.rb
|
93
|
+
- lib/sassic/page.rb
|
94
|
+
- lib/sassic/server.rb
|
95
|
+
- lib/sassic/tasks.rb
|
96
|
+
- lib/sassic.rb
|
97
|
+
- Rakefile
|
98
|
+
- README
|
99
|
+
- sassic.gemspec
|
100
|
+
- Manifest
|
101
|
+
has_rdoc: true
|
59
102
|
homepage: http://github.com/spohlenz/sassic
|
60
103
|
post_install_message:
|
61
|
-
rdoc_options:
|
62
|
-
|
104
|
+
rdoc_options:
|
105
|
+
- --line-numbers
|
106
|
+
- --inline-source
|
107
|
+
- --title
|
108
|
+
- Sassic
|
109
|
+
- --main
|
110
|
+
- README
|
63
111
|
require_paths:
|
64
112
|
- lib
|
65
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -72,14 +120,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
120
|
requirements:
|
73
121
|
- - ">="
|
74
122
|
- !ruby/object:Gem::Version
|
75
|
-
version: "
|
123
|
+
version: "1.2"
|
76
124
|
version:
|
77
125
|
requirements: []
|
78
126
|
|
79
|
-
rubyforge_project:
|
127
|
+
rubyforge_project: sassic
|
80
128
|
rubygems_version: 1.2.0
|
81
129
|
signing_key:
|
82
130
|
specification_version: 2
|
83
|
-
summary:
|
131
|
+
summary: Sassic is a simple framework for creating static web sites using SASS stylesheets.
|
84
132
|
test_files: []
|
85
133
|
|
data/lib/sassic/servlets.rb
DELETED
data/lib/sassic/servlets/sass.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'sass'
|
2
|
-
|
3
|
-
class Sassic::Servlets::SassServlet < WEBrick::HTTPServlet::AbstractServlet
|
4
|
-
def do_GET(req, res)
|
5
|
-
sass = Dir::pwd + req.path.sub('/stylesheets', '/sass').sub(/\.css$/, '.sass')
|
6
|
-
|
7
|
-
if File.exists?(sass)
|
8
|
-
res.body = sassify(sass)
|
9
|
-
else
|
10
|
-
res.status = 404
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def sassify(file)
|
15
|
-
Sass::Engine.new(File.read(file), :style => :expanded, :load_paths => Dir::pwd + '/sass').render
|
16
|
-
end
|
17
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../page'
|
2
|
-
|
3
|
-
class Sassic::Servlets::TemplateServlet < WEBrick::HTTPServlet::AbstractServlet
|
4
|
-
def do_GET(req, res)
|
5
|
-
page = Sassic::Page.new(req.path == '/' ? 'index' : req.path.sub(/^\//, ''))
|
6
|
-
|
7
|
-
if page.exists?
|
8
|
-
res.body = page.render
|
9
|
-
else
|
10
|
-
res.status = 404
|
11
|
-
res.body = "<h1>404 Not Available</h1>"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|