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 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,4 @@
1
+ module Sassic::Handlers; end
2
+
3
+ require File.dirname(__FILE__) + '/handlers/template'
4
+ require File.dirname(__FILE__) + '/handlers/stylesheet'
@@ -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
@@ -13,7 +13,7 @@ class Sassic::Page
13
13
  end
14
14
  end
15
15
 
16
- def template_path(template)
16
+ def template_path(template=@template)
17
17
  Dir::pwd + '/templates/' + template + '.html.erb'
18
18
  end
19
19
 
data/lib/sassic/server.rb CHANGED
@@ -1,30 +1,48 @@
1
- require 'webrick'
1
+ require 'rack'
2
2
 
3
- require File.dirname(__FILE__) + '/servlets'
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
- s = HTTPServer.new(options.merge(:Port => @port))
14
- setup_mount_points(s)
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 setup_mount_points(s)
21
- setup_static_mount_point(s, '/javascripts')
22
- setup_static_mount_point(s, '/images')
23
- s.mount("/stylesheets", Sassic::Servlets::SassServlet)
24
- s.mount("/", Sassic::Servlets::TemplateServlet)
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 setup_static_mount_point(s, folder)
28
- s.mount(folder, HTTPServlet::FileHandler, Dir::pwd + folder)
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 = "sassic"
3
- s.version = "0.2.3"
4
- s.date = "2008-11-19"
5
-
6
- s.authors = [ "Sam Pohlenz" ]
7
- s.email = "sam@sampohlenz.com"
8
- s.homepage = "http://github.com/spohlenz/sassic"
9
-
10
- s.summary = "Simply Ruby web framework with SASS support"
11
- s.description = "Sassic is a simple framework for creating static web sites using SASS stylesheets."
12
-
13
- s.has_rdoc = false
14
-
15
- s.files = [ "README",
16
- "sassic.gemspec",
17
- "lib/sassic/exec.rb",
18
- "lib/sassic/files/index.html.erb",
19
- "lib/sassic/files/layout.html.erb",
20
- "lib/sassic/files/screen.sass",
21
- "lib/sassic/generator.rb",
22
- "lib/sassic/page.rb",
23
- "lib/sassic/server.rb",
24
- "lib/sassic/servlets/template.rb",
25
- "lib/sassic/servlets/sass.rb",
26
- "lib/sassic/servlets.rb",
27
- "lib/sassic/builder.rb",
28
- "lib/sassic/tasks.rb",
29
- "lib/sassic.rb",
30
- "bin/sassic" ]
31
-
32
- s.executables = ['sassic']
33
-
34
- s.add_dependency("hpricot", ["> 0.6"])
35
- s.add_dependency("haml", ["> 2.0.0"])
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.3
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-19 00:00:00 -08:00
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.6"
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: 2.0.0
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
- files:
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
- has_rdoc: false
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: "0"
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: Simply Ruby web framework with SASS support
131
+ summary: Sassic is a simple framework for creating static web sites using SASS stylesheets.
84
132
  test_files: []
85
133
 
@@ -1,4 +0,0 @@
1
- module Sassic::Servlets; end
2
-
3
- require File.dirname(__FILE__) + '/servlets/template'
4
- require File.dirname(__FILE__) + '/servlets/sass'
@@ -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