piano 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ views/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in piano.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/bin/piano ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "piano"
4
+
5
+ if port = ARGV.shift
6
+ Piano.port = port
7
+ end
8
+
9
+ Piano.run!
data/lib/piano.rb ADDED
@@ -0,0 +1,57 @@
1
+ require "sinatra/base"
2
+ require "haml"
3
+ require "sass"
4
+
5
+ class Piano < Sinatra::Base
6
+ set :root, File.expand_path(Dir.pwd)
7
+ set :views, File.expand_path(Dir.pwd)
8
+
9
+ get "/" do
10
+ try_haml :index
11
+ end
12
+
13
+ get "/:something.css" do |something|
14
+ content_type :css
15
+ sass something.to_sym
16
+ end
17
+
18
+ get "/:something" do |something|
19
+ try_haml something.to_sym
20
+ end
21
+
22
+ helpers do
23
+ def try_haml(template)
24
+ begin
25
+ return haml template
26
+ rescue Exception => error
27
+ if error.message =~ /No such file or directory/
28
+ path = File.expand_path(Dir.pwd)
29
+ response = "<h1>You have still to put something here.</h1><p>This is <em>#{path}/#{template.to_sym}.haml</em></p><blockquote>Good luck!</blockquote>"
30
+ return response
31
+ else
32
+ raise error
33
+ end
34
+ end
35
+ end
36
+
37
+ def sass(template)
38
+ begin
39
+ dir = File.expand_path(Dir.pwd)
40
+ data = ""
41
+ File.open "#{dir}/#{template.to_s}.sass" do |file|
42
+ data = file.read
43
+ end
44
+ return Sass.compile(data, :syntax => :sass)
45
+ rescue Exception => error
46
+ if error.message =~ /No such file or directory/
47
+ path = File.expand_path(Dir.pwd)
48
+ response = "<h1>You have still to put something here.</h1><p>This is <em>#{path}/#{template.to_s}.sass</em></p><blockquote>Good luck!</blockquote>"
49
+ return response
50
+ else
51
+ raise error
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ end
@@ -0,0 +1,3 @@
1
+ module Piano
2
+ VERSION = "0.5.1"
3
+ end
data/piano.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "piano/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "piano"
7
+ s.version = Piano::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Xavier Via"]
10
+ s.email = ["xavierviacanel@gmail.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{Write a gem summary}
13
+ s.description = %q{Write a gem description}
14
+
15
+ s.rubyforge_project = "piano"
16
+ s.add_dependency "sinatra"
17
+ s.add_dependency "haml"
18
+ s.add_dependency "sass"
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
23
+ s.require_paths = ["lib"]
24
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: piano
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Xavier Via
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-05-06 00:00:00.000000000 -03:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sinatra
17
+ requirement: &20821008 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *20821008
26
+ - !ruby/object:Gem::Dependency
27
+ name: haml
28
+ requirement: &20820756 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *20820756
37
+ - !ruby/object:Gem::Dependency
38
+ name: sass
39
+ requirement: &20820492 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *20820492
48
+ description: Write a gem description
49
+ email:
50
+ - xavierviacanel@gmail.com
51
+ executables:
52
+ - piano
53
+ extensions: []
54
+ extra_rdoc_files: []
55
+ files:
56
+ - .gitignore
57
+ - Gemfile
58
+ - Rakefile
59
+ - bin/piano
60
+ - lib/piano.rb
61
+ - lib/piano/version.rb
62
+ - piano.gemspec
63
+ has_rdoc: true
64
+ homepage: ''
65
+ licenses: []
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project: piano
84
+ rubygems_version: 1.5.2
85
+ signing_key:
86
+ specification_version: 3
87
+ summary: Write a gem summary
88
+ test_files: []