cohitre-perro 0.8.0 → 0.9.0
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 +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
|