picombo 0.4.0 → 0.4.1

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/lib/classes/event.rb CHANGED
@@ -8,7 +8,10 @@ module Picombo
8
8
  # The event class is a powerful system where you can add, modify or remove Picombo functionality, and you can also create your own events to leverage easy plugablity features in your applicetion.
9
9
  #
10
10
  # === Examples
11
- # It's very easy to use events to alter system behavior. This event addition will merge some parameters to every controller call:
11
+ # It's very easy to use events to alter system behavior.
12
+ #
13
+ # ==== Using Procs
14
+ # You can add one-off proc objects to the event queue:
12
15
  # Picombo::Event.add('system.post_router') do |data|
13
16
  # data.merge!({:params => ['test', 'test', 'test']})
14
17
  # end
@@ -16,9 +19,20 @@ module Picombo
16
19
  #
17
20
  # Because the system.post_router is called as Picombo::Event.run('system.post_router', uri) it passes the routed uri variable as data in the method above.
18
21
  #
22
+ # ==== Using Strings
19
23
  # You can also add class methods to events:
20
24
  # Picombo::Event.add('system.shutdown', 'Picombo::Foobar.new.write_access_log')
21
25
  # This might process some data and then write it to an event log on the system.shutdown event right before the output is sent to the browser
26
+ #
27
+ # String event additions use eval(), so be careful!
28
+ #
29
+ # ==== Using Arrays
30
+ #
31
+ # You can also use arrays to pass things to the event queue:
32
+ #
33
+ # Picombo::Event.add('system.display', [self, 'display'])
34
+ #
35
+ # This will run the current class's "display" method on the system.display event
22
36
 
23
37
  class Event
24
38
  private
@@ -104,19 +118,6 @@ module Picombo
104
118
  end
105
119
  elsif callback.is_a?(String)
106
120
  eval(callback)
107
- #callback = callback.split('.')
108
-
109
- #if callback.length > 1
110
- # namespace = Object
111
- # callback[0].split("::").each do |const|
112
- # namespace = namespace.const_get(const)
113
- # end
114
-
115
- # Picombo::Log.write('info', 'trying to run '+namespace.inspect+'.'+callback[1])
116
- # namespace.send(callback[1])
117
- #else
118
- # Kernel.send(callback[0])
119
- #end
120
121
  elsif callback.is_a?(Proc)
121
122
  callback.call(data)
122
123
  end
@@ -107,19 +107,18 @@ module Picombo
107
107
  Picombo::Bench.instance.start('controller_execution')
108
108
 
109
109
  Picombo::Event.run('system.pre_controller')
110
- if controller_methods.include?(uri[:method].to_sym)
111
- begin
112
- if uri[:params].nil? or uri[:params].empty?
113
- controller.send(uri[:method])
114
- else
115
- controller.send(uri[:method], *uri[:params])
116
- end
117
- rescue Picombo::E404 => e
118
- puts '404 Error: '+e.message
119
- return Picombo::Controllers::Error_404.new.run_error(@@req.path)
110
+ begin
111
+ if ! controller_methods.include?(uri[:method].to_sym) and ! controller_methods.include?(uri[:method].to_s)
112
+ raise Picombo::E404
120
113
  end
121
- else
122
- puts uri[:controller]+' did not include '+uri[:method]+'!!'
114
+
115
+ if uri[:params].nil? or uri[:params].empty?
116
+ controller.send(uri[:method])
117
+ else
118
+ controller.send(uri[:method], *uri[:params])
119
+ end
120
+ rescue Picombo::E404 => e
121
+ puts '404 Error: '+e.message
123
122
  return Picombo::Controllers::Error_404.new.run_error(@@req.path)
124
123
  end
125
124
  Picombo::Event.run('system.post_controller')
@@ -167,8 +166,7 @@ module Picombo
167
166
  @@segments = @@current_uri.split('/')[1..-1]
168
167
  @@rsegments = router_parts[1..-1]
169
168
  routed_uri = @@current_uri
170
- puts '@@current_uri: '+@@current_uri.inspect
171
- puts 'routed_uri: '+routed_uri
169
+
172
170
  # Try and find a direct match
173
171
  if @@routes.key?(@@current_uri)
174
172
  routed_uri = @@routes[@@current_uri][:val]
@@ -187,7 +185,7 @@ puts 'routed_uri: '+routed_uri
187
185
  end
188
186
  end
189
187
  end
190
- puts '@@rsegments: '+@@rsegments.inspect
188
+
191
189
  params = @@rsegments.slice(2, router_parts.length)
192
190
 
193
191
  if ! params.nil?
@@ -23,16 +23,14 @@ module Picombo
23
23
 
24
24
  @template = Picombo::Stache::const_get(@template.capitalize).new if @template.is_a?(String)
25
25
 
26
- Picombo::Event.add('system.post_controller', [self, 'render']) if @auto_render
27
- end
26
+ Picombo::Event.add('system.display') do |data|
27
+ if @auto_render
28
+ if Picombo::Core.cli
29
+ return @template.render
30
+ end
28
31
 
29
- def render
30
- if @auto_render
31
- if Picombo::Core.cli
32
- return @template.render
32
+ @template.output
33
33
  end
34
-
35
- @template.output
36
34
  end
37
35
  end
38
36
  end
data/lib/core/core.rb CHANGED
@@ -74,7 +74,7 @@ module Picombo
74
74
  class Core
75
75
  @@cli = false
76
76
 
77
- VERSION = '0.4.0'
77
+ VERSION = '0.4.1'
78
78
 
79
79
  # Determines if the request was made on the CLI or not
80
80
  def self.cli
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 0
9
- version: 0.4.0
8
+ - 1
9
+ version: 0.4.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jeremy Bush
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-17 00:00:00 -05:00
17
+ date: 2010-06-22 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: 0.10.0
46
46
  type: :runtime
47
47
  version_requirements: *id002
48
- description: Picombo is a lightweight Ruby 1.9 MVC web framework that enables you to create websites quickly.
48
+ description: Picombo is a lightweight Ruby MVC web framework that enables you to create websites quickly.
49
49
  email: contractfrombelow@gmail.com
50
50
  executables: []
51
51