rails-jquerymobile 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # gem's dependencies defined in .gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ JQuery Mobile for Rails
2
+ =======================
3
+
4
+ Adds a :mobile format to a Rails app so that both (desktop) browser optimized and jQuery Mobile optimized pages can be rendered.
5
+
6
+ Supports Rails 3.1 (and maybe Rails 3.0?).
7
+
8
+ Installation
9
+ ------------
10
+
11
+ Include it into your Gemfile:
12
+
13
+ gem 'rails-jquerymobile'
14
+
15
+ In the relevant controller(s), add:
16
+
17
+ has_mobile_format
18
+
19
+ Typically, adding this to the ApplicationController is a good idea.
20
+
21
+ Now, in order to switch to the mobile site (i.e. the mobile format), use
22
+
23
+ mobile=1
24
+
25
+ as a query parameter, e.g.:
26
+
27
+ http://mysite.com/myresources?mobile=1
28
+
29
+ Alternatively, it would be nice if a mobile browser is autodetected, but this is not implemented yet.
30
+
31
+ You can generate a mobile format (that uses jQuery Mobile):
32
+
33
+ rails generate rails_jquerymobile:layout
34
+
35
+ Copyright (c) 2011 Chris, released under the MIT license
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'rails-jquerymobile'
@@ -0,0 +1,32 @@
1
+ module HasMobileFormat
2
+ def self.included(base)
3
+ base.send :extend, ClassMethods
4
+ end
5
+
6
+ module ClassMethods
7
+ def has_mobile_format(options = {})
8
+ send :include, InstanceMethods
9
+ before_filter :prepare_for_mobile_formats
10
+ end
11
+ end
12
+
13
+ module InstanceMethods
14
+ def mobile?
15
+ end
16
+ # TODO: following should be private?
17
+ def prepare_for_mobile_formats
18
+ remember_format(params[:mobile].to_s)
19
+ puts "before assigning: request.format=#{request.format}, session[:remembered_format]=#{session[:remembered_format]}"
20
+ format = session[:remembered_format]
21
+ puts "format=#{format}"
22
+ request.format = format unless format.blank?
23
+ puts "request.format=#{request.format}"
24
+ end
25
+ def remember_format(format)
26
+ session[:remembered_format] = :mobile if format == '1'
27
+ session[:remembered_format] = nil if format == '0'
28
+ puts "session[:remembered_format]=#{session[:remembered_format]}"
29
+ end
30
+ end
31
+
32
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsJquerymobile
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,19 @@
1
+ require 'rails/generators'
2
+ require 'rails-jquerymobile/has_mobile_format'
3
+
4
+ class RailsJquerymobile::Railtie < Rails::Railtie
5
+ initializer "RailsJquerymobileRailtie" do
6
+ Mime::Type.register_alias "text/html", :mobile
7
+ end
8
+ end
9
+
10
+ ActionController::Base.send :include, HasMobileFormat
11
+
12
+ class RailsJquerymobile::LayoutGenerator < Rails::Generators::Base
13
+ source_root File.expand_path("../templates", __FILE__)
14
+ def create_mobile_layout
15
+ #create_file "app/views/layouts/application.mobile.erb", "<!-- This may be a layout... -->"
16
+ copy_file "application.mobile.erb", "app/views/layouts/application.mobile.erb"
17
+ end
18
+ end
19
+
@@ -0,0 +1,32 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Mobile Site</title>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
7
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
8
+ <script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
9
+ <%# For local testing
10
+ <link rel="stylesheet" href="/jquery.mobile-1.0.min.css" />
11
+ <script type="text/javascript" src="/jquery-1.6.4.min.js"></script>
12
+ <script type="text/javascript" src="/jquery.mobile-1.0.min.js"></script>
13
+ %>
14
+
15
+ </head>
16
+ <body>
17
+ <div data-role="page">
18
+
19
+ <div data-role="header">
20
+ <% unless request.referer.blank? %>
21
+ <a href="#index" data-role="button" data-rel="back" data-icon="arrow-l" data-iconpos="notext">Back</a>
22
+ <% end %>
23
+ <h1><%= content_for(:title).blank? ? "Mobile Site" : yield(:title) %></h1>
24
+ </div>
25
+
26
+ <div data-role="content">
27
+ <%= yield %>
28
+ </div>
29
+
30
+ </div>
31
+ </body>
32
+ </html>
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  # s.test_files.reject! { |fn| fn.include? ".swp" }
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
+ s.add_dependency 'rails'
21
22
  # s.add_development_dependency('rspec')
22
23
  [ ].each do |d| # no dependencies right now ;)
23
24
  s.add_development_dependency d
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-jquerymobile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,18 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2011-12-20 00:00:00.000000000Z
13
- dependencies: []
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2152424580 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2152424580
14
25
  description: Nuf said.
15
26
  email:
16
27
  - christian.oloff+gem@gmail.com
@@ -19,7 +30,13 @@ extensions: []
19
30
  extra_rdoc_files: []
20
31
  files:
21
32
  - .gitignore
33
+ - Gemfile
34
+ - README.md
35
+ - init.rb
36
+ - lib/rails-jquerymobile.rb
37
+ - lib/rails-jquerymobile/has_mobile_format.rb
22
38
  - lib/rails-jquerymobile/version.rb
39
+ - lib/templates/application.mobile.erb
23
40
  - rails-jquerymobile.gemspec
24
41
  homepage: http://rails-jquerymobile.org
25
42
  licenses: []