wired 0.1.2 → 0.2.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
- SHA1:
3
- metadata.gz: 3494656274bdb87fb9fdcd6bdc6d6d13c93ff7df
4
- data.tar.gz: de3712b0f6a77da394a0460463529a3c0e93b6c9
5
- SHA512:
6
- metadata.gz: 6dd1e5a2cea0458f364f383e3b72d5e459ede35feaff0b410e196d52d5ea566a0ed4005f19b46f8e5e1f657acc488c38eb54ebd959e43cadb8ddcf56ad6a5a5c
7
- data.tar.gz: d8c5709f480cbc6044ef5d3061ff5612e7aadcaa11e629dfd59350f92bd38697ff7c35e00f006b3ea6697058960ec157e2be05fee97569704c23b3e962a6f74c
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 03d889e4572b34da064a5cee14db568b83772ae3
4
+ data.tar.gz: 7eb03fa3dad7a831f32f0a38629717bf98ba2155
5
+ !binary "U0hBNTEy":
6
+ metadata.gz: 48e8e754cbc8d9e196ad633fbd6ca70f0242afd06b2bdf2af01c15439e2669343d6de5a9258462682aaa91b07d576999f3ffaf2752cbcf7a65532bb2e45f49f8
7
+ data.tar.gz: 29d62ce0b4e61535b6ddfc93fb8c018c68b7b02f219f112d74a86c44ffba6dd9d36b3061cc16a932ab5c2f92490f2f9a16e073cc745c4c1851617edd95a573f9
@@ -40,6 +40,10 @@ module Wired
40
40
  bundle_command 'exec rake db:create'
41
41
  end
42
42
 
43
+ def add_postgres_drop_override
44
+ copy_file 'database.rake', 'lib/tasks/database.rake'
45
+ end
46
+
43
47
  def create_partials_directory
44
48
  empty_directory 'app/views/application'
45
49
  end
@@ -49,6 +53,11 @@ module Wired
49
53
  'app/views/application/_flashes.html.erb'
50
54
  end
51
55
 
56
+ def create_shared_analytics
57
+ copy_file '_analytics.html.erb',
58
+ 'app/views/application/_analytics.html.erb'
59
+ end
60
+
52
61
  def create_application_layout
53
62
  template 'layout.html.erb.erb',
54
63
  'app/views/layouts/application.html.erb',
@@ -63,14 +72,28 @@ module Wired
63
72
  inject_into_class 'config/application.rb', 'Application', config
64
73
  end
65
74
 
66
- def set_asset_sync
75
+ def set_asset_host
67
76
  config = <<-RUBY
68
77
  config.action_controller.asset_host = ENV["ASSET_HOST"]
69
78
  RUBY
70
- inject_into_class 'config/application.rb', 'Application', config
71
79
  inject_into_file 'config/environments/production.rb', config, :after => "config.action_controller.asset_host = \"http://assets.example.com\"\n"
72
80
  end
73
81
 
82
+ def set_action_mailer_config
83
+ config = <<-RUBY
84
+ config.action_mailer.delivery_method = :letter_opener
85
+ config.action_mailer.default_url_options = { host: '#{app_powder_name}.dev' }
86
+ config.action_mailer.asset_host = 'http://#{app_powder_name}.dev'
87
+ RUBY
88
+ inject_into_file 'config/environments/development.rb', config, before: "end\n"
89
+
90
+ config = <<-RUBY
91
+ config.action_mailer.default_url_options = { host: ENV["MAILER_HOST"] }
92
+ config.action_mailer.asset_host = ENV["ASSET_HOST"]
93
+ RUBY
94
+ inject_into_file 'config/environments/production.rb', config, before: "end\n"
95
+ end
96
+
74
97
  def customize_error_pages
75
98
  meta_tags =<<-EOS
76
99
  <meta charset='utf-8' />
@@ -110,6 +133,13 @@ module Wired
110
133
  end
111
134
  end
112
135
 
136
+ def test_configuration_files
137
+ copy_file 'spec/spec_helper.rb', 'spec/spec_helper.rb'
138
+ copy_file 'spec/simplecov', '.simplecov'
139
+ copy_file 'spec/travis.yml', 'travis.yml'
140
+ copy_file 'spec/rspec', '.rspec'
141
+ end
142
+
113
143
  def setup_git
114
144
  run 'git init'
115
145
  run "git add ."
@@ -17,16 +17,17 @@ module Wired
17
17
 
18
18
  def add_routes
19
19
  facebook_routes =<<-ROUTES
20
- root :to => 'tab#home'
21
- post '/' => 'tab#home'
20
+ root :to => 'facebook#tab'
21
+ post '/' => 'facebook#tab'
22
22
 
23
23
  get 'cookie' => 'sessions#cookie', as: 'cookie'
24
+ post 'user' => 'users#create', as: 'user'
24
25
  ROUTES
25
26
  inject_into_file "config/routes.rb", facebook_routes, :before => "end"
26
27
  end
27
28
 
28
29
  def add_controllers
29
- copy_file 'facebook/tab_controller.rb', 'app/controllers/tab_controller.rb'
30
+ copy_file 'facebook/facebook_controller.rb', 'app/controllers/facebook_controller.rb'
30
31
  end
31
32
 
32
33
  def add_stylesheets
@@ -40,26 +41,28 @@ module Wired
40
41
  end
41
42
 
42
43
  def create_views
43
- empty_directory 'app/views/tab'
44
+ empty_directory 'app/views/facebook'
44
45
  home_page =<<-HOME
45
- Home pagina, show fangate: <%= @show_fangate %>
46
+ Home pagina, show fangate: <%= @show_fangate %>, <a href="javascript: " data-fb-login rel="no-follow">Login</a>
46
47
  HOME
47
- File.open("app/views/tab/home.html.erb", 'w') { |file| file.write(home_page) }
48
+ File.open("app/views/facebook/tab.html.erb", 'w') { |file| file.write(home_page) }
48
49
  end
49
50
 
50
51
  def add_cookie_fix
51
52
  copy_file 'facebook/sessions_controller.rb', 'app/controllers/sessions_controller.rb'
52
53
  copy_file 'facebook/cookie.html.erb', 'app/views/sessions/cookie.html.erb'
53
54
  facebook_cookie_fix =<<-COOKIE_FIX
54
- helper_method :allow_iframe_requests
55
+ include Mobylette::RespondToMobileRequests
56
+
57
+ before_action :allow_iframe_requests
55
58
  helper_method :current_user
56
- before_filter :cookie_fix
57
- before_filter :add_global_javascript_variables
58
- before_filter :set_origin
59
- before_filter :set_p3p
59
+ before_action :cookie_fix
60
+ before_action :add_global_javascript_variables
61
+ before_action :set_origin
62
+ before_action :set_p3p
60
63
 
61
- def cookie
62
- # third party cookie fix
64
+ mobylette_config do |config|
65
+ config[:skip_user_agents] = [:ipad]
63
66
  end
64
67
 
65
68
  private
@@ -72,7 +75,7 @@ Home pagina, show fangate: <%= @show_fangate %>
72
75
  end
73
76
 
74
77
  def current_user
75
- @current_user ||= User.find_by_fbid session[:fbid]
78
+ @current_user ||= User.find_by fbid: session[:fbid]
76
79
  end
77
80
 
78
81
  def cookie_fix
@@ -87,6 +90,11 @@ Home pagina, show fangate: <%= @show_fangate %>
87
90
  Gon.global.facebook = { 'app_id' => ENV["FB_APP_ID"] }
88
91
  Gon.global.current_user = current_user.fbid if current_user.present?
89
92
  end
93
+
94
+ def iframe_redirect_to(path)
95
+ render layout: false, inline: "<html><head>\\n<script type=\\"text/javascript\\">\\nwindow.top.location.href = '\#{path}';\\n</script>\\n<noscript>\\n<meta http-equiv=\\"refresh\\" content=\\"0;url=\#{path}\\" />\\n<meta http-equiv=\\"window-target\\" content=\\"_top\\" />\\n</noscript>\\n</head></html>\\n"
96
+ end
97
+
90
98
  COOKIE_FIX
91
99
  inject_into_file "app/controllers/application_controller.rb", facebook_cookie_fix, :before => "end"
92
100
  copy_file 'facebook/cookie_fix.js.coffee', 'app/assets/javascripts/cookie_fix.js.coffee'
@@ -117,6 +125,7 @@ Home pagina, show fangate: <%= @show_fangate %>
117
125
 
118
126
  def run_migrations
119
127
  bundle_command 'exec rake db:migrate'
128
+ bundle_command 'exec rake db:test:prepare'
120
129
  end
121
130
 
122
131
  def powder_setup
@@ -127,5 +136,19 @@ Home pagina, show fangate: <%= @show_fangate %>
127
136
  def create_initializers
128
137
  #do nothing
129
138
  end
139
+
140
+ def add_gems
141
+ gems =<<-GEMS
142
+ gem 'facebook-signed-request'
143
+ GEMS
144
+ inject_into_file "Gemfile", gems, :before => "group :development, :test do"
145
+
146
+ config = <<-RUBY
147
+ Facebook::SignedRequest.secret = ENV['FB_APP_SECRET']
148
+ RUBY
149
+ inject_into_class 'config/application.rb', 'Application', config
150
+
151
+
152
+ end
130
153
  end
131
154
  end
@@ -17,20 +17,28 @@ module Wired
17
17
  def app_name_clean
18
18
  clean = app_name.parameterize
19
19
  clean = clean.gsub '_', '-'
20
- clean = "wl_#{clean}" if clean.length < 3
20
+ clean = "wl-#{clean}" if clean.length < 3
21
21
  clean = clean[0..19] if clean.length > 20
22
22
  clean
23
23
  end
24
24
 
25
+ def app_powder_name
26
+ clean = app_name.parameterize
27
+ clean = clean.gsub '_', '-'
28
+ clean
29
+ end
30
+
25
31
  def wired_customization
26
32
  invoke :remove_files_we_dont_need
27
33
  invoke :customize_gemfile
28
34
  invoke :create_wired_views
35
+ invoke :setup_test
29
36
  invoke :setup_database
30
37
  invoke :configure_app
31
38
  invoke :customize_error_pages
32
39
  invoke :remove_routes_comment_lines
33
40
  invoke :application_setup
41
+ invoke :bundle_gems
34
42
  invoke :setup_git
35
43
  invoke :create_heroku_apps
36
44
  invoke :outro
@@ -51,13 +59,17 @@ module Wired
51
59
  def customize_gemfile
52
60
  build :replace_gemfile
53
61
  build :set_ruby_to_version_being_used
54
- bundle_command 'install --binstubs=bin/stubs'
62
+ end
63
+
64
+ def bundle_gems
65
+ bundle_command 'install'
55
66
  end
56
67
 
57
68
  def create_wired_views
58
69
  say 'Creating views'
59
70
  build :create_partials_directory
60
71
  build :create_shared_flashes
72
+ build :create_shared_analytics
61
73
  build :create_application_layout
62
74
  end
63
75
 
@@ -65,12 +77,14 @@ module Wired
65
77
  say 'Setting up database'
66
78
  build :setup_database_config
67
79
  build :create_database
80
+ build :add_postgres_drop_override
68
81
  end
69
82
 
70
83
  def configure_app
71
84
  say 'Configuring app'
72
85
  build :configure_time_zone
73
- build :set_asset_sync
86
+ build :set_asset_host
87
+ build :set_action_mailer_config
74
88
  build :add_email_validator
75
89
  end
76
90
 
@@ -87,6 +101,11 @@ module Wired
87
101
  build :remove_routes_comment_lines
88
102
  end
89
103
 
104
+ def setup_test
105
+ say 'Setting up test environment'
106
+ build :test_configuration_files
107
+ end
108
+
90
109
  def setup_git
91
110
  say 'Setting up git'
92
111
  build :gitignore_files
@@ -19,6 +19,12 @@ module Wired
19
19
  super
20
20
  say "* Create Facebook apps on https://developers.facebook.com"
21
21
  say "* Update FB_APP_ID env variables locally, on Heroku and in the readme"
22
+ say "* Add app to wiredev (http://www.facebook.com/dialog/pagetab?app_id=FB_APP_ID&next=http%3A%2F%2Ffacebook.com)"
23
+ end
24
+
25
+ def customize_gemfile
26
+ super
27
+ build :add_gems
22
28
  end
23
29
 
24
30
  protected
data/lib/wired/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Wired
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -30,5 +30,19 @@ gem 'simple_form'
30
30
  gem 'flutie'
31
31
  gem 'gon'
32
32
 
33
- #Use .env instead of .powenv for powder.
34
- gem 'dotenv-rails', :groups => [:development, :test]
33
+ group :development, :test do
34
+ gem 'rspec-rails'
35
+ gem 'factory_girl_rails'
36
+ gem 'dotenv-rails'
37
+ end
38
+
39
+ group :test do
40
+ gem 'simplecov', require: false
41
+ gem 'database_cleaner'
42
+ gem 'shoulda-matchers'
43
+ gem 'timecop'
44
+ gem 'selenium-webdriver'
45
+ gem 'capybara'
46
+ end
47
+
48
+ gem 'unf'
@@ -15,4 +15,4 @@
15
15
  * ASSET_HOST
16
16
  * FOG_DIRECTORY
17
17
  * FOG_PROVIDER
18
- * GOOGLE_ANALYTICS_ID
18
+ * GA_CODE (google analytics UA)
@@ -0,0 +1,13 @@
1
+ <script type="text/javascript">
2
+ var _gaq = _gaq || [];
3
+ _gaq.push(['_setAccount', '<%%= ENV["GA_CODE"] %>']);
4
+ _gaq.push(['_addIgnoredRef', 'static.ak.facebook.com']);
5
+ _gaq.push(['_addIgnoredRef', 's-static.ak.facebook.com']);
6
+ _gaq.push(['_trackPageview']);
7
+
8
+ (function() {
9
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
10
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
11
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
12
+ })();
13
+ </script>
@@ -1,5 +1,5 @@
1
1
  <div id="flash">
2
2
  <% flash.each do |key, value| -%>
3
- <div id="flash_<%= key %>"><%= value %></div>
3
+ <div class="flash flash_<%= key %>"><%= value %></div>
4
4
  <% end -%>
5
5
  </div>
@@ -0,0 +1,24 @@
1
+ require 'active_record/connection_adapters/postgresql_adapter'
2
+ module ActiveRecord
3
+ module ConnectionAdapters
4
+ class PostgreSQLAdapter < AbstractAdapter
5
+ def drop_database(name)
6
+ if Rails.env.development?
7
+ execute <<-SQL
8
+ UPDATE pg_catalog.pg_database
9
+ SET datallowconn=false WHERE datname='#{name}'
10
+ SQL
11
+
12
+ execute <<-SQL
13
+ SELECT pg_terminate_backend(pg_stat_activity.pid)
14
+ FROM pg_stat_activity
15
+ WHERE pg_stat_activity.datname = '#{name}';
16
+ SQL
17
+ execute "DROP DATABASE IF EXISTS #{quote_table_name(name)}"
18
+ else
19
+ execute "DROP DATABASE IF EXISTS #{quote_table_name(name)}"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,4 @@
1
1
  FB_APP_ID=APP_ID
2
+ FB_APP_SECRET=""
2
3
  FB_PAGE_NAME=wirelab.dev
3
- GOOGLE_ANALYTICS_ID=""
4
+ GA_CODE=""
@@ -1,15 +1,3 @@
1
- ((d) ->
2
- js = undefined
3
- id = "facebook-jssdk"
4
- ref = d.getElementsByTagName("script")[0]
5
- return if d.getElementById(id)
6
- js = d.createElement("script")
7
- js.id = id
8
- js.async = true
9
- js.src = "//connect.facebook.net/en_US/all.js"
10
- ref.parentNode.insertBefore js, ref
11
- ) document
12
-
13
1
  window.fbAsyncInit = ->
14
2
  FB.init
15
3
  appId : window.gon.global.facebook.app_id
@@ -18,11 +6,40 @@ window.fbAsyncInit = ->
18
6
  xfbml : true
19
7
  cookie: true
20
8
 
9
+ # track facebook events with analytics
10
+ FB.Event.subscribe "message.send", (href) ->
11
+ _gaq.push(['_trackEvent', 'facebook', 'send', href]) if _gaq?
12
+ _gaq.push(['_trackSocial', 'facebook', 'send', href]) if _gaq?
13
+
14
+ FB.Event.subscribe "edge.create", (href, widget) ->
15
+ _gaq.push(['_trackEvent', 'facebook', 'like', href]) if _gaq?
16
+ _gaq.push(['_trackSocial', 'facebook', 'like', href]) if _gaq?
17
+
18
+ FB.Event.subscribe "edge.remove", (href, widget) ->
19
+ _gaq.push(['_trackEvent', 'facebook', 'unlike', href]) if _gaq?
20
+ _gaq.push(['_trackSocial', 'facebook', 'unlike', href]) if _gaq?
21
+
21
22
  $ ->
22
- $('a#facebook-login').click (event) ->
23
+ # Share button
24
+ # Usage: <a href="javascript: " rel="no-follow" data-fb-feed="http://your-link-to-share">share</a>
25
+ # title, description, picture etc is read from og-metadata
26
+ $('[data-fb-feed]').click (event) ->
27
+ obj =
28
+ method: 'feed'
29
+ link: $(this).data('fb-feed')
30
+
31
+ FB.ui obj, (resp) ->
32
+ if resp
33
+ _gaq.push(['_trackEvent', 'facebook', 'feed', window.location.protocol + '//' + window.location.hostname]) if _gaq?
34
+ _gaq.push(['_trackSocial', 'facebook', 'feed', window.location.protocol + '//' + window.location.hostname]) if _gaq?
35
+
36
+ # Login button
37
+ # Usage: <a href="javascript: " rel="no-follow" data-fb-login>login</a>
38
+ $('[data-fb-login]').click (event) ->
39
+ $btn = $(this)
23
40
  event.preventDefault()
24
- unless $('a#facebook-login').hasClass 'submitting'
25
- $('a#facebook-login').addClass 'submitting'
41
+ unless $btn.hasClass 'disabled'
42
+ $btn.addClass 'disabled'
26
43
  FB.login (response) ->
27
44
  if response.authResponse
28
45
  $.ajax '/users',
@@ -34,7 +51,7 @@ $ ->
34
51
  success: (response) ->
35
52
  window.location = response.redirect
36
53
  error: (event) ->
37
- $('a#facebook-login').removeClass 'submitting'
54
+ $btn.removeClass 'disabled'
38
55
  alert "Er is iets mis gegaan, probeer het later nog eens!"
39
- , scope: 'email'
56
+ , scope: 'email'
40
57
  false
@@ -0,0 +1,21 @@
1
+ class FacebookController < ApplicationController
2
+ protect_from_forgery except: [:tab]
3
+
4
+ def tab
5
+ request = Facebook::SignedRequest.new params[:signed_request]
6
+
7
+ if request.data.present?
8
+ session[:fbid] = request.data[:user_id] if request.data[:user_id].present?
9
+ @show_fangate = !request.data[:page][:liked]
10
+ else
11
+ @show_fangate = false
12
+ redirect_to "http://www.facebook.com/#{ENV['FB_PAGE_NAME']}/app_#{ENV['FB_APP_ID']}" unless is_mobile_request?
13
+ end
14
+ end
15
+
16
+ def canvas
17
+ #canvas redirects to tab
18
+ redirect_url = "http://www.facebook.com/#{ENV['FB_PAGE_NAME']}/app_#{ENV['FB_APP_ID']}"
19
+ iframe_redirect_to redirect_url
20
+ end
21
+ end
@@ -4,11 +4,9 @@ class UsersController < ApplicationController
4
4
  def create
5
5
  @user = User.create_or_update_by_access_token user_params[:access_token]
6
6
 
7
- #todo catch koala error if access_token invalid
8
- @user.entry = Entry.new if @user.entry.nil?
9
7
  if @user.save
10
- session[:id] = @user.id
11
- render json: {redirect: edit_vote_path(@user.entry)}, status: :ok
8
+ session[:fbid] = @user.fbid
9
+ render json: {user: @user, redirect: root_url}, status: :ok
12
10
  else
13
11
  render json: {}, status: :unprocessable_entity
14
12
  end
@@ -12,5 +12,20 @@
12
12
  <div id="fb-root"></div>
13
13
  <%%= render 'flashes' -%>
14
14
  <%%= yield %>
15
+ <script>
16
+ (function(d) {
17
+ var id, js, ref;
18
+ js = void 0;
19
+ id = "facebook-jssdk";
20
+ ref = d.getElementsByTagName("script")[0];
21
+ if (d.getElementById(id)) return;
22
+ js = d.createElement("script");
23
+ js.id = id;
24
+ js.async = true;
25
+ js.src = "//connect.facebook.net/nl_NL/all.js";
26
+ return ref.parentNode.insertBefore(js, ref);
27
+ })(document);
28
+ </script>
29
+ <%%= render partial: "analytics" if Rails.env.production? %>
15
30
  </body>
16
31
  </html>
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,10 @@
1
+ SimpleCov.start 'rails' do
2
+ add_group 'Uploaders', 'app/uploaders'
3
+ add_group 'Services', 'app/services'
4
+ add_group 'Workers', 'app/workers'
5
+ end
6
+
7
+ SimpleCov.at_exit do
8
+ SimpleCov.result.format!
9
+ SimpleCov.minimum_coverage 100
10
+ end
@@ -0,0 +1,18 @@
1
+ require 'simplecov'
2
+
3
+ ENV["RAILS_ENV"] ||= 'test'
4
+ require File.expand_path("../../config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+ require 'rspec/autorun'
7
+
8
+ include ActionDispatch::TestProcess
9
+
10
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
11
+
12
+ ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
13
+
14
+ RSpec.configure do |config|
15
+ config.use_transactional_fixtures = true
16
+ config.infer_base_class_for_anonymous_controllers = false
17
+ config.order = "random"
18
+ end
@@ -0,0 +1,19 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.0.0
5
+ notifications:
6
+ email: false
7
+ irc:
8
+ channels:
9
+ - "chat.freenode.net#wirelab"
10
+ on_success: change
11
+ on_failure: always
12
+ template:
13
+ - "%{repository} (%{branch}): %{author} - %{message}"
14
+ script: "bundle exec rake db:create db:test:load spec"
15
+ env:
16
+ global:
17
+ - RAILS_ENV=test
18
+ - AUTH_USER=u
19
+ - AUTH_PASS=p
@@ -1,4 +1,5 @@
1
1
  .env
2
2
  .powenv
3
3
  public/system
4
- bin/
4
+ public/uploads
5
+ coverage
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wired
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wirelab Creative
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-04 00:00:00.000000000 Z
11
+ date: 2013-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
@@ -88,7 +88,9 @@ files:
88
88
  - lib/wired/version.rb
89
89
  - templates/Gemfile_clean
90
90
  - templates/README.md.erb
91
+ - templates/_analytics.html.erb
91
92
  - templates/_flashes.html.erb
93
+ - templates/database.rake
92
94
  - templates/database.yml.erb
93
95
  - templates/email_validator.rb
94
96
  - templates/facebook/_variables.css.scss
@@ -97,11 +99,15 @@ files:
97
99
  - templates/facebook/cookie_fix.js.coffee
98
100
  - templates/facebook/env
99
101
  - templates/facebook/facebook.js.coffee
102
+ - templates/facebook/facebook_controller.rb
100
103
  - templates/facebook/reset.css.scss
101
104
  - templates/facebook/sessions_controller.rb
102
- - templates/facebook/tab_controller.rb
103
105
  - templates/facebook/users_controller.rb
104
106
  - templates/layout.html.erb.erb
107
+ - templates/spec/rspec
108
+ - templates/spec/simplecov
109
+ - templates/spec/spec_helper.rb
110
+ - templates/spec/travis.yml
105
111
  - templates/wired_gitignore
106
112
  - wired.gemspec
107
113
  homepage: https://github.com/wirelab/wired
@@ -115,17 +121,17 @@ require_paths:
115
121
  - lib
116
122
  required_ruby_version: !ruby/object:Gem::Requirement
117
123
  requirements:
118
- - - '>='
124
+ - - ! '>='
119
125
  - !ruby/object:Gem::Version
120
126
  version: '0'
121
127
  required_rubygems_version: !ruby/object:Gem::Requirement
122
128
  requirements:
123
- - - '>='
129
+ - - ! '>='
124
130
  - !ruby/object:Gem::Version
125
131
  version: '0'
126
132
  requirements: []
127
133
  rubyforge_project:
128
- rubygems_version: 2.0.2
134
+ rubygems_version: 2.0.3
129
135
  signing_key:
130
136
  specification_version: 4
131
137
  summary: Wirelab Generator
@@ -1,48 +0,0 @@
1
- class TabController < ApplicationController
2
- include Mobylette::RespondToMobileRequests
3
- protect_from_forgery except: [:home]
4
-
5
- def home
6
- @liked = false
7
- if params[:signed_request]
8
- set_fbid_session_if_authenticated_before_with_facebook
9
- @show_fangate = !liked?
10
- else
11
- @show_fangate = false
12
- redirect_to "http://www.facebook.com/#{ENV['FB_PAGE_NAME']}/app_#{ENV['FB_APP_ID']}" unless is_mobile_request?
13
- end
14
- end
15
-
16
- private
17
- def liked?
18
- if params[:signed_request]
19
- encoded_request = params[:signed_request]
20
- json_request = decode_data(encoded_request)
21
- signed_request = JSON.parse(json_request)
22
- signed_request['page']['liked']
23
- else
24
- false
25
- end
26
- end
27
-
28
- def set_fbid_session_if_authenticated_before_with_facebook
29
- if params[:signed_request]
30
- encoded_request = params[:signed_request]
31
- json_request = decode_data(encoded_request)
32
- signed_request = JSON.parse(json_request)
33
-
34
- session[:fbid] = signed_request['user_id']
35
- end
36
- end
37
-
38
- def base64_url_decode str
39
- encoded_str = str.gsub('-','+').gsub('_','/')
40
- encoded_str += '=' while !(encoded_str.size % 4).zero?
41
- Base64.decode64(encoded_str)
42
- end
43
-
44
- def decode_data(signed_request)
45
- encoded_sig, payload = signed_request.split('.')
46
- data = base64_url_decode(payload)
47
- end
48
- end