applinks 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b853198bfe72a38e71ec9291390d65638ae84935
4
- data.tar.gz: bd78e80db4cd5447ef88d846060fbce08c8b8952
3
+ metadata.gz: ece2b61c59d6901bdb434422df5783c77dfc5661
4
+ data.tar.gz: 15a17a3e6c3f030acbd69be0e4c2ba377437cff6
5
5
  SHA512:
6
- metadata.gz: 49795ffe47a04a82c27ed8be9fe231114f39f21b5ce861da6665bb34cba7e83c45a24fd527f2c4fa847e894e8d07de6fd5ce8361e7b3da05a153eecf98568c9d
7
- data.tar.gz: 10077799a90f473dfffc6880a015f654eff74ddf292316eb39191abc15b0d40251165fd768b803a9ae2d5725c99e5ff52405bb094069e4889925740bbe1da297
6
+ metadata.gz: cc56119fdf9ea62463fa7de4b8a388d69269aef5de0e5ae898f99574946044fea07c1f10bf1461ea6e4a7f46c931f4c603ac0c4cce896862e60a867205349d52
7
+ data.tar.gz: 8881712fd0d6df238e110ad3e4b9e66fb304b35b530aff48bf52e9250230d098d92fc52da21f3c729458ebaf0effa54e654c9846fa6f5f394c625da9bcd49123
@@ -1,17 +1,60 @@
1
1
  <% applinks_builder.ios do |app| %>
2
2
  <meta property="al:ios:url" content="<%= app.url %>"/>
3
- <meta property="al:ios:app_store_id" content="<%= app.app_store_id %>"/>
4
- <meta property="al:ios:app_name" content="<%= app.app_name %>"/>
3
+ <% if app.app_store_id %>
4
+ <meta property="al:ios:app_store_id" content="<%= app.app_store_id %>"/>
5
+ <% end %>
6
+ <% if app.app_name %>
7
+ <meta property="al:ios:app_name" content="<%= app.app_name %>"/>
8
+ <% end %>
9
+ <% end %>
10
+
11
+ <% applinks_builder.iphone do |app| %>
12
+ <meta property="al:iphone:url" content="<%= app.url %>"/>
13
+ <% if app.app_store_id %>
14
+ <meta property="al:iphone:app_store_id" content="<%= app.app_store_id %>"/>
15
+ <% end %>
16
+ <% if app.app_name %>
17
+ <meta property="al:iphone:app_name" content="<%= app.app_name %>"/>
18
+ <% end %>
19
+ <% end %>
20
+
21
+ <% applinks_builder.ipad do |app| %>
22
+ <meta property="al:ipad:url" content="<%= app.url %>"/>
23
+ <% if app.app_store_id %>
24
+ <meta property="al:ipad:app_store_id" content="<%= app.app_store_id %>"/>
25
+ <% end %>
26
+ <% if app.app_name %>
27
+ <meta property="al:ipad:app_name" content="<%= app.app_name %>"/>
28
+ <% end %>
5
29
  <% end %>
6
30
 
7
31
  <% applinks_builder.android do |app| %>
8
32
  <meta property="al:android:url" content="<%= app.url %>"/>
9
- <meta property="al:android:app_name" content="<%= app.app_name %>"/>
10
- <meta property="al:android:package" content="<%= app.package %>"/>
33
+ <% if app.app_name %>
34
+ <meta property="al:android:app_name" content="<%= app.app_name %>"/>
35
+ <% end %>
36
+ <% if app.package %>
37
+ <meta property="al:android:package" content="<%= app.package %>"/>
38
+ <% end %>
39
+ <% end %>
40
+
41
+ <% applinks_builder.windows_phone do |app| %>
42
+ <meta property="al:windows_phone:url" content="<%= app.url %>"/>
43
+ <% if app.app_name %>
44
+ <meta property="al:windows_phone:app_name" content="<%= app.app_name %>"/>
45
+ <% end %>
46
+ <% if app.app_id %>
47
+ <meta property="al:windows_phone:app_id" content="<%= app.app_id %>"/>
48
+ <% end %>
11
49
  <% end %>
12
50
 
13
51
  <% applinks_builder.web do |app| %>
14
- <meta property="al:web:url" content="http://applinks.org/documentation"/>
52
+ <% if app.url && app.should_fallback? %>
53
+ <meta property="al:web:url" content="<%= app.url %>"/>
54
+ <% end %>
55
+ <% unless app.should_fallback? %>
56
+ <meta property="al:web:should_fallback" content="false"/>
57
+ <% end %>
15
58
  <% end %>
16
59
 
17
60
 
@@ -1,3 +1,3 @@
1
1
  Applinks::Config.config do |config|
2
- config[:debug] = true
2
+ config.debug= true
3
3
  end
@@ -6,38 +6,131 @@ module Applinks
6
6
  end
7
7
 
8
8
  def ios &block
9
- if @data.has_key? :ios
10
- appData = IOSBlock.new @data[:ios]
11
- yield appData if block_given?
9
+ app_block :ios, IOSBlock do |block|
10
+ yield block
11
+ end
12
+ end
13
+
14
+ def ipad &block
15
+ app_block :ipad, IOSBlock do |block|
16
+ yield block
17
+ end
18
+ end
19
+
20
+ def iphone &block
21
+ app_block :iphone, IOSBlock do |block|
22
+ yield block
12
23
  end
13
24
  end
14
25
 
15
26
  def android &block
16
- if @data.has_key? :android
17
- appData = AndroidBlock.new @data[:android]
18
- yield appData if block_given?
27
+ app_block :android, AndroidBlock do |block|
28
+ yield block
29
+ end
30
+ end
31
+
32
+ def windows_phone &block
33
+ app_block :windows_phone, WindowsPhoneBlock do |block|
34
+ yield block
19
35
  end
20
36
  end
21
37
 
22
38
  def web &block
23
- # yield @config if block_given?
39
+ app_block :web, WebBlock do |block|
40
+ yield block
41
+ end
24
42
  end
25
- end
26
43
 
27
- class IOSBlock
28
- attr_reader :url, :app_store_id, :app_name
29
- def initialize hsh = {}
30
- @url = hsh[:url]
31
- @app_store_id = hsh[:app_store_id]
32
- @app_name = hsh[:app_name]
44
+
45
+ private
46
+ def app_block key, block_class
47
+ if block_given?
48
+ if @data.has_key? key
49
+ appData = block_class.new @data[key]
50
+ if appData.valid?
51
+ if @config.debug
52
+ puts "Applinks: applying invalid block #{key} as #{appData.class.name} -> #{@data[key]} "
53
+ end
54
+ yield appData
55
+ else
56
+ if @config.debug
57
+ puts "Applinks: skipping invalid block #{key} -> #{@data[key]}"
58
+ end
59
+ end
60
+ end
61
+ end
33
62
  end
34
- end
35
- class AndroidBlock
36
- attr_reader :url, :package, :app_name
37
- def initialize hsh = {}
38
- @url = hsh[:url]
39
- @package = hsh[:package]
40
- @app_name = hsh[:app_name]
63
+
64
+ class MetaBlock
65
+ attr_reader :url
66
+
67
+ def initialize hsh = {}
68
+ @url = hsh[:url] if hsh.has_key?(:url)
69
+ end
70
+
71
+ def valid?
72
+ false
73
+ end
74
+ end
75
+
76
+ class AppBlock < MetaBlock
77
+ attr_reader :app_name
78
+
79
+ def initialize hsh = {}
80
+ super
81
+ @app_name = hsh[:app_name] if hsh.has_key?(:app_name)
82
+ end
83
+ end
84
+
85
+ class IOSBlock < AppBlock
86
+ attr_reader :app_store_id, :app_name
87
+
88
+ def initialize hsh = {}
89
+ super
90
+ @app_store_id = hsh[:app_store_id] if hsh.has_key?(:app_store_id)
91
+ end
92
+
93
+ def valid?
94
+ !@url.nil?
95
+ end
96
+ end
97
+ class AndroidBlock < AppBlock
98
+ attr_reader :package, :app_name
99
+
100
+ def initialize hsh = {}
101
+ super
102
+ @package = hsh[:package] if hsh.has_key?(:package)
103
+ end
104
+
105
+ def valid?
106
+ !@package.nil?
107
+ end
108
+ end
109
+ class WindowsPhoneBlock < AppBlock
110
+ attr_reader :app_id, :app_name
111
+
112
+ def initialize hsh = {}
113
+ super
114
+ @app_id = hsh[:app_id] if hsh.has_key?(:app_id)
115
+ end
116
+
117
+ def valid?
118
+ !@url.nil?
119
+ end
120
+ end
121
+ class WebBlock < MetaBlock
122
+ def initialize hsh = {}
123
+ super
124
+ @should_fallback = hsh.has_key?(:should_fallback) ? hsh[:should_fallback] : false
125
+ end
126
+
127
+ def should_fallback?
128
+ @should_fallback
129
+ end
130
+
131
+ def valid?
132
+ !@url.nil?
133
+ end
41
134
  end
42
135
  end
43
136
  end
@@ -1,10 +1,13 @@
1
1
  module Applinks
2
- module Config
3
- @@configuration = {}
2
+ class Config
3
+ attr_accessor :debug
4
+ @@configuration = Applinks::Config.new
4
5
 
5
6
  def self.config
6
7
  yield @@configuration if block_given?
7
8
  @@configuration
8
9
  end
10
+
11
+
9
12
  end
10
13
  end
@@ -1,3 +1,3 @@
1
1
  module Applinks
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: applinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stuart Jones
@@ -32,7 +32,6 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - MIT-LICENSE
35
- - README.rdoc
36
35
  - Rakefile
37
36
  - app/controllers/applinks/application_controller.rb
38
37
  - app/helpers/applinks/application_helper.rb
data/README.rdoc DELETED
@@ -1,3 +0,0 @@
1
- = Applinks
2
-
3
- This project rocks and uses MIT-LICENSE.