Skip to content

Commit

Permalink
Adding some helpers and methods
Browse files Browse the repository at this point in the history
  • Loading branch information
tscolari committed Aug 31, 2011
1 parent d0ed3a1 commit 1959d2d
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 3 deletions.
3 changes: 2 additions & 1 deletion README.rdoc
@@ -1,7 +1,8 @@
= Mobylette

This project rocks and uses MIT-LICENSE.
Not ready...

Mobile mime-type handling, based on the mobile-fu plugin, and these articles:

http://stackoverflow.com/questions/5126085/ruby-on-rails-mobile-application
http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens
Expand Down
6 changes: 6 additions & 0 deletions lib/mobylette.rb
@@ -1,2 +1,8 @@
module Mobylette
module Controllers
autoload "RespondToMobileRequests", "mobylette/controllers/respond_to_mobile_requests"
autoload "Helpers" , "mobylette/controllers/helpers"
end

require 'mobylette/railtie'
end
37 changes: 37 additions & 0 deletions lib/mobylette/controllers/helpers.rb
@@ -0,0 +1,37 @@
module Mobylette
module Controllers
module Helpers
extend ActiveSupport::Concern
module InstanceMethods

def mobylette_stylesheet_link_tag(*sources)
if is_mobile_request?
stylesheet_link_tag(*sulfix_mobile_assets(*sources, :css))
else
stylesheet_link_tag(*sources)
end
end

def mobylette_javascript_include_tag(*sources)
if is_mobile_request?
javascript_include_tag(*sulfix_mobile_assets(*sources, :js))
else
javascript_include_tag(*sources)
end
end

private

def sulfix_mobile_assets(*sources, extension)
sources.each_index do |index|
source = sources[index]
source_mobile = source.split(/.#{extension.to_s}$/)
sources[index] = "#{source[0]}_mobile"
sources[index] += ".#{extension.to_s}" if source =~ /\.css$/
end
return *sources
end
end
end
end
end
4 changes: 2 additions & 2 deletions lib/mobylette/controllers/respond_to_mobile_requests.rb
Expand Up @@ -22,7 +22,7 @@ module RespondToMobileRequestsMethods
'audiovox|motorola|samsung|telit|upg1|windows ce|ucweb|astel|plucker|' +
'x320|x240|j2me|sgh|portable|sprint|docomo|kddi|softbank|android|mmp|' +
'pdxgw|netfront|xiino|vodafone|portalmmm|sagem|mot-|sie-|ipod|up\\.b|' +
'webos|amoi|novarra|cdm|alcatel|pocket|ipad|iphone|mobileexplorer|' +
'webos|amoi|novarra|cdm|alcatel|pocket|ipad|iphone|mobileexplorer|' +
'mobile'
end

Expand All @@ -39,7 +39,7 @@ def handle_mobile
end

def is_mobile_request?
request.user_agent.to_s.downcase =~ Regexp.new(self.class.MOBILE_USER_AGENTS)
request.user_agent.to_s.downcase =~ /#{self.class.MOBILE_USER_AGENTS}/
end

end
Expand Down
10 changes: 10 additions & 0 deletions lib/mobylette/railtie.rb
@@ -0,0 +1,10 @@
module Mobylette
class Railtie < ::Rails::Railtie
initializer :mobylette do
ActiveSupport.on_load(:action_controller) do
::ActionController::Base.send(:include, Mobylette::Controllers::RespondToMobileRequests)
::ActionController::Base.helper Mobylette::Controllers::Helpers
end
end
end
end

0 comments on commit 1959d2d

Please sign in to comment.