applinks 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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