mobylette 1.0.0 → 1.1.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 (29) hide show
  1. data/README.rdoc +33 -9
  2. data/Rakefile +5 -0
  3. data/lib/mobylette.rb +5 -0
  4. data/lib/mobylette/controllers/helpers.rb +6 -5
  5. data/lib/mobylette/controllers/respond_to_mobile_requests.rb +14 -5
  6. data/lib/mobylette/helmet.rb +11 -0
  7. data/lib/mobylette/version.rb +1 -1
  8. data/spec/controllers/actioncontroller_base_spec.rb +8 -0
  9. data/spec/controllers/home_controller_spec.rb +30 -0
  10. data/spec/dummy/app/views/home/desktop.html.erb +3 -1
  11. data/spec/dummy/app/views/home/index.html.erb +3 -1
  12. data/spec/dummy/app/views/home/index.js.erb +1 -0
  13. data/spec/dummy/app/views/home/index.mobile.erb +3 -1
  14. data/spec/dummy/app/views/home/mobile.mobile.erb +3 -1
  15. data/spec/dummy/app/views/home/no_mobile_view.html.erb +3 -1
  16. metadata +44 -89
  17. data/spec/dummy/db/development.sqlite3 +0 -0
  18. data/spec/dummy/db/test.sqlite3 +0 -0
  19. data/spec/dummy/log/development.log +0 -32
  20. data/spec/dummy/log/test.log +0 -1537
  21. data/spec/dummy/tmp/cache/assets/C82/3E0/sprockets%2F48eb4ac616538f8f36870451073315da +0 -0
  22. data/spec/dummy/tmp/cache/assets/CE4/1C0/sprockets%2F18d93e1533d585b2f64ec90b33176ac9 +0 -0
  23. data/spec/dummy/tmp/cache/assets/CED/A70/sprockets%2F621683d8791730a9cc7ce45e17a7e46d +0 -0
  24. data/spec/dummy/tmp/cache/assets/CFC/200/sprockets%2F716f89d85d4855706b8a9abec1969c62 +0 -0
  25. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  26. data/spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  27. data/spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  28. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  29. data/spec/dummy/tmp/pids/server.pid +0 -1
@@ -1,4 +1,4 @@
1
- http://fd.img.v4.skyrock.net/fd6/mantaur/pics/206915407_small.jpg
1
+ http://tscolari.github.com/mobylette/mobylette_images/mobylette.jpg
2
2
 
3
3
  = Mobylette http://travis-ci.org/tscolari/mobylette.png
4
4
 
@@ -22,7 +22,7 @@ By adding "respond_to_mobile_requests" in your application_controller (or any ot
22
22
 
23
23
  Add the gem to your gemfile:
24
24
 
25
- gem 'mobylette', :git => "git://github.com/tscolari/mobylette.git"
25
+ gem 'mobylette'
26
26
 
27
27
  And add to your ApplicationController.rb (for enabling it to all your controllers) or to the controllers you want this functionality on:
28
28
 
@@ -32,17 +32,25 @@ After that, you may start adding your .mobile. views.
32
32
 
33
33
  == Helpers
34
34
 
35
- ==== is_mobile_request?
35
+ * ==== is_mobile_request?
36
36
 
37
- This helper returns true if the request comes from a mobile device, false if it does not.
37
+ This helper returns true if the request comes from a mobile device, false if it does not.
38
38
 
39
- ==== mobylette_stylesheet_link_tag(*sources)
39
+ * ==== is_mobile_view?
40
40
 
41
- This works like the stylesheet_link_tag helper, but when the request comes from a mobile device, it adds "_mobile" to the stylesheets before calling stylesheet_link_tag
41
+ Returns if the current format is :mobile or not.
42
42
 
43
- ==== mobylette_javascript_include_tag(*soruces)
43
+ There is a difference between is_mobile_view? and is_mobile_request?. You may have a user requesting from a mobile device (is_mobile_request? == true) and at the same time, you may use the sesssion override to render de default format aways (is_mobile_view? == false). There are a lot of other combinations where these 2 functions will return different results.
44
+ * is_mobile_request? -> Exclusively checks for the device from where the request were made
45
+ * is_mobile_view? -> Exclusively checks for the view format been rendered
44
46
 
45
- Same as mobylette_stylesheet_link_tag, but for javascript files and javascript_include_tag
47
+ * ==== mobylette_stylesheet_link_tag(*sources)
48
+
49
+ This works like the stylesheet_link_tag helper, but when the request comes from a mobile device, it adds "_mobile" to the stylesheets before calling stylesheet_link_tag
50
+
51
+ * ==== mobylette_javascript_include_tag(*soruces)
52
+
53
+ Same as mobylette_stylesheet_link_tag, but for javascript files and javascript_include_tag
46
54
 
47
55
  == Fall Backs
48
56
 
@@ -54,9 +62,25 @@ This would force all views (mobile) to fall back to the html views. You may also
54
62
 
55
63
  respond_to_mobile_requests :fall_back => false
56
64
 
65
+ == Forcing/Ignoring Mobile Requests
66
+
67
+ You may force your user to aways render the mobile format, or to aways render the default request format (when the request comes from a mobile device). You can use the session var :mobylette_override for doing it:
68
+
69
+ session[:mobylette_override] = :ignore_mobile
70
+
71
+ This will skip the code that would force the mobile format. By doing this, your user will aways render the 'original' version of your app.
72
+
73
+ session[:mobylette_override] = :force_mobile
74
+
75
+ This will force the mobile format rendering, no matter from where the user is requesting it (unless it's a xhr request).
76
+
77
+ session[:mobylette_override] = nil
78
+
79
+ This will disable any override (default).
80
+
57
81
  == Testing
58
82
 
59
- http://image.tin247.com/kenh14/080918143137-689-665.jpg
83
+ http://tscolari.github.com/mobylette/mobylette_images/helmet.jpg
60
84
 
61
85
  Don't drive your mobylette without your Helmet! It's always safer do tests!
62
86
 
data/Rakefile CHANGED
@@ -33,5 +33,10 @@ Rake::TestTask.new(:test) do |t|
33
33
  t.verbose = false
34
34
  end
35
35
 
36
+ require 'metric_fu'
37
+ MetricFu::Configuration.run do |config|
38
+ config.rcov[:test_files] = ['spec/**/*_spec.rb']
39
+ config.rcov[:rcov_opts] << "-Ispec" # Needed to find spec_helper
40
+ end
36
41
 
37
42
  task :default => :test
@@ -1,12 +1,17 @@
1
+ #
2
+ # Rails automatic mobile request support
1
3
  module Mobylette
2
4
  module Controllers
3
5
  autoload "RespondToMobileRequests", "mobylette/controllers/respond_to_mobile_requests"
4
6
  autoload "Helpers" , "mobylette/controllers/helpers"
5
7
  end
6
8
 
9
+ # TestHelpers
7
10
  autoload "Helmet" , "mobylette/helmet"
11
+
8
12
  require 'mobylette/railtie'
9
13
  end
10
14
 
15
+ # Creating the :mobile format alias
11
16
  require 'action_controller'
12
17
  Mime::Type.register_alias "text/html", :mobile
@@ -1,14 +1,16 @@
1
1
  module Mobylette
2
2
  module Controllers
3
3
 
4
- #
5
4
  # Mobylette::Controllers::Helpers include few methods to
6
5
  # include different css/js files for the mobile and for
7
6
  # the normal version of your layout
8
7
  #
9
- # Personal note: I'm rethinking and I guess that, since you
10
- # may have (and probably will) a different layout file for the
11
- # "normal" and mobile version, you probably wont use this at all
8
+ # Personal notes:
9
+ # * I'm rethinking and I guess that, since you
10
+ # may have (and probably will) a different layout file for the
11
+ # "normal" and mobile version, you probably wont use this at all.
12
+ # * Also I'm not sure it's the case of using 'is_mobile_request?'
13
+ # or 'is_mobile_view?' check here.'
12
14
  module Helpers
13
15
  extend ActiveSupport::Concern
14
16
 
@@ -34,7 +36,6 @@ module Mobylette
34
36
 
35
37
  private
36
38
 
37
- #
38
39
  # Anex the "_mobile" sulfix to each string in the array,
39
40
  # before the .#{extension}, if it exists
40
41
  def sulfix_mobile_assets(sources, extension)
@@ -10,19 +10,20 @@ module Mobylette
10
10
 
11
11
  included do
12
12
  helper_method :is_mobile_request?
13
+ helper_method :is_mobile_view?
13
14
 
14
15
  # List of mobile agents, from mobile_fu (https://github.com/brendanlim/mobile-fu)
15
16
  MOBILE_USER_AGENTS = 'palm|blackberry|nokia|phone|midp|mobi|symbian|chtml|ericsson|minimo|' +
16
17
  'audiovox|motorola|samsung|telit|upg1|windows ce|ucweb|astel|plucker|' +
17
18
  'x320|x240|j2me|sgh|portable|sprint|docomo|kddi|softbank|android|mmp|' +
18
19
  'pdxgw|netfront|xiino|vodafone|portalmmm|sagem|mot-|sie-|ipod|up\\.b|' +
19
- 'webos|amoi|novarra|cdm|alcatel|pocket|ipad|iphone|mobileexplorer|' +
20
- 'mobile'
20
+ 'webos|amoi|novarra|cdm|alcatel|pocket|iphone|mobileexplorer|mobile'
21
21
  end
22
22
 
23
23
  module ClassMethods
24
24
 
25
25
  # This method enables the controller do handle mobile requests
26
+ #
26
27
  # You must add this to every controller you want to respond differently to mobile devices,
27
28
  # or make it application wide calling it from the ApplicationController
28
29
  #
@@ -47,16 +48,23 @@ module Mobylette
47
48
 
48
49
  private
49
50
 
50
- # helper method to check if the current request if from a mobile device or not
51
+ # This helper returns exclusively if the request's user_aget is from a mobile
52
+ # device or not.
51
53
  def is_mobile_request?
52
- return true if (request.format.to_s == "mobile") or (params[:format] == "mobile")
53
54
  request.user_agent.to_s.downcase =~ /#{MOBILE_USER_AGENTS}/
54
55
  end
56
+
57
+ # This helper returns exclusively if the current format is mobile or not
58
+ def is_mobile_view?
59
+ true if (request.format.to_s == "mobile") or (params[:format] == "mobile")
60
+ end
61
+
55
62
  end
56
63
 
57
64
  end
58
65
 
59
66
  # RespondToMobileRequestsMethods is included by respond_to_mobile_requests
67
+ #
60
68
  # This will check if the request is from a mobile device and change
61
69
  # the request format to :mobile
62
70
  module RespondToMobileRequestsMethods
@@ -72,7 +80,8 @@ module Mobylette
72
80
  # Changes the request.form to :mobile, when the request is from
73
81
  # a mobile device
74
82
  def handle_mobile
75
- if is_mobile_request?
83
+ return if session[:mobylette_override] == :ignore_mobile
84
+ if not request.xhr? and ((session[:mobylette_override] == :force_mobile) or (is_mobile_request?))
76
85
  original_format = request.format.to_sym
77
86
  request.format = :mobile
78
87
  if self.fall_back_format != false
@@ -10,6 +10,7 @@ module Mobylette
10
10
  autoload "Faker" , "mobylette/helmet/faker"
11
11
 
12
12
  # Force the request for the user_agent
13
+ #
13
14
  # Remember to add it BEFORE the request
14
15
  #
15
16
  # Example:
@@ -24,6 +25,7 @@ module Mobylette
24
25
  end
25
26
 
26
27
  # Reset the user_aget to the default ("Rails Testing")
28
+ #
27
29
  # Remember to add it BEFORE the request
28
30
  #
29
31
  # Example:
@@ -37,5 +39,14 @@ module Mobylette
37
39
  request.user_agent = "Rails Testing"
38
40
  end
39
41
 
42
+ # set_session_override will set the 'value' to the session override control
43
+ # value may be:
44
+ # * :ignore_mobile -> This will disable mobile checking, and the original format will be rendered
45
+ # * :force_mobile -> This will force to all requests for this session be mobile (except xhr)
46
+ # * nil -> This will disable session override
47
+ def set_session_override(value)
48
+ session[:mobylette_override] = value
49
+ end
50
+
40
51
  end
41
52
  end
@@ -1,3 +1,3 @@
1
1
  module Mobylette
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -13,4 +13,12 @@ describe ActionController::Base do
13
13
  @controller.send(:is_mobile_request?).should be_nil
14
14
  end
15
15
 
16
+ it "should have the :is_mobile_request? method" do
17
+ # works on ruby 1.9.2, but not on 1.8.7:
18
+ #@controller.private_methods.include?(:is_mobile_request?).should be_true
19
+
20
+ @controller.send(:is_mobile_view?).should be_nil
21
+ end
22
+
23
+
16
24
  end
@@ -86,4 +86,34 @@ describe HomeController do
86
86
  response.body.should contain("THIS IS NOT A MOBILE DEVICE")
87
87
  end
88
88
 
89
+ #######################################################
90
+ # Testing XHR requests
91
+ it "should not use mobile format for xhr requests" do
92
+ force_mobile_request_agent("Android")
93
+ xhr :get, :index
94
+ response.should render_template(:index)
95
+ response.body.should contain("AJAX VIEW")
96
+ end
97
+
98
+ #######################################################
99
+ # Testing Session Override
100
+
101
+ it "should force mobile view if session says it so" do
102
+ reset_test_request_agent
103
+ set_session_override(:force_mobile)
104
+ get :index
105
+ response.should render_template(:index)
106
+ response.should contain("this is the mobile view")
107
+ response.should contain("THIS IS NOT A MOBILE DEVICE")
108
+ end
109
+
110
+ it "should ignore mobile view processing if session says it so" do
111
+ force_mobile_request_agent("Android")
112
+ set_session_override(:ignore_mobile)
113
+ get :index
114
+ response.should render_template(:index)
115
+ response.should contain("this is the html view")
116
+ response.should contain("THIS A MOBILE DEVICE")
117
+ end
118
+
89
119
  end
@@ -1 +1,3 @@
1
- this is a desktop html mime type
1
+ <% unless is_mobile_view? %>
2
+ this is a desktop html mime type
3
+ <% end %>
@@ -1,4 +1,6 @@
1
- this is the html view
1
+ <% unless is_mobile_view? %>
2
+ this is the html view
3
+ <% end %>
2
4
 
3
5
  <% if is_mobile_request? %>
4
6
  THIS A MOBILE DEVICE
@@ -0,0 +1 @@
1
+ AJAX VIEW
@@ -1,4 +1,6 @@
1
- this is the mobile view
1
+ <% if is_mobile_view? %>
2
+ this is the mobile view
3
+ <% end %>
2
4
 
3
5
  <% if is_mobile_request? %>
4
6
  THIS A MOBILE DEVICE
@@ -1 +1,3 @@
1
- this is a mobile mobile view
1
+ <% if is_mobile_view? %>
2
+ this is a mobile mobile view
3
+ <% end %>
@@ -1 +1,3 @@
1
- This is the only view, and it's html
1
+ <% unless is_mobile_view? %>
2
+ This is the only view, and it's html
3
+ <% end %>
metadata CHANGED
@@ -1,62 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mobylette
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Tiago Scolari
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-09-03 00:00:00 -03:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2011-09-04 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2151944860 !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
18
+ requirements:
25
19
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 5
28
- segments:
29
- - 3
30
- - 1
31
- version: "3.1"
32
- version_requirements: *id001
33
- name: rails
34
- prerelease: false
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
35
22
  type: :runtime
36
- - !ruby/object:Gem::Dependency
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
- version_requirements: *id002
47
- name: rspec
48
23
  prerelease: false
24
+ version_requirements: *2151944860
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &2151943960 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
49
33
  type: :development
34
+ prerelease: false
35
+ version_requirements: *2151943960
50
36
  description: Adds the mobile format for rendering views for mobile device.
51
- email:
37
+ email:
52
38
  - tscolari@gmail.com
53
39
  executables: []
54
-
55
40
  extensions: []
56
-
57
41
  extra_rdoc_files: []
58
-
59
- files:
42
+ files:
60
43
  - lib/mobylette/controllers/helpers.rb
61
44
  - lib/mobylette/controllers/respond_to_mobile_requests.rb
62
45
  - lib/mobylette/helmet/faker.rb
@@ -126,6 +109,7 @@ files:
126
109
  - spec/dummy/app/views/force_fallback/test.js.erb
127
110
  - spec/dummy/app/views/home/desktop.html.erb
128
111
  - spec/dummy/app/views/home/index.html.erb
112
+ - spec/dummy/app/views/home/index.js.erb
129
113
  - spec/dummy/app/views/home/index.mobile.erb
130
114
  - spec/dummy/app/views/home/mobile.mobile.erb
131
115
  - spec/dummy/app/views/home/no_mobile_view.html.erb
@@ -152,65 +136,48 @@ files:
152
136
  - spec/dummy/config/locales/en.yml
153
137
  - spec/dummy/config/routes.rb
154
138
  - spec/dummy/config.ru
155
- - spec/dummy/db/development.sqlite3
156
139
  - spec/dummy/db/schema.rb
157
- - spec/dummy/db/test.sqlite3
158
- - spec/dummy/log/development.log
159
- - spec/dummy/log/test.log
160
140
  - spec/dummy/public/404.html
161
141
  - spec/dummy/public/422.html
162
142
  - spec/dummy/public/500.html
163
143
  - spec/dummy/public/favicon.ico
164
144
  - spec/dummy/Rakefile
165
145
  - spec/dummy/script/rails
166
- - spec/dummy/tmp/cache/assets/C82/3E0/sprockets%2F48eb4ac616538f8f36870451073315da
167
- - spec/dummy/tmp/cache/assets/CE4/1C0/sprockets%2F18d93e1533d585b2f64ec90b33176ac9
168
- - spec/dummy/tmp/cache/assets/CED/A70/sprockets%2F621683d8791730a9cc7ce45e17a7e46d
169
- - spec/dummy/tmp/cache/assets/CFC/200/sprockets%2F716f89d85d4855706b8a9abec1969c62
170
- - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
171
- - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
172
- - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
173
- - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
174
- - spec/dummy/tmp/pids/server.pid
175
146
  - spec/helpers/mobylette_helpers_spec.rb
176
147
  - spec/integration/navigation_spec.rb
177
148
  - spec/mobylette_spec.rb
178
149
  - spec/spec_helper.rb
179
- has_rdoc: true
180
150
  homepage: https://github.com/tscolari/mobylette
181
151
  licenses: []
182
-
183
152
  post_install_message:
184
153
  rdoc_options: []
185
-
186
- require_paths:
154
+ require_paths:
187
155
  - lib
188
- required_ruby_version: !ruby/object:Gem::Requirement
156
+ required_ruby_version: !ruby/object:Gem::Requirement
189
157
  none: false
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- hash: 3
194
- segments:
158
+ requirements:
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ segments:
195
163
  - 0
196
- version: "0"
197
- required_rubygems_version: !ruby/object:Gem::Requirement
164
+ hash: 3248281126714591700
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
166
  none: false
199
- requirements:
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- hash: 3
203
- segments:
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ segments:
204
172
  - 0
205
- version: "0"
173
+ hash: 3248281126714591700
206
174
  requirements: []
207
-
208
175
  rubyforge_project:
209
- rubygems_version: 1.6.2
176
+ rubygems_version: 1.8.6
210
177
  signing_key:
211
178
  specification_version: 3
212
179
  summary: Mobile request handling for your Rails app.
213
- test_files:
180
+ test_files:
214
181
  - spec/controllers/actioncontroller_base_spec.rb
215
182
  - spec/controllers/default_fallback_controller_spec.rb
216
183
  - spec/controllers/desktop_only_controller_spec.rb
@@ -268,6 +235,7 @@ test_files:
268
235
  - spec/dummy/app/views/force_fallback/test.js.erb
269
236
  - spec/dummy/app/views/home/desktop.html.erb
270
237
  - spec/dummy/app/views/home/index.html.erb
238
+ - spec/dummy/app/views/home/index.js.erb
271
239
  - spec/dummy/app/views/home/index.mobile.erb
272
240
  - spec/dummy/app/views/home/mobile.mobile.erb
273
241
  - spec/dummy/app/views/home/no_mobile_view.html.erb
@@ -294,26 +262,13 @@ test_files:
294
262
  - spec/dummy/config/locales/en.yml
295
263
  - spec/dummy/config/routes.rb
296
264
  - spec/dummy/config.ru
297
- - spec/dummy/db/development.sqlite3
298
265
  - spec/dummy/db/schema.rb
299
- - spec/dummy/db/test.sqlite3
300
- - spec/dummy/log/development.log
301
- - spec/dummy/log/test.log
302
266
  - spec/dummy/public/404.html
303
267
  - spec/dummy/public/422.html
304
268
  - spec/dummy/public/500.html
305
269
  - spec/dummy/public/favicon.ico
306
270
  - spec/dummy/Rakefile
307
271
  - spec/dummy/script/rails
308
- - spec/dummy/tmp/cache/assets/C82/3E0/sprockets%2F48eb4ac616538f8f36870451073315da
309
- - spec/dummy/tmp/cache/assets/CE4/1C0/sprockets%2F18d93e1533d585b2f64ec90b33176ac9
310
- - spec/dummy/tmp/cache/assets/CED/A70/sprockets%2F621683d8791730a9cc7ce45e17a7e46d
311
- - spec/dummy/tmp/cache/assets/CFC/200/sprockets%2F716f89d85d4855706b8a9abec1969c62
312
- - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
313
- - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
314
- - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
315
- - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
316
- - spec/dummy/tmp/pids/server.pid
317
272
  - spec/helpers/mobylette_helpers_spec.rb
318
273
  - spec/integration/navigation_spec.rb
319
274
  - spec/mobylette_spec.rb