Changeset 279
- Timestamp:
- 06/11/07 13:01:17 (1 year ago)
- Files:
-
- trunk/README (modified) (2 diffs)
- trunk/Rakefile (modified) (1 diff)
- trunk/lib/merb/merb_controller.rb (modified) (1 diff)
- trunk/lib/merb/merb_handler.rb (modified) (2 diffs)
- trunk/lib/merb/merb_view_context.rb (modified) (1 diff)
- trunk/lib/merb/mixins/controller_mixin.rb (modified) (1 diff)
- trunk/lib/merb/session/merb_ar_session.rb (modified) (5 diffs)
- trunk/tools/allison/cache/BODY (modified) (1 diff)
- trunk/tools/allison/cache/INDEX (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/README
r278 r279 42 42 Note the <tt>r.resource :posts</tt> macro. That makes it possible to use a RESTful CRUD style controller for the posts resource 43 43 44 Merb::Route Matcher.prepare do |r|44 Merb::Router.prepare do |r| 45 45 r.resources :posts 46 46 r.default_routes … … 153 153 respond_to {|format| 154 154 format.html { render } 155 format.js { render :js => 'index'}155 format.js { render :js => :index } 156 156 format.xml { render :xml => @posts.to_xml } 157 157 } trunk/Rakefile
r263 r279 62 62 s.add_dependency('mime-types') 63 63 s.add_dependency('xml-simple') 64 s.add_dependency('archive-tar-minitar')65 64 s.required_ruby_version = '>= 1.8.4' 66 65 trunk/lib/merb/merb_controller.rb
r263 r279 36 36 if MULTIPART_REGEXP =~ @env[Mongrel::Const::UPCASE_CONTENT_TYPE] && @method == :post 37 37 querystring.update(parse_multipart(request, $1)) 38 elsif @method == :post 38 elsif @method == :post || @method == :put 39 39 if [Mongrel::Const::APPLICATION_JSON, Mongrel::Const::TEXT_JSON].include?(@env[Mongrel::Const::UPCASE_CONTENT_TYPE]) 40 40 MERB_LOGGER.info("JSON Request") trunk/lib/merb/merb_handler.rb
r216 r279 11 11 12 12 13 13 require 'unroller' 14 14 class MerbHandler < Mongrel::HttpHandler 15 15 @@file_only_methods = ["GET","HEAD"] … … 66 66 controller = nil 67 67 controller, action = Merb::Dispatcher.handle(request, response) 68 69 68 MERB_LOGGER.info("Routing to controller: #{controller.class} action: #{action}\nRoute Recognition & Parsing HTTP Input took: #{Time.now - start} seconds") 70 69 rescue Object => e trunk/lib/merb/merb_view_context.rb
r274 r279 52 52 @controller 53 53 end 54 55 def request 56 @controller.request 57 end 58 59 def params 60 @controller.params 61 end 62 63 def cookies 64 @controller.cookies 65 end 66 67 def headers 68 @controller.headers 69 end 70 71 def session 72 @controller.session 73 end 74 75 def response 76 @controller.response 77 end 54 78 55 79 alias_method :old_respond_to?, :respond_to? trunk/lib/merb/mixins/controller_mixin.rb
r241 r279 229 229 end 230 230 231 def rand_uuid232 "%04x%04x-%04x-%04x-%04x-%06x%06x" % [233 rand(0x0010000),234 rand(0x0010000),235 rand(0x0010000),236 rand(0x0010000),237 rand(0x0010000),238 rand(0x1000000),239 rand(0x1000000),240 ]241 end242 231 243 232 def escape_xml(obj) trunk/lib/merb/session/merb_ar_session.rb
r224 r279 9 9 before = @cookies[_session_id_key] 10 10 @session, @cookies[_session_id_key] = Merb::Session.persist(@cookies[_session_id_key]) 11 @ _fingerprint_before = Marshal.dump(@session).hash11 @session.dirty = false 12 12 @_new_cookie = @cookies[_session_id_key] != before 13 13 end … … 15 15 def finalize_session 16 16 MERB_LOGGER.info("Finalize session") 17 unless Marshal.dump(@session).hash == @_fingerprint_before 18 @session.save 19 end 17 @session.save if @session.dirty 20 18 set_cookie(_session_id_key, @cookies[_session_id_key], Time.now+Merb::Const::WEEK*2) if @_new_cookie 21 19 end … … 29 27 before_save :marshal_data! 30 28 before_save :raise_on_session_data_overflow! 31 29 attr_accessor :dirty 32 30 RAND_CHARS = [*'A'..'Z'] + [*'0'..'9'] + [*'a'..'z'] 33 31 … … 35 33 # Generates a new session ID and creates a row for the new session in the database. 36 34 def generate 37 rand_max = RAND_CHARS.size 38 sid = (0...32).inject("") { |ret,_| ret << RAND_CHARS[rand(rand_max)] } 35 sid = "%04x%04x-%04x-%04x-%04x-%06x%06x" % [ 36 rand(0x0010000), 37 rand(0x0010000), 38 rand(0x0010000), 39 rand(0x0010000), 40 rand(0x0010000), 41 rand(0x1000000), 42 rand(0x1000000), 43 ] 39 44 create(:session_id => sid, :data => {}) 40 45 end … … 84 89 85 90 def []=(key, val) 91 @dirty = true 86 92 data[key] = val 87 93 end trunk/tools/allison/cache/BODY
r263 r279 1 <html xml :lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" rel="stylesheet" media="screen" href="%style_url%"/><script type="text/javascript">1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" media="screen" href="%style_url%" rel="stylesheet"/><script type="text/javascript"> 2 2 // Javascript for Allison RDoc template 3 3 // Copyright 2006 Cloudburst LLC trunk/tools/allison/cache/INDEX
r263 r279 1 <html xml :lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" rel="stylesheet" media="screen" href="rdoc-style.css"/><meta content="0;url=%initial_page%" http-equiv="refresh"/></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div class="curve" id="preheader_curve_6"></div><div class="curve" id="preheader_curve_7"></div><div class="curve" id="preheader_curve_8"></div><div class="curve" id="preheader_curve_9"></div><div id="header"><span id="title"><p> </p><h1>Ruby Documentation</h1></span></div><div class="clear"></div><div id="redirect"><a href="%initial_page%"><h1>Redirect</h1></a></div></div></body></html>1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" media="screen" href="rdoc-style.css" rel="stylesheet"/><meta content="0;url=%initial_page%" http-equiv="refresh"/></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div class="curve" id="preheader_curve_6"></div><div class="curve" id="preheader_curve_7"></div><div class="curve" id="preheader_curve_8"></div><div class="curve" id="preheader_curve_9"></div><div id="header"><span id="title"><p> </p><h1>Ruby Documentation</h1></span></div><div class="clear"></div><div id="redirect"><a href="%initial_page%"><h1>Redirect</h1></a></div></div></body></html>
