mobvious-rails 0.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.
@@ -0,0 +1,6 @@
1
+ /.bundle
2
+ /.yardoc
3
+ /doc
4
+ /Gemfile.lock
5
+ /tmp
6
+ /vendor/ruby
@@ -0,0 +1 @@
1
+ -m markdown
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+
6
+
7
+ # == SPECIAL DEVELOPMENT DEPS HANDLING ==
8
+
9
+ # temporarily switched for this fork, because the current version of guard-minitest has broken notifications
10
+ gem 'guard-minitest', git: 'git://github.com/aspiers/guard-minitest', ref: '4b660261d35'
11
+
12
+ gem 'mobileesp', git: 'git://github.com/jistr/mobileesp'
13
+ gem 'mobvious', git: 'git://github.com/jistr/mobvious', branch: 'develop'
14
+ # gem 'mobvious', path: '../mobvious' # for development
15
+ gem 'mocha', require: false
16
+ gem 'turn', require: false
@@ -0,0 +1,24 @@
1
+ guard 'minitest' do
2
+ watch(%r|^spec/(.*)_spec\.rb|)
3
+ watch(%r|^lib/(.*)\.rb|) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch(%r|^spec/spec_helper\.rb|) { "spec" }
5
+ end
6
+
7
+ guard 'coffeescript', output: 'tmp/javascripts-compiled', hide_success: true do
8
+ watch(/^app\/assets\/javascripts\/(.*).coffee/)
9
+ end
10
+
11
+ guard 'coffeescript', output: 'tmp/spec-javascripts-compiled', hide_success: true do
12
+ watch(/^spec\/javascripts\/(.*).coffee/)
13
+
14
+ # FIXME: tests run for each compiled file, should run only once
15
+ callback(:run_all_end) do
16
+ `rake jasmine:ci`
17
+ if $? == 0
18
+ ::Guard::Notifier.notify('CoffeeScript tests passed.', { title: 'CoffeeScript tests' })
19
+ else
20
+ ::Guard::Notifier.notify('CoffeeScript tests failed.', { title: 'CoffeeScript tests', image: :failed })
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ begin
4
+ require 'jasmine'
5
+ load 'jasmine/tasks/jasmine.rake'
6
+ rescue LoadError
7
+ task :jasmine do
8
+ abort "Jasmine is not available. In order to run jasmine, you must: (sudo) gem install jasmine"
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ if window.Mobvious == undefined
2
+ window.Mobvious = {}
3
+
4
+ Mobvious.for_device_type = (args...) ->
5
+ callback_fn = args[args.length - 1]
6
+ wanted_device_types = args[0..(args.length - 2)]
7
+
8
+ for wanted_device_type in wanted_device_types
9
+ return callback_fn() if Mobvious.device_type == wanted_device_type
10
+
11
+ null
@@ -0,0 +1,14 @@
1
+ require "mobvious/rails/version"
2
+
3
+ require "mobvious/rails/controller"
4
+ require "mobvious/rails/engine"
5
+ require "mobvious/rails/helper"
6
+
7
+ module Mobvious
8
+ # Mobvious::Rails is a helper library to ease development in Rails when using
9
+ # the Mobvious library to detect client device types.
10
+ #
11
+ # It provides basic controller and view extensions and some CoffeeScript helpers.
12
+ module Rails
13
+ end
14
+ end
@@ -0,0 +1,41 @@
1
+ module Mobvious
2
+ module Rails
3
+ # A module holding Rails controller extensions.
4
+ #
5
+ # Just put `include Mobvious::Rails::Controller` into your `ApplicationController`.
6
+ module Controller
7
+ # Executes a block of code only when a request was made by a given client device type.
8
+ #
9
+ # Example:
10
+ #
11
+ # for_device_type :mobile do
12
+ # logger.info "This gets executed only for mobile phones."
13
+ # end
14
+ #
15
+ # @param wanted_device_type a symbol identifying a device type
16
+ # @yield a block to execute if the specified device type matches device type of the
17
+ # current request
18
+ # @return value that the yielded block returns, or nil if it didn't get executed
19
+ def for_device_type(*wanted_device_types)
20
+ unless block_given?
21
+ raise ArgumentError, "Device helper takes a block of code to execute for given device."
22
+ end
23
+
24
+ unless device_type
25
+ raise "Mobvious device type not set. Did you add the Mobvious rack middleware?"
26
+ end
27
+
28
+ if wanted_device_types.include? device_type
29
+ yield
30
+ else
31
+ nil
32
+ end
33
+ end
34
+
35
+ # @return [Symbol] device type for current request
36
+ def device_type
37
+ request.env['mobvious.device_type']
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,8 @@
1
+ module Mobvious
2
+ module Rails
3
+ # Definition of this class makes it a Rails engine, enabling this library
4
+ # to provide assets can be used in the application.
5
+ class Engine < ::Rails::Engine
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,67 @@
1
+ module Mobvious
2
+ module Rails
3
+ # A module holding Rails view helper extensions.
4
+ #
5
+ # Just put `include Mobvious::Rails::Helper` into your `ApplicationHelper`.
6
+ module Helper
7
+ # Executes a block of code only when a request was made by a given client device type.
8
+ #
9
+ # Example:
10
+ #
11
+ # <% for_device_type :mobile do %>
12
+ # <p>This gets rendered only on mobile phones.</p>
13
+ # <% end %>
14
+ #
15
+ # @param wanted_device_type a symbol identifying a device type
16
+ # @yield a block to execute if the specified device type matches device type of the
17
+ # current request
18
+ # @return value that the yielded block returns, or nil if it didn't get executed
19
+ def for_device_type(*wanted_device_types)
20
+ unless block_given?
21
+ raise ArgumentError, "Device helper takes a block of content to render for given device."
22
+ end
23
+
24
+ unless device_type
25
+ raise "Mobvious device type not set. Did you add the Mobvious rack middleware?"
26
+ end
27
+
28
+ if wanted_device_types.include? device_type
29
+ yield
30
+ else
31
+ nil
32
+ end
33
+ end
34
+
35
+ # @return [Symbol] device type for current request
36
+ def device_type
37
+ request.env['mobvious.device_type']
38
+ end
39
+
40
+ # Forms a `<script>` tag setting JavaScript variable `window.Mobvious.device_type`
41
+ # to a string holding current request's device type. You can then use
42
+ # `Mobvious.device_type` in all your JavaScripts to get this value.
43
+ #
44
+ # Example:
45
+ #
46
+ # <head>
47
+ # <%= mobvious_javascript %>
48
+ #
49
+ # <script type="text/javascript">
50
+ # alert(Mobvious.device_type); // this will print 'mobile' or 'desktop' or similar
51
+ # </script>
52
+ # </head>
53
+ #
54
+ # @return [String] script tag that sets Mobvious variables (returned string is html_safe)
55
+ def mobvious_javascript
56
+ <<-END.html_safe
57
+ <script type="text/javascript">
58
+ if (window.Mobvious === undefined) {
59
+ window.Mobvious = {};
60
+ }
61
+ window.Mobvious.device_type = '#{device_type.to_s}';
62
+ </script>
63
+ END
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,5 @@
1
+ module Mobvious
2
+ module Rails
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,46 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mobvious/rails/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mobvious-rails"
7
+ s.version = Mobvious::Rails::VERSION
8
+ s.authors = ["Jiří Stránský"]
9
+ s.email = ["jistr@jistr.com"]
10
+ s.homepage = "http://github.com/jistr/mobvious-rails"
11
+ s.summary = %q{Rails enhancements for rendering different content for different device types}
12
+ s.description = %q{Rails enhancements for rendering different content for different device types}
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ s.add_runtime_dependency "mobvious"
20
+ s.add_runtime_dependency "activesupport"
21
+
22
+
23
+ # == DEVELOPMENT DEPENDENCIES ==
24
+ # Smart irb
25
+ s.add_development_dependency 'pry'
26
+
27
+ # Specs
28
+ s.add_development_dependency 'minitest'
29
+ s.add_development_dependency 'mocha'
30
+
31
+ # CoffeeScript compilation and testing
32
+ s.add_development_dependency 'therubyracer'
33
+ s.add_development_dependency 'jasmine'
34
+
35
+ # Running tests during development
36
+ s.add_development_dependency 'guard'
37
+ s.add_development_dependency 'guard-minitest'
38
+ s.add_development_dependency 'guard-coffeescript'
39
+ # Linux Guard watching
40
+ s.add_development_dependency 'rb-inotify'
41
+ # Linux Guard notifications
42
+ s.add_development_dependency 'libnotify'
43
+
44
+ # Pretty printed test output
45
+ s.add_development_dependency 'turn'
46
+ end
@@ -0,0 +1,34 @@
1
+ describe 'Mobvious', ->
2
+ beforeEach ->
3
+ window.Mobvious = {} if window.Mobvious == undefined
4
+ window.Mobvious.device_type = 'mobile'
5
+
6
+ describe 'for_device_type', ->
7
+ it 'should run only for the right device types', ->
8
+ mobile_block_executed = false
9
+ desktop_block_executed = false
10
+ multiple_block_executed = false
11
+
12
+ mobile_retval = Mobvious.for_device_type 'mobile', ->
13
+ mobile_block_executed = true
14
+ 'mobile_retval'
15
+ expect(mobile_block_executed).toEqual true
16
+ expect(mobile_retval).toEqual 'mobile_retval'
17
+
18
+ desktop_retval = Mobvious.for_device_type 'desktop', ->
19
+ desktop_block_executed = true
20
+ 'desktop_retval'
21
+ expect(desktop_block_executed).toEqual false
22
+ expect(desktop_retval).toEqual null
23
+
24
+ multiple_retval = Mobvious.for_device_type 'desktop', 'tablet', ->
25
+ multiple_block_executed = true
26
+ 'multiple_retval'
27
+ expect(multiple_block_executed).toEqual false
28
+ expect(multiple_retval).toEqual null
29
+
30
+ multiple_retval = Mobvious.for_device_type 'desktop', 'mobile', ->
31
+ multiple_block_executed = true
32
+ 'multiple_retval'
33
+ expect(multiple_block_executed).toEqual true
34
+ expect(multiple_retval).toEqual 'multiple_retval'
@@ -0,0 +1,74 @@
1
+ # src_files
2
+ #
3
+ # Return an array of filepaths relative to src_dir to include before jasmine specs.
4
+ # Default: []
5
+ #
6
+ # EXAMPLE:
7
+ #
8
+ # src_files:
9
+ # - lib/source1.js
10
+ # - lib/source2.js
11
+ # - dist/**/*.js
12
+ #
13
+ src_files:
14
+ - '**/*.js'
15
+
16
+ # stylesheets
17
+ #
18
+ # Return an array of stylesheet filepaths relative to src_dir to include before jasmine specs.
19
+ # Default: []
20
+ #
21
+ # EXAMPLE:
22
+ #
23
+ # stylesheets:
24
+ # - css/style.css
25
+ # - stylesheets/*.css
26
+ #
27
+ stylesheets:
28
+
29
+ # helpers
30
+ #
31
+ # Return an array of filepaths relative to spec_dir to include before jasmine specs.
32
+ # Default: ["helpers/**/*.js"]
33
+ #
34
+ # EXAMPLE:
35
+ #
36
+ # helpers:
37
+ # - helpers/**/*.js
38
+ #
39
+ helpers:
40
+
41
+ # spec_files
42
+ #
43
+ # Return an array of filepaths relative to spec_dir to include.
44
+ # Default: ["**/*[sS]pec.js"]
45
+ #
46
+ # EXAMPLE:
47
+ #
48
+ # spec_files:
49
+ # - **/*[sS]pec.js
50
+ #
51
+ spec_files:
52
+ - '**/*_spec.js'
53
+
54
+ # src_dir
55
+ #
56
+ # Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
57
+ # Default: project root
58
+ #
59
+ # EXAMPLE:
60
+ #
61
+ # src_dir: public
62
+ #
63
+ src_dir: tmp/javascripts-compiled
64
+
65
+ # spec_dir
66
+ #
67
+ # Spec directory path. Your spec_files must be returned relative to this path.
68
+ # Default: spec/javascripts
69
+ #
70
+ # EXAMPLE:
71
+ #
72
+ # spec_dir: spec/javascripts
73
+ #
74
+ spec_dir: tmp/spec-javascripts-compiled
@@ -0,0 +1,23 @@
1
+ module Jasmine
2
+ class Config
3
+
4
+ # Add your overrides or custom config code here
5
+
6
+ end
7
+ end
8
+
9
+
10
+ # Note - this is necessary for rspec2, which has removed the backtrace
11
+ module Jasmine
12
+ class SpecBuilder
13
+ def declare_spec(parent, spec)
14
+ me = self
15
+ example_name = spec["name"]
16
+ @spec_ids << spec["id"]
17
+ backtrace = @example_locations[parent.description + " " + example_name]
18
+ parent.it example_name, {} do
19
+ me.report_spec(spec["id"])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ $:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
2
+
3
+ require 'rubygems'
4
+ require 'jasmine'
5
+ jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
6
+ require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
7
+ if Jasmine::Dependencies.rspec2?
8
+ require 'rspec'
9
+ else
10
+ require 'spec'
11
+ end
12
+
13
+ jasmine_config = Jasmine::Config.new
14
+ spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
15
+
16
+ should_stop = false
17
+
18
+ if Jasmine::Dependencies.rspec2?
19
+ RSpec.configuration.after(:suite) do
20
+ spec_builder.stop if should_stop
21
+ end
22
+ else
23
+ Spec::Runner.configure do |config|
24
+ config.after(:suite) do
25
+ spec_builder.stop if should_stop
26
+ end
27
+ end
28
+ end
29
+
30
+ spec_builder.start
31
+ should_stop = true
32
+ spec_builder.declare_suites
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+ require 'mobvious/rails/controller'
3
+
4
+ module Mobvious
5
+ module Rails
6
+ class ControllerSpec < MiniTest::Spec
7
+ describe Controller do
8
+ before do
9
+ @env = mock 'env'
10
+ @env.stubs('[]').with('mobvious.device_type').returns(:mobile)
11
+
12
+ @request = mock 'request'
13
+ @request.stubs(:env).returns(@env)
14
+ mock_request = @request
15
+
16
+ @controller = Object.new
17
+ @controller.extend Controller
18
+ @controller.define_singleton_method(:request) do
19
+ mock_request
20
+ end
21
+ end
22
+
23
+ it "runs the provided block only for corresponding device type" do
24
+ mobile_block_executed = false
25
+ desktop_block_executed = false
26
+ multiple_block_executed = false
27
+
28
+ mobile_retval = @controller.for_device_type :mobile do
29
+ mobile_block_executed = true
30
+ :mobile_retval
31
+ end
32
+ mobile_block_executed.must_equal true
33
+ mobile_retval.must_equal :mobile_retval
34
+
35
+ desktop_retval = @controller.for_device_type :desktop do
36
+ desktop_block_executed = true
37
+ :desktop_retval
38
+ end
39
+ desktop_block_executed.must_equal false
40
+ desktop_retval.must_equal nil
41
+
42
+ multiple_retval = @controller.for_device_type :desktop, :tablet do
43
+ multiple_block_executed = true
44
+ :multiple_retval
45
+ end
46
+ multiple_block_executed.must_equal false
47
+ multiple_retval.must_equal nil
48
+
49
+ multiple_retval = @controller.for_device_type :desktop, :mobile do
50
+ multiple_block_executed = true
51
+ :multiple_retval
52
+ end
53
+ multiple_block_executed.must_equal true
54
+ multiple_retval.must_equal :multiple_retval
55
+ end
56
+
57
+ it "returns current device type" do
58
+ @controller.device_type.must_equal :mobile
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'mobvious/rails/helper'
3
+
4
+ module Mobvious
5
+ module Rails
6
+ class HelperSpec < MiniTest::Spec
7
+ describe Helper do
8
+ before do
9
+ @env = mock 'env'
10
+ @env.stubs('[]').with('mobvious.device_type').returns(:mobile)
11
+
12
+ @request = mock 'request'
13
+ @request.stubs(:env).returns(@env)
14
+ mock_request = @request
15
+
16
+ @helper = Object.new
17
+ @helper.extend Helper
18
+ @helper.define_singleton_method(:request) do
19
+ mock_request
20
+ end
21
+ end
22
+
23
+ it "runs the provided block only for corresponding device type" do
24
+ mobile_block_executed = false
25
+ desktop_block_executed = false
26
+ multiple_block_executed = false
27
+
28
+ mobile_retval = @helper.for_device_type :mobile do
29
+ mobile_block_executed = true
30
+ :mobile_retval
31
+ end
32
+ mobile_block_executed.must_equal true
33
+ mobile_retval.must_equal :mobile_retval
34
+
35
+ desktop_retval = @helper.for_device_type :desktop do
36
+ desktop_block_executed = true
37
+ :desktop_retval
38
+ end
39
+ desktop_block_executed.must_equal false
40
+ desktop_retval.must_equal nil
41
+
42
+ multiple_retval = @helper.for_device_type :desktop, :tablet do
43
+ multiple_block_executed = true
44
+ :multiple_retval
45
+ end
46
+ multiple_block_executed.must_equal false
47
+ multiple_retval.must_equal nil
48
+
49
+ multiple_retval = @helper.for_device_type :desktop, :mobile do
50
+ multiple_block_executed = true
51
+ :multiple_retval
52
+ end
53
+ multiple_block_executed.must_equal true
54
+ multiple_retval.must_equal :multiple_retval
55
+ end
56
+
57
+ it "returns current device type" do
58
+ @helper.device_type.must_equal :mobile
59
+ end
60
+
61
+ it "generates javascript tag with device type" do
62
+ device_type_assignment = /window.Mobvious.device_type = 'mobile';/
63
+ @helper.mobvious_javascript.must_match device_type_assignment
64
+ @helper.mobvious_javascript.must_be :'html_safe?'
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,6 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+ begin; require 'turn'; rescue LoadError; end
4
+ require 'mocha'
5
+
6
+ require 'active_support/core_ext/string/output_safety'
metadata ADDED
@@ -0,0 +1,214 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mobvious-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jiří Stránský
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mobvious
16
+ requirement: &7091660 !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: *7091660
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ requirement: &7088280 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *7088280
36
+ - !ruby/object:Gem::Dependency
37
+ name: pry
38
+ requirement: &7115160 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *7115160
47
+ - !ruby/object:Gem::Dependency
48
+ name: minitest
49
+ requirement: &7114700 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *7114700
58
+ - !ruby/object:Gem::Dependency
59
+ name: mocha
60
+ requirement: &7114180 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *7114180
69
+ - !ruby/object:Gem::Dependency
70
+ name: therubyracer
71
+ requirement: &7113560 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *7113560
80
+ - !ruby/object:Gem::Dependency
81
+ name: jasmine
82
+ requirement: &7112840 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *7112840
91
+ - !ruby/object:Gem::Dependency
92
+ name: guard
93
+ requirement: &7111080 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *7111080
102
+ - !ruby/object:Gem::Dependency
103
+ name: guard-minitest
104
+ requirement: &7109940 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *7109940
113
+ - !ruby/object:Gem::Dependency
114
+ name: guard-coffeescript
115
+ requirement: &7109200 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *7109200
124
+ - !ruby/object:Gem::Dependency
125
+ name: rb-inotify
126
+ requirement: &7124820 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *7124820
135
+ - !ruby/object:Gem::Dependency
136
+ name: libnotify
137
+ requirement: &7123860 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *7123860
146
+ - !ruby/object:Gem::Dependency
147
+ name: turn
148
+ requirement: &7123000 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *7123000
157
+ description: Rails enhancements for rendering different content for different device
158
+ types
159
+ email:
160
+ - jistr@jistr.com
161
+ executables: []
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - .gitignore
166
+ - .yardopts
167
+ - Gemfile
168
+ - Guardfile
169
+ - Rakefile
170
+ - app/assets/javascripts/mobvious-rails.js.coffee
171
+ - lib/mobvious/rails.rb
172
+ - lib/mobvious/rails/controller.rb
173
+ - lib/mobvious/rails/engine.rb
174
+ - lib/mobvious/rails/helper.rb
175
+ - lib/mobvious/rails/version.rb
176
+ - mobvious-rails.gemspec
177
+ - spec/javascripts/mobvious-rails_spec.js.coffee
178
+ - spec/javascripts/support/jasmine.yml
179
+ - spec/javascripts/support/jasmine_config.rb
180
+ - spec/javascripts/support/jasmine_runner.rb
181
+ - spec/mobvious/rails/controller_spec.rb
182
+ - spec/mobvious/rails/helper_spec.rb
183
+ - spec/spec_helper.rb
184
+ homepage: http://github.com/jistr/mobvious-rails
185
+ licenses: []
186
+ post_install_message:
187
+ rdoc_options: []
188
+ require_paths:
189
+ - lib
190
+ required_ruby_version: !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ! '>='
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ segments:
197
+ - 0
198
+ hash: 2203145114535676296
199
+ required_rubygems_version: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ! '>='
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ segments:
206
+ - 0
207
+ hash: 2203145114535676296
208
+ requirements: []
209
+ rubyforge_project:
210
+ rubygems_version: 1.8.11
211
+ signing_key:
212
+ specification_version: 3
213
+ summary: Rails enhancements for rendering different content for different device types
214
+ test_files: []