spohlenz-sassic 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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