applinks 0.0.6 → 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.
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.