wired 0.0.9 → 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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OTA1ODU1ZDVkMTc2ZWU3YmY4ZmUzMmRlMjE3MGQ0ZDhmYTUzODMxYg==
5
- data.tar.gz: !binary |-
6
- MmIxNjE3MGU3OTMwNjRlYWMzNTA2NGNjZjIyNzIwZjE3ZDQ4Y2QwMQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YmM4YmIwNGNlMGJiZWE1MGVjNGQ5ZDhkZjFkZjI5ZjdmODA4ZmFhZTJiOGJl
10
- MmNkZWI3N2M3MmQyMjA4MjM4MjRlZTQ1ZDUyMjZlZDk0ODFjYTcwZGViNGJj
11
- NWUwYzFkOGM4OWFhYmY1NjEzMzEzZTI5ZTBlOWQ1MjYzNTA5NDE=
12
- data.tar.gz: !binary |-
13
- YWRiNmQ4MzE1YTk4NjNiZjFiZWExY2YzOTlmYTRhYzk0ZTE5NGJmZjg1MzFl
14
- OGJiZDkyNWU4ODQyYWRlZDg4ZjRlN2YzNmE4NWJkMjBmMjBlZDVhMWQ1OGZi
15
- ZWMyOWNjMjJkZTA5NjJjNDdhNjI2MzAzZWY3MGYzN2ViZDU3OTc=
2
+ SHA1:
3
+ metadata.gz: 75a42c0378f69059ddf6c380b5f774104e9848b0
4
+ data.tar.gz: ace85e31fdc62ded6053df508890dc32587a90fd
5
+ SHA512:
6
+ metadata.gz: b3687404a68b0de91cc8f302fc79ff4ebf5f89daff9a0255734ba3875031e98899c9e70af27dec650487ef517468342518d55a5f42ba1616a524958130959f40
7
+ data.tar.gz: af62779ca135d3692e2498848abbfb905d0f8a0667cc1ca9fc0b16dc5cae5acebbc45fd5fdb432361622f4880da70a9d631e756a0fa9bddfe5bd6d03b83fe4de
data/README.md CHANGED
@@ -17,3 +17,9 @@ Usage
17
17
  ---
18
18
  `wired app_name`
19
19
 
20
+ Params additional to the default rails generator params are:
21
+
22
+ * --skip-heroku _Skips the creation of the Heroku apps_
23
+ * --skip-github _Skips the creation of a Github repository_
24
+
25
+ For a complete list of options check `wired --help`.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
data/bin/wired CHANGED
@@ -1,14 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- if ARGV.empty?
4
- raise "Provide an app name"
5
- else
6
- if ARGV[0].length < 3
7
- raise "Name needs to be longer than 3 characters. (#{ARGV[0]} is #{ARGV[0].length})"
8
- end
9
-
10
- if ARGV[0].length > 20
11
- raise "Name can't be longer than 20 characters. (#{ARGV[0]} is #{ARGV[0].length})"
2
+ #
3
+ if ARGV.any?
4
+ if ARGV[0].length < 3 || ARGV[0].length > 20
5
+ puts "Name needs to be between 3 and 20 characters. (#{ARGV[0]} is #{ARGV[0].length})"
6
+ exit
12
7
  end
13
8
  end
14
9
 
@@ -18,6 +18,10 @@ module Wired
18
18
  remove_file 'app/assets/images/rails.png'
19
19
  end
20
20
 
21
+ def remove_turbo_links
22
+ replace_in_file "app/assets/javascripts/application.js", /\/\/= require turbolinks\n/, ''
23
+ end
24
+
21
25
  def replace_gemfile
22
26
  remove_file 'Gemfile'
23
27
  copy_file 'Gemfile_clean', 'Gemfile'
@@ -41,7 +45,7 @@ module Wired
41
45
  end
42
46
 
43
47
  def generate_user_model
44
- run 'rails g model User name email fbid'
48
+ run 'rails g model User name:string email:string fbid:string'
45
49
  end
46
50
 
47
51
  def create_partials_directory
@@ -67,6 +71,14 @@ module Wired
67
71
  inject_into_class 'config/application.rb', 'Application', config
68
72
  end
69
73
 
74
+ def set_asset_sync
75
+ config = <<-RUBY
76
+ config.action_controller.asset_host = ENV["CUSTOM_ASSET_HOST"]
77
+ RUBY
78
+ inject_into_class 'config/application.rb', 'Application', config
79
+ inject_into_file 'config/environments/production.rb', config, :after => "config.action_controller.asset_host = \"http://assets.example.com\"\n"
80
+ end
81
+
70
82
  def customize_error_pages
71
83
  meta_tags =<<-EOS
72
84
  <meta charset='utf-8' />
@@ -102,7 +114,7 @@ module Wired
102
114
  'spec/support/mixins',
103
115
  'spec/support/shared_examples'
104
116
  ].each do |dir|
105
- empty_directory_with_gitkeep dir
117
+ empty_directory_with_keep_file dir
106
118
  end
107
119
  end
108
120
 
@@ -114,13 +126,21 @@ module Wired
114
126
  end
115
127
 
116
128
  def deploy_github
117
- run "hub create -p wirelab/#{app_name}"
129
+ github_result = run "hub create -p wirelab/#{app_name}"
130
+ if github_result
131
+ puts "Github repo wirelab/#{app_name} created."
132
+ else
133
+ puts "Github creation wirelab/#{app_name} failed."
134
+ puts "Wired generation halted due to error."
135
+ puts "You might want to remove the created Rails app and retry."
136
+ exit
137
+ end
118
138
  run "git push --all"
119
139
  end
120
140
 
121
141
  def powder_setup
122
142
  run 'powder link'
123
- copy_file 'facebook/powenv', '.powenv'
143
+ copy_file 'facebook/env', '.env'
124
144
  end
125
145
 
126
146
  def update_readme_for_facebook
@@ -141,9 +161,8 @@ module Wired
141
161
  def add_facebook_routes
142
162
  facebook_routes =<<-ROUTES
143
163
  root :to => 'tab#home'
144
- match "fangate" => "tab#fangate", as: 'fangate'
145
-
146
- #safari cookie fix
164
+ post '/' => 'tab#home'
165
+
147
166
  get 'cookie' => 'sessions#cookie', as: 'cookie'
148
167
 
149
168
  #admin
@@ -156,6 +175,12 @@ module Wired
156
175
  copy_file 'facebook/tab_controller.rb', 'app/controllers/tab_controller.rb'
157
176
  copy_file 'facebook/export_controller.rb', 'app/controllers/export_controller.rb'
158
177
  end
178
+
179
+ def add_facebook_stylesheets
180
+ say 'Copy stylesheets'
181
+ copy_file 'facebook/reset.css.scss', 'app/assets/stylesheets/resets.css.scss'
182
+ copy_file 'facebook/_variables.css.scss', 'app/assets/stylesheets/_variables.css.scss'
183
+ end
159
184
 
160
185
  def add_facebook_channel_file
161
186
  copy_file 'facebook/channel.html', 'public/channel.html'
@@ -163,48 +188,75 @@ module Wired
163
188
 
164
189
  def create_facebook_views
165
190
  empty_directory 'app/views/tab'
166
- %w(fangate home).each do |page|
167
- File.open("app/views/tab/#{page}.html.erb", 'w') { |file| file.write(page) }
168
- end
191
+ home_page =<<-HOME
192
+ Home pagina, show fangate: <%= @show_fangate %>
193
+ HOME
194
+ File.open("app/views/tab/home.html.erb", 'w') { |file| file.write(home_page) }
169
195
  end
170
196
 
171
- def add_safari_cookie_fix
197
+ def add_cookie_fix
172
198
  copy_file 'facebook/sessions_controller.rb', 'app/controllers/sessions_controller.rb'
173
199
  copy_file 'facebook/cookie.html.erb', 'app/views/sessions/cookie.html.erb'
174
200
  facebook_cookie_fix =<<-COOKIE_FIX
175
201
  helper_method :current_user
176
- before_filter :safari_cookie_fix
202
+ before_filter :cookie_fix
177
203
  before_filter :add_global_javascript_variables
178
-
204
+ before_filter :set_origin
205
+ before_filter :set_p3p
206
+
179
207
  def cookie
180
- #safari third party cookie fix
208
+ # third party cookie fix
181
209
  end
182
210
 
183
211
  private
212
+ def set_p3p
213
+ headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"'
214
+ end
215
+
216
+ def set_origin
217
+ response.headers["Access-Control-Allow-Origin: facebook.com"]
218
+ end
184
219
 
185
220
  def current_user
186
221
  @current_user ||= User.find_by_fbid session[:fbid]
187
222
  end
188
223
 
189
- def safari_cookie_fix
190
- cookies[:safari_cookie_fix] = "cookie" #safari third party cookie fix
224
+ def cookie_fix
225
+ cookies[:cookie_fix] = "cookie" #third party cookie fix
191
226
  end
192
227
 
193
228
  def add_global_javascript_variables
194
229
  Gon.global.facebook = { 'app_id' => ENV["FB_APP_ID"] }
195
- Gon.global.current_user = current_user
230
+ Gon.global.current_user = current_user.fbid if current_user.present?
196
231
  end
197
232
  COOKIE_FIX
198
233
  inject_into_file "app/controllers/application_controller.rb", facebook_cookie_fix, :before => "end"
199
- copy_file 'facebook/safari-cookie-fix.js.coffee', 'app/assets/javascripts/safari-cookie-fix.js.coffee'
234
+ copy_file 'facebook/cookie_fix.js.coffee', 'app/assets/javascripts/cookie_fix.js.coffee'
235
+ copy_file 'facebook/facebook.js.coffee', 'app/assets/javascripts/facebook.js.coffee'
236
+ end
237
+
238
+ def add_javascripts_to_manifest
239
+ inject_into_file 'app/assets/javascripts/application.js', "//= require facebook\n", :before => '//= require_tree .'
240
+ inject_into_file 'app/assets/javascripts/application.js', "//= require cookie_fix\n", :before => '//= require_tree .'
200
241
  end
201
242
 
202
243
  def create_heroku_apps
203
244
  %w(staging acceptance production).each do |env|
204
- if env == 'production'
205
- run "heroku create #{app_name} --remote=#{env} --region eu"
245
+ heroku_name = (env == "production") ? app_name : "#{app_name}-#{env}"
246
+ heroku_result = run "heroku create #{heroku_name} --remote=#{env} --region eu"
247
+
248
+ if heroku_result
249
+ puts "Heroku app #{heroku_name} created."
206
250
  else
207
- run "heroku create #{app_name}-#{env} --remote=#{env} --region eu"
251
+ puts "Heroku app #{heroku_name} failed."
252
+ puts "Wired generation halted due to error."
253
+ puts "You might want to remove the GitHub repo and previously created heroku apps and retry."
254
+ exit
255
+ end
256
+ if env == 'production'
257
+ %w(papertrail pgbackups newrelic memcachier).each do |addon|
258
+ run "heroku addons:add #{addon} --remote=#{env}"
259
+ end
208
260
  end
209
261
  end
210
262
  end
@@ -3,6 +3,12 @@ require 'rails/generators/rails/app/app_generator'
3
3
 
4
4
  module Wired
5
5
  class AppGenerator < Rails::Generators::AppGenerator
6
+ class_option 'skip-heroku', type: :boolean, default: false,
7
+ desc: 'Skips the creation of the Heroku apps'
8
+
9
+ class_option 'skip-github', type: :boolean, default: false,
10
+ desc: 'Skips the creation of a Github repository'
11
+
6
12
  @@type = ""
7
13
 
8
14
  def finish_template
@@ -52,8 +58,10 @@ module Wired
52
58
  build :add_facebook_routes
53
59
  build :add_facebook_channel_file
54
60
  build :add_facebook_controllers
61
+ build :add_facebook_stylesheets
55
62
  build :create_facebook_views
56
- build :add_safari_cookie_fix
63
+ build :add_cookie_fix
64
+ build :add_javascripts_to_manifest
57
65
  build :generate_user_model
58
66
  build :run_migrations
59
67
  end
@@ -69,6 +77,7 @@ module Wired
69
77
  build :remove_doc_folder
70
78
  build :remove_public_index
71
79
  build :remove_rails_logo_image
80
+ build :remove_turbo_links
72
81
  end
73
82
 
74
83
  def customize_gemfile
@@ -93,6 +102,7 @@ module Wired
93
102
  def configure_app
94
103
  say 'Configuring app'
95
104
  build :configure_time_zone
105
+ build :set_asset_sync
96
106
  build :add_email_validator
97
107
  end
98
108
 
@@ -113,12 +123,14 @@ module Wired
113
123
  say 'Setting up git'
114
124
  build :gitignore_files
115
125
  build :setup_git
116
- build :deploy_github
126
+ build :deploy_github unless options['skip-github']
117
127
  end
118
128
 
119
129
  def create_heroku_apps
120
- say 'Creating Heroku apps'
121
- build :create_heroku_apps
130
+ unless options['skip-heroku']
131
+ say 'Creating Heroku apps'
132
+ build :create_heroku_apps
133
+ end
122
134
  end
123
135
 
124
136
  def outro
data/lib/wired/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Wired
2
- VERSION = '0.0.9'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -1,16 +1,14 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '3.2.12'
3
+ gem 'rails', '4.0.0'
4
4
 
5
5
  gem 'pg'
6
- gem 'jquery-rails'
6
+ gem 'jquery-rails', '2.2.1'
7
7
  gem 'thin'
8
8
 
9
- group :assets do
10
- gem 'coffee-rails'
11
- gem 'sass-rails'
12
- gem 'uglifier'
13
- end
9
+ gem 'coffee-rails'
10
+ gem 'sass-rails'
11
+ gem 'uglifier'
14
12
 
15
13
  group :development do
16
14
  gem 'foreman'
@@ -20,8 +18,17 @@ group :development do
20
18
  gem 'quiet_assets'
21
19
  end
22
20
 
21
+ group :production do
22
+ gem 'memcachier'
23
+ gem 'dalli'
24
+ gem 'newrelic_rpm'
25
+ end
26
+
23
27
  gem 'asset_sync'
24
28
  gem 'mobylette'
25
29
  gem 'simple_form'
26
30
  gem 'flutie'
27
31
  gem 'gon'
32
+
33
+ #Use .env instead of .powenv for powder.
34
+ gem 'dotenv-rails', :groups => [:development, :test]
@@ -15,3 +15,5 @@
15
15
  * ASSET_HOST
16
16
  * FOG_DIRECTORY
17
17
  * FOG_PROVIDER
18
+ * GOOGLE_ANALYTICS_ID
19
+
@@ -0,0 +1,173 @@
1
+ $white: #fff;
2
+ $black: #000;
3
+ $grey: #7d7d7d;
4
+ $red: #ff0000;
5
+
6
+ $blue: #3abad7;
7
+ /* color */
8
+
9
+ $standard-font-size: 14px;
10
+ $h1-font-size: 48px;
11
+ $h2-font-size: 18px;
12
+ $h3-font-size: 16px;
13
+ $h4-font-size: 14px;
14
+ /* size */
15
+
16
+ $helvetica_light: 'HENTC', 'Open Sans', sans-serif, Arial, Helvetica, sans-serif;
17
+ $helvetica_bold: 'HENBC', 'Open Sans', sans-serif, Arial, Helvetica, sans-serif;
18
+ $default_font: Arial, Helvetica, sans-serif;
19
+
20
+ //MIXINS
21
+ $experimental-support-for-svg: true; //ads SVG instead of gradient
22
+
23
+
24
+ @mixin helvetica_light{
25
+ font-family: $helvetica_light;
26
+ text-transform: uppercase;
27
+ }
28
+ @mixin helvetica_bold{
29
+ font-family: $helvetica_bold;
30
+ text-transform: uppercase;
31
+ }
32
+ @mixin default_font{
33
+ font-family: $default_font;
34
+ text-transform: none;
35
+
36
+ }
37
+ /* fonts */
38
+
39
+ $margin-top: 20px 0 0;
40
+ $margin-bottom: 0 0 20px;
41
+ /* margin */
42
+
43
+ @mixin trans-black {
44
+ background: rgba(0,0,0,0.6);
45
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#99000000',GradientType=0 );
46
+ }
47
+ @mixin border-radius($radius) {
48
+ -webkit-border-radius:$radius;
49
+ -moz-border-radius: $radius;
50
+ -ms-border-radius: $radius;
51
+ -o-border-radius: $radius;
52
+ border-radius: $radius;
53
+ }
54
+ @mixin border-radius-corners($radius1: false, $radius2: false, $radius3: false, $radius4: false) {
55
+ @if($radius1) {
56
+ -webkit-border-top-left-radius: $radius1;
57
+ -moz-border-top-left-radius: $radius1;
58
+ -ms-border-top-left-radius: $radius1;
59
+ -o-border-top-left-radius: $radius1;
60
+ border-top-left-radius: $radius1;
61
+ }
62
+ @if($radius2) {
63
+ -webkit-border-top-right-radius: $radius2;
64
+ -moz-border-top-right-radius: $radius2;
65
+ -ms-border-top-right-radius: $radius2;
66
+ -o-border-top-right-radius: $radius2;
67
+ border-top-right-radius: $radius2;
68
+ }
69
+ @if($radius3) {
70
+ -webkit-border-bottom-right-radius: $radius3;
71
+ -moz-border-bottom-right-radius: $radius3;
72
+ -ms-border-bottom-right-radius: $radius3;
73
+ -o-border-bottom-right-radius: $radius3;
74
+ border-bottom-right-radius: $radius3;
75
+ }
76
+ @if($radius4) {
77
+ -webkit-border-bottom-left-radius: $radius4;
78
+ -moz-border-bottom-left-radius: $radius4;
79
+ -ms-border-bottom-left-radius: $radius4;
80
+ -o-border-bottom-left-radius: $radius4;
81
+ border-bottom-left-radius: $radius4;
82
+ }
83
+ }
84
+ @mixin box-shadow($value){
85
+ -webkit-box-shadow: $value;
86
+ -moz-box-shadow: $value;
87
+ -ms-box-shadow: $value;
88
+ -o-box-shadow: $value;
89
+ box-shadow: $value;
90
+ }
91
+ @mixin multiple-box-shadow($value, $insetvalue: false){
92
+ -webkit-box-shadow: $value, $insetvalue;
93
+ -moz-box-shadow: $value, $insetvalue;
94
+ -ms-box-shadow: $value, $insetvalue;
95
+ -o-box-shadow: $value, $insetvalue;
96
+ box-shadow: $value, $insetvalue;
97
+ }
98
+ @mixin text-shadow($value){
99
+ -webkit-text-shadow: $value;
100
+ -khtml-text-shadow: $value;
101
+ -moz-text-shadow: $value;
102
+ -o-text-shadow: $value;
103
+ text-shadow: $value;
104
+ }
105
+ @mixin transition($property, $duration, $ms: true) {
106
+ -webkit-transition: $property $duration ease-in-out;
107
+ -moz-transition: $property $duration ease-in-out;
108
+ -o-transition: $property $duration ease-in-out;
109
+ @if ($ms) {
110
+ -ms-transition: $property $duration ease-in-out;
111
+ }
112
+ transition: $property $duration ease-in-out;
113
+ }
114
+ @mixin transitionLong($property, $duration, $easing:ease-in-out, $delay:false) {
115
+ @include transitionProperty($property);
116
+ @include transitionDuration($duration);
117
+ @if($delay) {
118
+ @include transitionDelay($delay);
119
+ }
120
+ @if($easing) {
121
+ @include transitionTimingFunction($easing);
122
+ }
123
+ }
124
+ @mixin transitionDelay($delay) {
125
+ -webkit-transition-delay: $delay;
126
+ -moz-transition-delay: $delay;
127
+ -o-transition-delay: $delay;
128
+ -ms-transition-delay: $delay;
129
+ transition-delay: $delay;
130
+ }
131
+ @mixin transitionDuration($duration) {
132
+ -webkit-transition-duration: $duration;
133
+ -moz-transition-duration: $duration;
134
+ -o-transition-duration: $duration;
135
+ -ms-transition-duration: $duration;
136
+ transition-duration: $duration;
137
+ }
138
+ @mixin transitionProperty($property) {
139
+ -webkit-transition-property: $property;
140
+ -moz-transition-property: $property;
141
+ -o-transition-property: $property;
142
+ -ms-transition-property: $property;
143
+ transition-property: $property;
144
+ }
145
+ @mixin transitionTimingFunction($easing) {
146
+ -webkit-transition-timing-function: $easing;
147
+ -moz-transition-timing-function: $easing;
148
+ -o-transition-timing-function: $easing;
149
+ -ms-transition-timing-function: $easing;
150
+ transition-timing-function: $easing;
151
+ }
152
+ @mixin boxRotate($deg) {
153
+ -webkit-transform:rotate($deg);
154
+ -moz-transform: rotate($deg);
155
+ -ms-transform: rotate($deg);
156
+ -o-transform: rotate($deg);
157
+ transform: rotate($deg);
158
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.9914448613738104, M12=-0.13052619222005157,M21=0.13052619222005157, M22=0.9914448613738104, sizingMethod='auto expand');
159
+ zoom: 1;
160
+ }
161
+ @mixin transition($name, $duration, $timing, $iteration, $delay) {
162
+ -webkit-animation: $name $duration $timing $iteration $delay;
163
+ -moz-animation: $name $duration $timing $iteration $delay;
164
+ -o-animation: $name $duration $timing $iteration $delay;
165
+ -ms-animation: $name $duration $timing $iteration $delay;
166
+ animation: $name $duration $timing $iteration $delay;
167
+ }
168
+
169
+ @mixin borderbox{
170
+ -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
171
+ -moz-box-sizing: border-box; /* Firefox, other Gecko */
172
+ box-sizing: border-box; /* Opera/IE 8+ */
173
+ }
@@ -0,0 +1,3 @@
1
+ $ ->
2
+ if document.cookie.indexOf("cookie_fix") == -1
3
+ window.top.location = "#{window.location.protocol}//#{window.location.hostname}/cookie"
@@ -0,0 +1,3 @@
1
+ FB_APP_ID=APP_ID
2
+ FB_PAGE_NAME=wirelab.dev
3
+ GOOGLE_ANALYTICS_ID=""
@@ -1,5 +1,5 @@
1
1
  class ExportController < ApplicationController
2
- before_filter :authenticate
2
+ before_action :authenticate
3
3
  def index
4
4
  render 'export', layout: false
5
5
  end
@@ -0,0 +1,19 @@
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
+ window.fbAsyncInit = ->
14
+ FB.init
15
+ appId : window.gon.global.facebook.app_id
16
+ channelUrl : window.location.protocol + '//' + window.location.hostname + '/channel.html'
17
+ status : true
18
+ xfbml : true
19
+ cookie: true
@@ -0,0 +1,68 @@
1
+ html, body, div, span, applet, object, iframe,
2
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
+ a, abbr, acronym, address, big, cite, code,
4
+ del, dfn, em, img, ins, kbd, q, s, samp,
5
+ small, strike, strong, sub, sup, tt, var,
6
+ b, u, i, center,
7
+ dl, dt, dd, ol, ul, li,
8
+ fieldset, form, label, legend,
9
+ table, caption, tbody, tfoot, thead, tr, th, td,
10
+ article, aside, canvas, details, embed,
11
+ figure, figcaption, footer, header, hgroup,
12
+ menu, nav, output, ruby, section, summary,
13
+ time, mark, audio, video {
14
+ margin: 0;
15
+ padding: 0;
16
+ border: 0;
17
+ font-size: 100%;
18
+ font: inherit;
19
+ vertical-align: baseline;
20
+ }
21
+ html{
22
+ -webkit-text-size-adjust: 100%;
23
+ -ms-text-size-adjust: 100%;
24
+ }
25
+ article, aside, details, figcaption, figure,
26
+ footer, header, hgroup, menu, nav, section
27
+ {
28
+ display: block;
29
+ }
30
+ body {
31
+ line-height: 1;
32
+ }
33
+ ol, ul {
34
+ list-style: none;
35
+ }
36
+ blockquote, q {
37
+ quotes: none;
38
+ }
39
+ blockquote:before, blockquote:after,
40
+ q:before, q:after {
41
+ content: '';
42
+ content: none;
43
+ }
44
+ table {
45
+ border-collapse: collapse;
46
+ border-spacing: 0;
47
+ }
48
+ :focus{
49
+ outline: none;
50
+ }
51
+ .clear{
52
+ clear: both;
53
+ }
54
+ .hidden{
55
+ display: none;
56
+ }
57
+ strong{
58
+ font-weight: bold;
59
+ }
60
+ input[type="submit"], input[type="button"], input[type="reset"], button{
61
+ -webkit-appearance: none;
62
+ }
63
+ /* padding works like normal semantic elements */
64
+ input[type="submit"], input[type="reset"], input[type="button"], button{
65
+ -webkit-box-sizing: content-box;
66
+ -moz-box-sizing: content-box;
67
+ box-sizing: content-box;
68
+ }
@@ -1,6 +1,6 @@
1
1
  class SessionsController < ApplicationController
2
2
  def cookie
3
- #safari third party cookie fix
3
+ # third party cookie fix
4
4
  end
5
5
  end
6
6
 
@@ -1,18 +1,19 @@
1
1
  class TabController < ApplicationController
2
2
  include Mobylette::RespondToMobileRequests
3
+ protect_from_forgery except: [:home]
4
+ after_action :allow_facebook_iframe
3
5
 
4
6
  def home
7
+ @liked = false
5
8
  if params[:signed_request]
6
9
  set_fbid_session_if_authenticated_before_with_facebook
7
- redirect_to :fangate unless liked?
10
+ @show_fangate = !liked?
8
11
  else
12
+ @show_fangate = false
9
13
  redirect_to "http://www.facebook.com/#{ENV['FB_PAGE_NAME']}/app_#{ENV['FB_APP_ID']}" unless is_mobile_view?
10
14
  end
11
15
  end
12
16
 
13
- def fangate
14
- end
15
-
16
17
  private
17
18
  def liked?
18
19
  if params[:signed_request]
@@ -45,4 +46,8 @@ class TabController < ApplicationController
45
46
  encoded_sig, payload = signed_request.split('.')
46
47
  data = base64_url_decode(payload)
47
48
  end
49
+
50
+ def allow_facebook_iframe
51
+ response.headers['X-Frame-Options'] = "ALLOW-FROM https://www.facebook.com"
52
+ end
48
53
  end
@@ -3,12 +3,13 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <title><%%= page_title %></title>
6
- <%%= stylesheet_link_tag :application, :media => 'all' %>
6
+ <%%= stylesheet_link_tag "application", media: "all" %>
7
7
  <%%= include_gon %>
8
- <%%= javascript_include_tag :application %>
8
+ <%%= javascript_include_tag "application" %>
9
9
  <%%= csrf_meta_tags %>
10
10
  </head>
11
11
  <body class="<%%= body_class %>">
12
+ <div id="fb-root"></div>
12
13
  <%%= render 'flashes' -%>
13
14
  <%%= yield %>
14
15
  </body>
data/wired.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.rdoc_options = ["--charset=UTF-8"]
24
24
  s.extra_rdoc_files = %w[README.md LICENSE]
25
25
 
26
- s.add_dependency 'rails', '3.2.13'
26
+ s.add_dependency 'rails', '4.0.0'
27
27
  s.add_dependency 'bundler', '>= 1.1'
28
28
  s.add_dependency 'hub', '~> 1.10.5'
29
- end
29
+ end
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.0.9
4
+ version: 0.1.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-05-21 00:00:00.000000000 Z
11
+ date: 2013-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,26 +16,26 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.13
19
+ version: 4.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.13
26
+ version: 4.0.0
27
27
  - !ruby/object:Gem::Dependency
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
@@ -63,6 +63,7 @@ extra_rdoc_files:
63
63
  files:
64
64
  - LICENSE
65
65
  - README.md
66
+ - Rakefile
66
67
  - bin/wired
67
68
  - lib/wired/actions.rb
68
69
  - lib/wired/app_builder.rb
@@ -73,11 +74,14 @@ files:
73
74
  - templates/_flashes.html.erb
74
75
  - templates/database.yml.erb
75
76
  - templates/email_validator.rb
77
+ - templates/facebook/_variables.css.scss
76
78
  - templates/facebook/channel.html
77
79
  - templates/facebook/cookie.html.erb
80
+ - templates/facebook/cookie_fix.js.coffee
81
+ - templates/facebook/env
78
82
  - templates/facebook/export_controller.rb
79
- - templates/facebook/powenv
80
- - templates/facebook/safari-cookie-fix.js.coffee
83
+ - templates/facebook/facebook.js.coffee
84
+ - templates/facebook/reset.css.scss
81
85
  - templates/facebook/sessions_controller.rb
82
86
  - templates/facebook/tab_controller.rb
83
87
  - templates/layout.html.erb.erb
@@ -94,19 +98,18 @@ require_paths:
94
98
  - lib
95
99
  required_ruby_version: !ruby/object:Gem::Requirement
96
100
  requirements:
97
- - - ! '>='
101
+ - - '>='
98
102
  - !ruby/object:Gem::Version
99
103
  version: '0'
100
104
  required_rubygems_version: !ruby/object:Gem::Requirement
101
105
  requirements:
102
- - - ! '>='
106
+ - - '>='
103
107
  - !ruby/object:Gem::Version
104
108
  version: '0'
105
109
  requirements: []
106
110
  rubyforge_project:
107
- rubygems_version: 2.0.0
111
+ rubygems_version: 2.0.2
108
112
  signing_key:
109
113
  specification_version: 4
110
114
  summary: Wirelab Generator
111
115
  test_files: []
112
- has_rdoc:
@@ -1,2 +0,0 @@
1
- export FB_APP_ID=APP_ID
2
- export FB_PAGE_NAME=wirelab.dev
@@ -1,4 +0,0 @@
1
- $ ->
2
- if !/msie/.test(navigator.userAgent.toLowerCase())
3
- if document.cookie.indexOf("safari_cookie_fix") == -1
4
- top.window.location = "/cookie"