iphone_helpers 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module IphoneHelpers
2
+ VERSION = '2.0.0'
3
+ end
@@ -0,0 +1,66 @@
1
+ require 'action_view'
2
+
3
+ module IphoneHelpers
4
+ def iphone(key, options = {})
5
+ tagname, attributes = send(key, options)
6
+
7
+ tag(tagname, attributes)
8
+ end
9
+
10
+ protected
11
+
12
+ def format_detection(options)
13
+ options[:name] = 'format-detection'
14
+ options[:content] = "telephone=#{(options[:telephone] && 'yes') || 'no'}"
15
+ options[:telephone] = nil
16
+
17
+ [:meta, options]
18
+ end
19
+
20
+ def fullscreen(options)
21
+ options[:name] = 'apple-mobile-web-app-capable'
22
+ options[:content] = 'yes'
23
+
24
+ [:meta, options]
25
+ end
26
+
27
+ def icon(options)
28
+ options[:rel] = 'apple-touch-icon'
29
+ options[:rel] += '-precomposed' if options[:precomposed]
30
+ options[:precomposed] = nil if options[:precomposed]
31
+
32
+ [:link, options]
33
+ end
34
+
35
+ def splash(options)
36
+ options[:rel] = 'apple-touch-startup-image'
37
+
38
+ [:link, options]
39
+ end
40
+
41
+ def status_bar(options)
42
+ options[:name] = 'apple-mobile-web-app-status-bar-style'
43
+ options[:content] = (%w[black black-translucent].include?(options[:color]) && options[:color]) || 'default'
44
+ options[:color] = nil if options[:color]
45
+
46
+ [:meta, options]
47
+ end
48
+
49
+ def viewport(options)
50
+ options = options.map do |key, value|
51
+ key = key.to_s.gsub('_', '-').to_sym
52
+
53
+ [key, value]
54
+ end
55
+ options = Hash[options]
56
+ defaults = {:'initial-scale' => 1, :'maximum-scale' => 1, :width => 'device-width'}
57
+ content = defaults.merge(options).stringify_keys.sort.collect { |k,v| "#{k}=#{v}" }.join(', ')
58
+ options = {:content => content, :name => 'viewport'}
59
+
60
+ [:meta, options]
61
+ end
62
+ end
63
+
64
+ module ::ActionView::Helpers::TagHelper
65
+ include IphoneHelpers
66
+ end
@@ -0,0 +1,47 @@
1
+ class IphoneHelpersTest < MiniTest::Unit::TestCase
2
+ include ActionView::Helpers::TagHelper
3
+
4
+ def test_apple_mobile_web_app_capable
5
+ assert_tag iphone(:fullscreen), :meta, name: 'apple-mobile-web-app-capable', content: 'yes'
6
+ end
7
+
8
+ def test_apple_mobile_web_app_status_bar_style
9
+ assert_tag iphone(:status_bar), :meta, name: 'apple-mobile-web-app-status-bar-style', content: 'default'
10
+ end
11
+
12
+ def test_apple_mobile_web_app_status_bar_style_black
13
+ assert_tag iphone(:status_bar, color: 'black'), :meta, name: 'apple-mobile-web-app-status-bar-style', content: 'black'
14
+ end
15
+
16
+ def test_apple_mobile_web_app_status_bar_style_black_translucent
17
+ assert_tag iphone(:status_bar, color: 'black-translucent'), :meta, name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent'
18
+ end
19
+
20
+ def test_apple_touch_icon
21
+ assert_tag iphone(:icon, href: '/assets/iphone.png'), :link, rel: 'apple-touch-icon', href: '/assets/iphone.png'
22
+ end
23
+
24
+ def test_apple_touch_icon_precomposed
25
+ assert_tag iphone(:icon, href: '/assets/iphone.png', precomposed: true), :link, rel: 'apple-touch-icon-precomposed', href: '/assets/iphone.png'
26
+ end
27
+
28
+ def test_apple_touch_startup_image
29
+ assert_tag iphone(:splash, href: '/assets/splash.png'), :link, rel: 'apple-touch-startup-image', href: '/assets/splash.png'
30
+ end
31
+
32
+ def test_format_detection_disable_telephone
33
+ assert_tag iphone(:format_detection, telephone: false), :meta, name: 'format-detection', content: 'telephone=no'
34
+ end
35
+
36
+ def test_format_detection_enable_telephone
37
+ assert_tag iphone(:format_detection, telephone: true), :meta, name: 'format-detection', content: 'telephone=yes'
38
+ end
39
+
40
+ def test_viewport
41
+ assert_tag iphone(:viewport), :meta, name: 'viewport', content: 'initial-scale=1, maximum-scale=1, width=device-width'
42
+ end
43
+
44
+ def test_viewport_with_custom_attributes
45
+ assert_tag iphone(:viewport, width: 320, height: 480, initial_scale: 2.5, minimum_scale: 0.5, maximum_scale: 3, user_scalable: 'no'), :meta, name: 'viewport', content: 'height=480, initial-scale=2.5, maximum-scale=3, minimum-scale=0.5, user-scalable=no, width=320'
46
+ end
47
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iphone_helpers
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Anton Lindqvist
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: actionpack
16
+ requirement: &70254874009800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70254874009800
25
+ - !ruby/object:Gem::Dependency
26
+ name: awesome_print
27
+ requirement: &70254874009240 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.1.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70254874009240
36
+ - !ruby/object:Gem::Dependency
37
+ name: minitest
38
+ requirement: &70254874008780 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 4.4.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70254874008780
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: &70254874008320 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 10.0.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70254874008320
58
+ description: iPhone specific HTML tags helper
59
+ email:
60
+ - anton@qvister.se
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - lib/iphone_helpers/version.rb
66
+ - lib/iphone_helpers.rb
67
+ - test/iphone_helpers_test.rb
68
+ homepage: http://github.com/mptre/rails-iphone-helpers
69
+ licenses: []
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ requirements: []
87
+ rubyforge_project:
88
+ rubygems_version: 1.8.6
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Tailor made gem for Ruby on Rails providing helpers used to generate iPhone
92
+ specific HTML tags.
93
+ test_files:
94
+ - test/iphone_helpers_test.rb
95
+ has_rdoc: