applinks 0.1.4 → 0.1.5

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -20
  3. data/app/helpers/applinks/application_helper.rb +1 -15
  4. data/app/views/applinks/_head.html.erb +34 -26
  5. data/lib/applinks/builder.rb +24 -17
  6. data/lib/applinks/engine.rb +8 -0
  7. data/lib/applinks/version.rb +1 -1
  8. data/{test → spec}/dummy/Rakefile +0 -0
  9. data/{test → spec}/dummy/app/assets/javascripts/application.js +0 -0
  10. data/{test → spec}/dummy/app/assets/stylesheets/application.css +0 -0
  11. data/{test → spec}/dummy/app/controllers/application_controller.rb +0 -0
  12. data/spec/dummy/app/controllers/home_controller.rb +4 -0
  13. data/{test → spec}/dummy/app/helpers/application_helper.rb +0 -0
  14. data/spec/dummy/app/helpers/home_helper.rb +2 -0
  15. data/spec/dummy/app/views/home/index.html.erb +1 -0
  16. data/spec/dummy/app/views/layouts/application.html.erb +45 -0
  17. data/{test → spec}/dummy/bin/bundle +0 -0
  18. data/{test → spec}/dummy/bin/rails +0 -0
  19. data/{test → spec}/dummy/bin/rake +0 -0
  20. data/{test → spec}/dummy/config/application.rb +2 -1
  21. data/{test → spec}/dummy/config/boot.rb +0 -0
  22. data/{test → spec}/dummy/config/database.yml +0 -0
  23. data/{test → spec}/dummy/config/environment.rb +0 -0
  24. data/{test → spec}/dummy/config/environments/development.rb +0 -6
  25. data/{test → spec}/dummy/config/environments/production.rb +0 -0
  26. data/{test → spec}/dummy/config/environments/test.rb +0 -5
  27. data/{test → spec}/dummy/config/initializers/backtrace_silencers.rb +0 -0
  28. data/{test → spec}/dummy/config/initializers/filter_parameter_logging.rb +0 -0
  29. data/{test → spec}/dummy/config/initializers/inflections.rb +0 -0
  30. data/{test → spec}/dummy/config/initializers/mime_types.rb +0 -0
  31. data/{test → spec}/dummy/config/initializers/secret_token.rb +1 -1
  32. data/{test → spec}/dummy/config/initializers/session_store.rb +0 -0
  33. data/{test → spec}/dummy/config/initializers/wrap_parameters.rb +0 -0
  34. data/{test → spec}/dummy/config/locales/en.yml +0 -0
  35. data/spec/dummy/config/routes.rb +3 -0
  36. data/{test → spec}/dummy/config.ru +0 -0
  37. data/{test/dummy/public/favicon.ico → spec/dummy/db/development.sqlite3} +0 -0
  38. data/spec/dummy/db/test.sqlite3 +0 -0
  39. data/spec/dummy/log/development.log +210 -0
  40. data/spec/dummy/log/test.log +3240 -0
  41. data/{test → spec}/dummy/public/404.html +0 -0
  42. data/{test → spec}/dummy/public/422.html +0 -0
  43. data/{test → spec}/dummy/public/500.html +0 -0
  44. data/spec/dummy/public/favicon.ico +0 -0
  45. data/spec/dummy/spec/controllers/home_controller_spec.rb +5 -0
  46. data/spec/dummy/spec/helpers/application_helper_spec.rb +318 -0
  47. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  48. data/spec/dummy/tmp/cache/assets/development/sprockets/1c9faaf28d05409b88ad3113374d613c +0 -0
  49. data/spec/dummy/tmp/cache/assets/development/sprockets/2822de3b22c28bd5e718c9bf500457b2 +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/40fc2f3d2a468a00e463f1d313cb1683 +0 -0
  53. data/spec/dummy/tmp/cache/assets/development/sprockets/a9f028f7a492b5907ed80268be8f50f4 +0 -0
  54. data/spec/dummy/tmp/cache/assets/development/sprockets/b878faf942403e313a5b103e5d80488e +0 -0
  55. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  56. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  57. data/spec/dummy/tmp/cache/assets/development/sprockets/edbef6e0d0a4742346cf479f2c522eb0 +0 -0
  58. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  59. data/spec/dummy/tmp/pids/server.pid +1 -0
  60. data/spec/spec_helper.rb +21 -0
  61. metadata +123 -71
  62. data/test/applinks_test.rb +0 -7
  63. data/test/dummy/README.rdoc +0 -28
  64. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  65. data/test/dummy/config/routes.rb +0 -4
  66. data/test/integration/navigation_test.rb +0 -10
  67. data/test/test_helper.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3616ccb512ce0ee4825b0d5f8089c7b79f3c0e2
4
- data.tar.gz: 321fee062c1f912bd8769f0ccf332087c3bdbeec
3
+ metadata.gz: aab8be02e87eac63ca5d1a64554d97c79126d08d
4
+ data.tar.gz: 28aa8fb8ab99e04177c81c68ecc68a20c2f9f3bb
5
5
  SHA512:
6
- metadata.gz: 6be21cd138d014b3d5df8f2c4be415f66956c8ee3f6464bcba112935615d964e0c9b26f2d8c874556804de07de2b17bc6b41abbca2c3742597c157809f226f72
7
- data.tar.gz: 89e01119c35f1f4e05dd72d89764c07b692961ea5bf2589bd81a98b56049f179d8a57d991a3ade67c024ff065f11c7a52bdb9b41ebe860bd6d4d136458c2c333
6
+ metadata.gz: 2d739dc1a28c2c4616cfd2b08ea88e0455bfce7afc638ff90d5ff1530f88f0c30d6c4491e1bd703f475c5e54f80db1cae3db8ca49049420703363f4592156c54
7
+ data.tar.gz: ebfa39dc02e3f22de9dd4c0fdeaef974220084b2c8c751b0a352d199d72a5360effdb8870712830f6533890e627b55316d0f933665e50c27b5081fb347417555
data/Rakefile CHANGED
@@ -1,34 +1,23 @@
1
+ #!/usr/bin/env rake
1
2
  begin
2
3
  require 'bundler/setup'
3
4
  rescue LoadError
4
5
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
6
  end
6
7
 
7
- require 'rdoc/task'
8
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
8
9
 
9
- RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'Applinks'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.rdoc')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
15
- end
16
-
17
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
10
  load 'rails/tasks/engine.rake'
19
11
 
20
-
21
-
22
12
  Bundler::GemHelper.install_tasks
23
13
 
24
- require 'rake/testtask'
14
+ Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each { |f| load f }
25
15
 
26
- Rake::TestTask.new(:test) do |t|
27
- t.libs << 'lib'
28
- t.libs << 'test'
29
- t.pattern = 'test/**/*_test.rb'
30
- t.verbose = false
31
- end
16
+ require 'rspec/core'
17
+ require 'rspec/core/rake_task'
18
+
19
+ desc "Run all specs in spec directory (excluding plugin specs)"
32
20
 
21
+ RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
33
22
 
34
- task default: :test
23
+ task :default => :spec
@@ -1,20 +1,6 @@
1
1
  module Applinks
2
2
  module ApplicationHelper
3
- def demo_data
4
- {
5
- ios: {
6
- url: 'applinks://docs',
7
- app_store_id: '12345',
8
- app_name: 'App Links'
9
- },
10
- android: {
11
- url: 'applinks://docs',
12
- package: 'org.applinks',
13
- app_name: 'App Links'
14
- }
15
- }
16
- end
17
- def applinks(data = demo_data, template = 'applinks/head')
3
+ def applinks(data = {}, template = 'applinks/head')
18
4
  builder = Applinks::Builder.new(Applinks::Config.config, data)
19
5
  render(:partial => template,
20
6
  :locals => {applinks_builder: builder})
@@ -1,60 +1,68 @@
1
1
  <% applinks_builder.ios do |app| %>
2
- <meta property="al:ios:url" content="<%= app.url %>"/>
2
+ <% if app.versioned %>
3
+ <meta property="al:ios" />
4
+ <% end %>
5
+ <meta property="al:ios:url" content="<%= app.url %>" />
3
6
  <% if app.app_store_id %>
4
- <meta property="al:ios:app_store_id" content="<%= app.app_store_id %>"/>
7
+ <meta property="al:ios:app_store_id" content="<%= app.app_store_id %>" />
5
8
  <% end %>
6
9
  <% if app.app_name %>
7
- <meta property="al:ios:app_name" content="<%= app.app_name %>"/>
10
+ <meta property="al:ios:app_name" content="<%= app.app_name %>" />
8
11
  <% end %>
9
12
  <% end %>
10
-
11
13
  <% applinks_builder.iphone do |app| %>
12
- <meta property="al:iphone:url" content="<%= app.url %>"/>
14
+ <% if app.versioned %>
15
+ <meta property="al:iphone" />
16
+ <% end %>
17
+ <meta property="al:iphone:url" content="<%= app.url %>" />
13
18
  <% if app.app_store_id %>
14
- <meta property="al:iphone:app_store_id" content="<%= app.app_store_id %>"/>
19
+ <meta property="al:iphone:app_store_id" content="<%= app.app_store_id %>" />
15
20
  <% end %>
16
21
  <% if app.app_name %>
17
- <meta property="al:iphone:app_name" content="<%= app.app_name %>"/>
22
+ <meta property="al:iphone:app_name" content="<%= app.app_name %>" />
18
23
  <% end %>
19
24
  <% end %>
20
-
21
25
  <% applinks_builder.ipad do |app| %>
22
- <meta property="al:ipad:url" content="<%= app.url %>"/>
26
+ <% if app.versioned %>
27
+ <meta property="al:ipad" />
28
+ <% end %>
29
+ <meta property="al:ipad:url" content="<%= app.url %>" />
23
30
  <% if app.app_store_id %>
24
- <meta property="al:ipad:app_store_id" content="<%= app.app_store_id %>"/>
31
+ <meta property="al:ipad:app_store_id" content="<%= app.app_store_id %>" />
25
32
  <% end %>
26
33
  <% if app.app_name %>
27
- <meta property="al:ipad:app_name" content="<%= app.app_name %>"/>
34
+ <meta property="al:ipad:app_name" content="<%= app.app_name %>" />
28
35
  <% end %>
29
36
  <% end %>
30
-
31
37
  <% applinks_builder.android do |app| %>
32
- <meta property="al:android:url" content="<%= app.url %>"/>
38
+ <% if app.versioned %>
39
+ <meta property="al:android" />
40
+ <% end %>
41
+ <meta property="al:android:url" content="<%= app.url %>" />
33
42
  <% if app.app_name %>
34
- <meta property="al:android:app_name" content="<%= app.app_name %>"/>
43
+ <meta property="al:android:app_name" content="<%= app.app_name %>" />
35
44
  <% end %>
36
45
  <% if app.package %>
37
- <meta property="al:android:package" content="<%= app.package %>"/>
46
+ <meta property="al:android:package" content="<%= app.package %>" />
38
47
  <% end %>
39
48
  <% end %>
40
-
41
49
  <% 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 %>"/>
50
+ <% if app.versioned %>
51
+ <meta property="al:windows_phone" />
45
52
  <% end %>
53
+ <meta property="al:windows_phone:url" content="<%= app.url %>" />
46
54
  <% if app.app_id %>
47
- <meta property="al:windows_phone:app_id" content="<%= app.app_id %>"/>
55
+ <meta property="al:windows_phone:app_id" content="<%= app.app_id %>" />
56
+ <% end %>
57
+ <% if app.app_name %>
58
+ <meta property="al:windows_phone:app_name" content="<%= app.app_name %>" />
48
59
  <% end %>
49
60
  <% end %>
50
-
51
61
  <% applinks_builder.web do |app| %>
52
62
  <% if app.url && app.should_fallback? %>
53
- <meta property="al:web:url" content="<%= app.url %>"/>
63
+ <meta property="al:web:url" content="<%= app.url %>" />
54
64
  <% end %>
55
65
  <% unless app.should_fallback? %>
56
- <meta property="al:web:should_fallback" content="false"/>
57
- <% end %>
66
+ <meta property="al:web:should_fallback" content="false" />
58
67
  <% end %>
59
-
60
-
68
+ <% end %>
@@ -46,15 +46,21 @@ module Applinks
46
46
  def app_block key, block_class
47
47
  if block_given?
48
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]}"
49
+
50
+ suppliedAppData= @data[key]
51
+ suppliedAppData = [@data[key]] unless suppliedAppData.instance_of? Array
52
+
53
+ suppliedAppData.each do |versionData|
54
+ appData = block_class.new versionData, suppliedAppData.length > 1
55
+ if appData.valid?
56
+ if @config.debug
57
+ puts "Applinks: applying invalid block #{key} as #{appData.class.name} -> #{@data[key]} "
58
+ end
59
+ yield appData
60
+ else
61
+ if @config.debug
62
+ puts "Applinks: skipping invalid block #{key} -> #{@data[key]}"
63
+ end
58
64
  end
59
65
  end
60
66
  end
@@ -74,10 +80,11 @@ module Applinks
74
80
  end
75
81
 
76
82
  class AppBlock < MetaBlock
77
- attr_reader :app_name
83
+ attr_reader :app_name, :versioned
78
84
 
79
- def initialize hsh = {}
80
- super
85
+ def initialize hsh, versioned
86
+ super(hsh)
87
+ @versioned = versioned
81
88
  @app_name = hsh[:app_name] if hsh.has_key?(:app_name)
82
89
  end
83
90
  end
@@ -85,7 +92,7 @@ module Applinks
85
92
  class IOSBlock < AppBlock
86
93
  attr_reader :app_store_id, :app_name
87
94
 
88
- def initialize hsh = {}
95
+ def initialize hsh, versioned
89
96
  super
90
97
  @app_store_id = hsh[:app_store_id] if hsh.has_key?(:app_store_id)
91
98
  end
@@ -97,7 +104,7 @@ module Applinks
97
104
  class AndroidBlock < AppBlock
98
105
  attr_reader :package, :app_name
99
106
 
100
- def initialize hsh = {}
107
+ def initialize hsh, versioned
101
108
  super
102
109
  @package = hsh[:package] if hsh.has_key?(:package)
103
110
  end
@@ -109,7 +116,7 @@ module Applinks
109
116
  class WindowsPhoneBlock < AppBlock
110
117
  attr_reader :app_id, :app_name
111
118
 
112
- def initialize hsh = {}
119
+ def initialize hsh, versioned
113
120
  super
114
121
  @app_id = hsh[:app_id] if hsh.has_key?(:app_id)
115
122
  end
@@ -119,8 +126,8 @@ module Applinks
119
126
  end
120
127
  end
121
128
  class WebBlock < MetaBlock
122
- def initialize hsh = {}
123
- super
129
+ def initialize hsh = {}, _unused
130
+ super(hsh)
124
131
  @should_fallback = hsh.has_key?(:should_fallback) ? hsh[:should_fallback] : false
125
132
  end
126
133
 
@@ -4,5 +4,13 @@ module Applinks
4
4
  initializer "applinks" do |app|
5
5
  ::ApplicationHelper.send :include, Applinks::ApplicationHelper
6
6
  end
7
+
8
+ config.generators do |g|
9
+ g.test_framework :rspec, :fixture => false
10
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
11
+ g.assets false
12
+ g.helper false
13
+ end
14
+
7
15
  end
8
16
  end
@@ -1,3 +1,3 @@
1
1
  module Applinks
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
File without changes
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ module HomeHelper
2
+ end
@@ -0,0 +1 @@
1
+ Hello World
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy App For Applinks Testing</title>
5
+ <%= applinks(
6
+ {
7
+ ios: {
8
+ url: 'myapp://docs_for_me',
9
+ app_store_id: '123456',
10
+ app_name: 'My IOS App Name'
11
+ },
12
+ ipad: {
13
+ url: 'myapp://docs_for_me',
14
+ app_store_id: 'ipad1234567',
15
+ app_name: 'My iPad App Name'
16
+ },
17
+ iphone: {
18
+ url: 'myapp://docs_for_me',
19
+ app_store_id: 'iphone1234568',
20
+ app_name: 'My iPhone App Name'
21
+ },
22
+ android: {
23
+ url: 'myapp://docs_for_me',
24
+ package: 'org.example.package',
25
+ app_name: 'My Android AppName'
26
+ },
27
+ windows_phone: {
28
+ url: 'myapp://docs_for_me',
29
+ app_id: 'wpAppId',
30
+ app_name: 'My Windows Phone AppName'
31
+ },
32
+ web: {
33
+ url: 'http://example.org/fallback.html',
34
+ should_fallback: true
35
+ }
36
+
37
+ }) %>
38
+
39
+ </head>
40
+ <body>
41
+
42
+ <%= yield %>
43
+
44
+ </body>
45
+ </html>
File without changes
File without changes
File without changes
@@ -1,6 +1,7 @@
1
1
  require File.expand_path('../boot', __FILE__)
2
2
 
3
- require 'rails/all'
3
+ # Pick the frameworks you want:
4
+ require "action_controller/railtie"
4
5
 
5
6
  Bundler.require(*Rails.groups)
6
7
  require "applinks"
File without changes
File without changes
File without changes
@@ -13,15 +13,9 @@ Dummy::Application.configure do
13
13
  config.consider_all_requests_local = true
14
14
  config.action_controller.perform_caching = false
15
15
 
16
- # Don't care if the mailer can't send.
17
- config.action_mailer.raise_delivery_errors = false
18
-
19
16
  # Print deprecation notices to the Rails logger.
20
17
  config.active_support.deprecation = :log
21
18
 
22
- # Raise an error on page load if there are pending migrations
23
- config.active_record.migration_error = :page_load
24
-
25
19
  # Debug mode disables concatenation and preprocessing of assets.
26
20
  # This option may cause significant delays in view rendering with a large
27
21
  # number of complex assets.
@@ -26,11 +26,6 @@ Dummy::Application.configure do
26
26
  # Disable request forgery protection in test environment.
27
27
  config.action_controller.allow_forgery_protection = false
28
28
 
29
- # Tell Action Mailer not to deliver emails to the real world.
30
- # The :test delivery method accumulates sent emails in the
31
- # ActionMailer::Base.deliveries array.
32
- config.action_mailer.delivery_method = :test
33
-
34
29
  # Print deprecation notices to the stderr.
35
30
  config.active_support.deprecation = :stderr
36
31
  end
@@ -9,4 +9,4 @@
9
9
 
10
10
  # Make sure your secret_key_base is kept private
11
11
  # if you're sharing your code publicly.
12
- Dummy::Application.config.secret_key_base = 'f2e6e07c926d38b55c6c84571ece8eb093228f60be6d930cee80db100ba4d50db76fd0c639ab16ba4850860334ea464d89e034ede9ffa17a127c9802906deb80'
12
+ Dummy::Application.config.secret_key_base = 'e25843c5ffde6f19a50e0d1bf9da0b5492e80190d5cd35fff1b3a789fef51c4ccabf27d0b887f117534aef7335f49907e5ae4e2c3f042950c7c01543dec4aec5'
File without changes
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ root "home#index"
3
+ end
File without changes
File without changes