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.
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