cohitre-perro 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/perro.rb +60 -9
- data/test/sample.rb +11 -4
- metadata +3 -12
data/Rakefile
CHANGED
@@ -6,5 +6,5 @@ Hoe.new('perro', Perro::VERSION) do |p|
|
|
6
6
|
p.name = "perro"
|
7
7
|
p.developer('carlos', 'carlosrr@gmail.com')
|
8
8
|
p.summary = "A quick and dirty solution for serving files easily."
|
9
|
-
p.extra_deps = [ ["
|
9
|
+
p.extra_deps = [ ["mongrel", ">= 1.1.4"] , ["haml" , ">= 2.0.3"] ]
|
10
10
|
end
|
data/lib/perro.rb
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
-
begin
|
2
|
-
require 'action_controller'
|
3
|
-
ActionView::Base.helper_modules.each {|m| include m }
|
4
|
-
rescue
|
5
|
-
puts "It appears that you don't have action_controller."
|
6
|
-
puts "`sudo gem install rails` might help you with that."
|
7
|
-
end
|
8
|
-
|
9
1
|
require "mongrel"
|
10
2
|
require "#{File.expand_path( __FILE__ +"/..")}/perro/route.rb"
|
3
|
+
require "haml"
|
4
|
+
require "sass"
|
11
5
|
|
12
6
|
module Perro
|
13
|
-
VERSION = '0.
|
7
|
+
VERSION = '0.9.0'
|
8
|
+
|
9
|
+
def use_rails_helpers
|
10
|
+
begin
|
11
|
+
require 'action_controller'
|
12
|
+
ActionView::Base.helper_modules.each {|m| include m }
|
13
|
+
rescue
|
14
|
+
puts "It appears that you don't have action_controller."
|
15
|
+
puts "`sudo gem install rails` might help you with that."
|
16
|
+
end
|
17
|
+
end
|
14
18
|
|
15
19
|
class StringHandler < Mongrel::HttpHandler
|
16
20
|
def initialize
|
@@ -70,10 +74,57 @@ module Perro
|
|
70
74
|
@port = port
|
71
75
|
end
|
72
76
|
|
77
|
+
def static( route , path , mime=:html)
|
78
|
+
mimetypes = {
|
79
|
+
:html => "text/html" ,
|
80
|
+
:javascript => "text/javascript" ,
|
81
|
+
:css => "text/css"
|
82
|
+
}
|
83
|
+
self.get( route , mimetypes[mime] ) do |params|
|
84
|
+
open( "#{path}/#{params[:file]}" ).read
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def haml( route , path )
|
89
|
+
self.get( route ) do |params|
|
90
|
+
if File.exists?( path ) && !File.directory?( path )
|
91
|
+
Haml::Engine.new( open( "#{path}" ).read).render
|
92
|
+
else
|
93
|
+
Haml::Engine.new( open( "#{path}/#{params[:file]}" ).read).render
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def sass( route , path )
|
99
|
+
self.get( route , "text/css") do |params|
|
100
|
+
if File.exists?( path ) && !File.directory?( path )
|
101
|
+
Sass::Engine.new( open( "#{path}" ).read).render
|
102
|
+
else
|
103
|
+
Sass::Engine.new( open( "#{path}/#{params[:file]}" ).read).render
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
|
73
109
|
def get route , mime="text/html" , &block
|
74
110
|
@global_handler.push( { :route => route , :mime=>mime } , block )
|
75
111
|
end
|
76
112
|
|
113
|
+
def run
|
114
|
+
routes = @global_handler
|
115
|
+
port = @port
|
116
|
+
config = Mongrel::Configurator.new :host => "0.0.0.0" do
|
117
|
+
listener :port => port do
|
118
|
+
uri("/" , :handler => routes )
|
119
|
+
end
|
120
|
+
run
|
121
|
+
end
|
122
|
+
puts '** Perro Server Started'
|
123
|
+
puts '** Woof Woof'
|
124
|
+
puts "** Listening to port #{@port}"
|
125
|
+
|
126
|
+
end
|
127
|
+
|
77
128
|
def start
|
78
129
|
routes = @global_handler
|
79
130
|
port = @port
|
data/test/sample.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "rubygems"
|
2
|
-
require "perro"
|
2
|
+
require "lib/perro"
|
3
3
|
require "sass"
|
4
4
|
require "open-uri"
|
5
5
|
|
@@ -7,9 +7,13 @@ HOME_FOLDER = File.expand_path( "~" )
|
|
7
7
|
|
8
8
|
server = Perro::Server.new(3000)
|
9
9
|
|
10
|
-
server.
|
11
|
-
|
12
|
-
|
10
|
+
server.static( "/javascripts/:file" , "#{HOME_FOLDER}/dev/libs/js" , :javascript )
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
server.haml( "/" , "#{File.expand_path( File.dirname( __FILE__) )}/index.haml" )
|
15
|
+
|
16
|
+
|
13
17
|
|
14
18
|
server.get "/stylesheets/:file.css" do |params|
|
15
19
|
Sass::Engine.new( open("#{HOME_FOLDER}#{params[:file]}.sass").read )
|
@@ -19,4 +23,7 @@ server.get "/proxy/:uri" do |params|
|
|
19
23
|
open( "http://cohitre.com/#{params[:uri]}" ).read
|
20
24
|
end
|
21
25
|
|
26
|
+
|
27
|
+
server.haml( "/:file" , "#{File.expand_path( File.dirname(__FILE__) )}" )
|
28
|
+
|
22
29
|
server.start
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cohitre-perro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlos
|
@@ -9,18 +9,9 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-22 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: hoe
|
17
|
-
version_requirement:
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.8.0
|
23
|
-
version:
|
24
15
|
- !ruby/object:Gem::Dependency
|
25
16
|
name: mongrel
|
26
17
|
version_requirement:
|
@@ -37,7 +28,7 @@ dependencies:
|
|
37
28
|
requirements:
|
38
29
|
- - ">="
|
39
30
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.0.
|
31
|
+
version: 2.0.3
|
41
32
|
version:
|
42
33
|
- !ruby/object:Gem::Dependency
|
43
34
|
name: hoe
|