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.
Files changed (4) hide show
  1. data/Rakefile +1 -1
  2. data/lib/perro.rb +60 -9
  3. data/test/sample.rb +11 -4
  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 = [ ["hoe" , ">= 1.8.0"] , ["mongrel", ">= 1.1.4"] ]
9
+ p.extra_deps = [ ["mongrel", ">= 1.1.4"] , ["haml" , ">= 2.0.3"] ]
10
10
  end
@@ -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.8.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
@@ -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.get "/javascripts/:file" do |params|
11
- open( "#{HOME_FOLDER}/libs/javascript#{params[:file]}" ).read
12
- end
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.8.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-10-26 00:00:00 -07:00
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.2
31
+ version: 2.0.3
41
32
  version:
42
33
  - !ruby/object:Gem::Dependency
43
34
  name: hoe