facebook_app 0.0.3

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 (48) hide show
  1. data/Gemfile +4 -0
  2. data/Gemfile.lock +158 -0
  3. data/README.textile +52 -0
  4. data/Rakefile +1 -0
  5. data/app/assets/images/shared/ajax-loader.gif +0 -0
  6. data/app/assets/images/single_pixel.png +0 -0
  7. data/app/assets/javascripts/facebook_app.js +9 -0
  8. data/app/assets/javascripts/pages.coffee.erb +18 -0
  9. data/app/assets/stylesheets/admin.sass +13 -0
  10. data/app/assets/stylesheets/configurables.sass +11 -0
  11. data/app/assets/stylesheets/facebook_app.css +9 -0
  12. data/app/assets/stylesheets/layout.css.scss +280 -0
  13. data/app/assets/stylesheets/yui-3.4.1.css +7 -0
  14. data/app/controllers/facebook_app/achievements_controller.rb +21 -0
  15. data/app/controllers/facebook_app/admin_controller.rb +42 -0
  16. data/app/controllers/facebook_app/external_trackings_controller.rb +21 -0
  17. data/app/controllers/facebook_app/facebook_app_controller.rb +59 -0
  18. data/app/controllers/facebook_app/oauth_controller.rb +46 -0
  19. data/app/controllers/facebook_app/pages_controller.rb +14 -0
  20. data/app/helpers/facebook_app/application_helper.rb +55 -0
  21. data/app/mailers/.gitkeep +0 -0
  22. data/app/models/.gitkeep +0 -0
  23. data/app/models/facebook_app/conversion.rb +50 -0
  24. data/app/models/facebook_app/conversion_summary.rb +58 -0
  25. data/app/models/facebook_app/facebook_credentials.rb +56 -0
  26. data/app/models/facebook_app/infographic_server_communicator.rb +21 -0
  27. data/app/views/facebook_app/achievements/show.html.slim +12 -0
  28. data/app/views/facebook_app/admin/_conversion_stage.html.slim +5 -0
  29. data/app/views/facebook_app/admin/_spamalytics.html.slim +16 -0
  30. data/app/views/facebook_app/admin/new_fb_credentials.html.slim +10 -0
  31. data/app/views/facebook_app/admin/show.html.slim +28 -0
  32. data/app/views/facebook_app/external_trackings/test.html.slim +3 -0
  33. data/app/views/facebook_app/pages/privacy_policy.html.slim +49 -0
  34. data/app/views/facebook_app/pages/terms_of_service.html.slim +49 -0
  35. data/app/views/layouts/facebook_app.html.slim +17 -0
  36. data/config/routes.rb +31 -0
  37. data/db/migrate/20111024214949_add_facebook_app.rb +29 -0
  38. data/facebook_app.gemspec +33 -0
  39. data/lib/facebook_app/engine.rb +15 -0
  40. data/lib/facebook_app/recipes.rb +39 -0
  41. data/lib/facebook_app/version.rb +3 -0
  42. data/lib/facebook_app.rb +15 -0
  43. data/lib/generators/facebook_app/install_generator.rb +19 -0
  44. data/lib/generators/facebook_app/templates/configurable.yml +79 -0
  45. data/lib/generators/facebook_app/templates/delayed_job +5 -0
  46. data/lib/generators/facebook_app/templates/seeds.rb +7 -0
  47. data/script/infographic.py +180 -0
  48. metadata +180 -0
@@ -0,0 +1,33 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "facebook_app/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "facebook_app"
7
+ s.version = FacebookApp::VERSION
8
+ s.authors = ["Jack Kinsella"]
9
+ s.email = ["jack.kinsella@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Base Facebook for rapid development of future Facebook applications}
12
+ s.description = %q{Includes authentication, tracking, and lots of convenience methods}
13
+
14
+ s.rubyforge_project = "facebook_app"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ s.add_runtime_dependency "rails", ">= 3.1"
24
+ s.add_runtime_dependency "delayed_job", "~> 2.1.0"
25
+ s.add_runtime_dependency "state_machine"
26
+ s.add_runtime_dependency "koala"
27
+ s.add_runtime_dependency "slim-rails"
28
+ s.add_runtime_dependency "rubber", "1.15.0"
29
+ s.add_runtime_dependency "configurable_engine"
30
+ s.add_runtime_dependency "formtastic"
31
+
32
+
33
+ end
@@ -0,0 +1,15 @@
1
+ require "facebook_app"
2
+ require "rails"
3
+
4
+ module FacebookApp
5
+ class Engine < Rails::Engine
6
+ engine_name :facebook_app
7
+ config.to_prepare do
8
+
9
+ Admin::ConfigurablesController.class_eval do
10
+ http_basic_authenticate_with :name => 'identified', :password => 'identified'
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,39 @@
1
+ Capistrano::Configuration.instance.load do
2
+ namespace :log do
3
+ desc "Live tail of production log"
4
+ task :production, :roles => :app do
5
+ log_file_glob = rubber.get_env("FILE", "Log files to tail", true, "#{current_path}/log/production.log")
6
+ run "tail -qf #{log_file_glob}" do |channel, stream, data|
7
+ puts # for an extra line break before the host name
8
+ puts data
9
+ break if stream == :err
10
+ end
11
+ end
12
+ desc "Live tail of delayed job log"
13
+ task :delayed_job, :roles => :app do
14
+ log_file_glob = rubber.get_env("FILE", "Log files to tail", true, "#{current_path}/log/delayed_job.log")
15
+ run "tail -qf #{log_file_glob}" do |channel, stream, data|
16
+ puts # for an extra line break before the host name
17
+ puts data
18
+ break if stream == :err
19
+ end
20
+ end
21
+ desc "Live tail of nginx log"
22
+ task :nginx, :roles => :app do
23
+ log_file_glob = rubber.get_env("FILE", "Log files to tail", true, "/var/log/nginx/error.log")
24
+ run "tail -qf #{log_file_glob}" do |channel, stream, data|
25
+ puts # for an extra line break before the host name
26
+ puts data
27
+ break if stream == :err
28
+ end
29
+ end
30
+ end
31
+ desc "Seed Database"
32
+ task :seed_db, :roles => :app do
33
+ run "cd #{rubber_env.app_name}; bundle exec RAILS_ENV=production rake db:seed"
34
+ end
35
+
36
+ after "deploy", "delayed_job:restart"
37
+ after "deploy:cold", "seed_db"
38
+ end
39
+
@@ -0,0 +1,3 @@
1
+ module FacebookApp
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,15 @@
1
+ require "facebook_app/version"
2
+
3
+ module FacebookApp
4
+ if defined?(Rails)
5
+ require "facebook_app/engine"
6
+ require "formtastic"
7
+ require "delayed_job"
8
+ require "ostruct"
9
+ require "koala"
10
+ require "slim-rails"
11
+ require "rubber"
12
+ require "configurable_engine"
13
+ require "state_machine"
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'rails/generators'
2
+ module FacebookApp
3
+ class InstallGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+
6
+ def self.source_root
7
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
8
+ end
9
+
10
+ def add_configurable_file
11
+ copy_file 'configurable.yml', 'config/configurable.yml'
12
+ end
13
+
14
+ def remove_unwanted_files
15
+ remove_file "public/index.html"
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,79 @@
1
+
2
+ # This file controls what config variables you want to be able to allow your users
3
+ # to set, as well as those you'll be able to access from within the application.
4
+ #
5
+ # If you want to be able to access a string config[:site_title], for example:
6
+ #
7
+ # site_title:
8
+ # name: Site Title
9
+ # type: string
10
+ # default: My Site
11
+ #
12
+ # 'name' is the name that appears in the edit form
13
+ #
14
+ # 'type' can be 'string' for a text field, 'password' for a password field or 'text' for a text area
15
+ # 'type' defaults to 'string'
16
+ #
17
+ # 'default' is the default value to use if there's no entry in the database. Otherwise, nil will be returned
18
+ #
19
+ # Some Examples:
20
+ #
21
+ # site_title:
22
+ # name: Site Title
23
+ # default: My Site
24
+ # type: string
25
+ #
26
+ # site_description:
27
+ # name: Description for Google
28
+ # default: Lots of Awesomeness Here
29
+ # type: text
30
+ #
31
+ number_tagged_in_infographic:
32
+ name: Number of people tagged in the infographic
33
+ default: 3
34
+ type: integer
35
+
36
+ infographic_caption:
37
+ name: Photo caption text (you need to append the viral link, e.g. http://www.thedirtytruth.org?marketing_mode=viral
38
+ default: Find out the dirty truth about your friends at http://www.thedirtytruh.org/?marketing_mode=viral
39
+ type: text
40
+
41
+ like_infographic:
42
+ name: True if you want the software to automatically like the infographic as the user after he posts it
43
+ default: false
44
+ type: boolean
45
+
46
+ comment_on_infographic:
47
+ name: Write a comment on the infographic as the user
48
+ default: false
49
+ type: boolean
50
+
51
+ comment_on_infographic_text:
52
+ name: What the user says when he comments on the infographic as himself
53
+ default: Ha, so true.
54
+ type: string
55
+
56
+ app_name:
57
+ name: Name of application that the user sees (e.g. The Dirty Truth)
58
+ default: The Dirty Truth
59
+ type: string
60
+
61
+ analytics_code:
62
+ name: Analytics Code
63
+ default: UA-26376413-1
64
+ type: string
65
+
66
+ identified_tracking_link:
67
+ name: Identified Tracking Link with code
68
+ default: http://www.identified.com?fbg=1
69
+ type: string
70
+
71
+ facebook_permissions:
72
+ name: List of permissions required for Facebook
73
+ default: user_status,friends_status,read_stream,friends_events,user_events,publish_stream,user_photos
74
+ type: text
75
+
76
+ show_splash_page:
77
+ name: Show the splash page or redirect to main page
78
+ default: true
79
+ type: boolean
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4
+ require 'delayed/command'
5
+ Delayed::Command.new(ARGV).daemonize
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+
4
+ # Create development app and initial Facebook credentials
5
+ puts "Ading default Facebook user accounts. These may be out of date."
6
+ FacebookApp::FB.create(:development => true, :app_id => "225198020866871", :secret => "c13ca68717af076f6832f4d38a6da48a", :app_url => "http://apps.facebook.com/the-better-frienddev", :email => "jack.kinsella@gmail.com", :password => "notteling" )
7
+ FacebookApp::FB.create(:development => false, :app_id => "178965915518857", :secret => "928b9a0edf812a236499bcc99da7a4bc", :app_url => 'https://apps.facebook.com/truthcanhurt', :email => "dummydata", :password => "dummydata")
@@ -0,0 +1,180 @@
1
+ #!/usr/bin/env python
2
+
3
+ # Render an HTML file to PNG and dump image tag locations as JSON.
4
+ # 4.7
5
+ # python script/infographic <infographic_url> <infographic_png> <infographic_json>
6
+ ##
7
+ # Usage:
8
+ # python script/infographic <infographic_url> <infographic_png> <infographic_json>
9
+ #
10
+ # Gotchas:
11
+ # 1) A redirect for a URL blows it up
12
+ # 2) The png and json files must be prepended with their folders - e.g.
13
+ # "tmp/my_pic.png"
14
+
15
+ # The script will load the webpage located at <infographic_url> and render it as
16
+ # an image to the file <infographic_png>. It looks for any DOM elements in the
17
+ # page with a `data-tag-uid` attribute and dumps their metrics to a file in JSON
18
+ # format. The JSON file will be an array where each object represents one of
19
+ # the DOM elements with a `data-tag-uid` attribute. Each objet has the
20
+ # following attributes:
21
+ #
22
+ # uid: The UID of the Facebook user who should be tagged.
23
+ # top: The location of the top border of the tagged element as the number
24
+ # of pixels from the top.
25
+ # left: The location of the left border of the tagged element as the number
26
+ # of pixels from the left border of the page.
27
+ # width: The width in pixels of the tagged element.
28
+ # height: The height in pixels of the tagged element.
29
+
30
+ # QWebPage()
31
+ # Object to view and edit web documnets. Web Content, history of links
32
+ # navigation and so on.
33
+ # Part of QtWebKit
34
+
35
+ # mainFrame()
36
+ # returns the main frame of the page -> QWEBFRAME
37
+
38
+
39
+ # QWebFramem
40
+ # contentsSize()
41
+ # reutrns a Qsize object of the size of the content in the frame
42
+ # render()
43
+ # redner the frame into painter
44
+
45
+
46
+ # Before you paint a QWebPage object, you need to set the size of the viewpost
47
+ # by calling setViewportSize. Then you invoked the main frame's render function
48
+ # (QWebFrame::render())
49
+
50
+ #QApplicattion
51
+ #exec_()
52
+ # Causes application to enter the main loop, which fetches events and sends
53
+ # them to objects
54
+
55
+ #Qimage
56
+ # Provides a hardward independent image representation that allows direct
57
+ # access to the pixel data and can be used as a paint device
58
+ #
59
+ # QPainted can write diectly onto mimages
60
+ #
61
+ # self.image = QImage(self.page.viewportSize(), QImage.Format_ARGB32)
62
+ # Instantiate an image with a given size(two dimensions size object: QSize) and
63
+ # Format (
64
+
65
+ #SIGNAL
66
+ # Signals are used for sommunication between objects. It is emitted when a
67
+ # particular event occurs
68
+ #self.page.connect(self.page, SIGNAL("loadFinished(bool)"), self.onLoadFinished)
69
+ # sender = self.page; signal is emitted signal (loadFinished); receive is
70
+ # object that recies it
71
+ #
72
+ # loadFinished signal is mitted when a QWebPage contents are loaded
73
+ # completely
74
+
75
+
76
+
77
+ #QPainter
78
+ #Happens between the begin() and end() methods
79
+ # e.g. qp = QpPainter(); qb.being(self); qp.drawText(event); qp.end()
80
+ # Passed into mainFrame here
81
+
82
+ import errno
83
+ import json
84
+ import os
85
+ import sys
86
+ import traceback
87
+
88
+ from PyQt4.QtCore import QUrl, SIGNAL
89
+ from PyQt4.QtGui import QApplication, QImage, QPainter
90
+ from PyQt4.QtWebKit import QWebPage
91
+
92
+ LOAD_TAGS_JS = """
93
+ var tags = [];
94
+
95
+ $("[data-tag-uid]").each(function () {
96
+ tags.push({
97
+ to : $(this).attr("data-tag-uid"),
98
+ x : $(this).position().left.toString(),
99
+ y : $(this).position().top.toString(),
100
+ });
101
+ });
102
+
103
+ JSON.stringify(tags);
104
+ """
105
+
106
+ class Infographic:
107
+ def __init__(self, url):
108
+ self.url = url
109
+ self.render()
110
+
111
+ def render(self):
112
+ self.app = QApplication([])
113
+ self.page = QWebPage()
114
+
115
+ self.page.connect(self.page, SIGNAL("loadFinished(bool)"), self.onLoadFinished)
116
+ self.page.mainFrame().load(QUrl(self.url))
117
+ retval = self.app.exec_()
118
+ del self.page
119
+
120
+ if retval != 0:
121
+ raise RuntimeError, "Could not load url: " + self.url
122
+ return retval
123
+
124
+ def onLoadFinished(self, result):
125
+ try:
126
+ if not result:
127
+ self.app.exit(1)
128
+
129
+ self.resize()
130
+ self.loadImage()
131
+ self.loadTags()
132
+ self.app.exit(0)
133
+ except:
134
+ traceback.print_exc()
135
+ self.app.exit(1)
136
+
137
+ def resize(self):
138
+ self.page.setViewportSize(self.page.mainFrame().contentsSize())
139
+
140
+ def loadImage(self):
141
+ self.image = QImage(self.page.viewportSize(), QImage.Format_ARGB32)
142
+ painter = QPainter(self.image)
143
+
144
+ self.page.mainFrame().render(painter)
145
+ painter.end()
146
+
147
+ def loadTags(self):
148
+ # XXX: This breaks with the version of Qt installed on production.
149
+ tags_json = str(self.page.mainFrame().evaluateJavaScript(LOAD_TAGS_JS).toString())
150
+ self.tags = json.loads(tags_json)
151
+
152
+ def mkdir_p(path):
153
+ try:
154
+ os.makedirs(path)
155
+ except OSError as detail:
156
+ if detail.errno == errno.EEXIST:
157
+ pass
158
+ else:
159
+ raise
160
+
161
+ def main(argv):
162
+ if len(argv) != 4:
163
+ sys.stderr.write("Usage: python script/infographic <infographic_url> <infographic_png> <infographic_json>\n")
164
+ sys.exit(1)
165
+
166
+ infographic_url = argv[1]
167
+ infographic_png = argv[2]
168
+ infographic_tags = argv[3]
169
+
170
+ mkdir_p(os.path.dirname(infographic_png))
171
+ mkdir_p(os.path.dirname(infographic_tags))
172
+
173
+ graphic = Infographic(infographic_url)
174
+ graphic.image.save(infographic_png)
175
+
176
+ with file(infographic_tags, "w") as tags_file:
177
+ json.dump(graphic.tags, tags_file)
178
+
179
+ if __name__ == "__main__":
180
+ main(sys.argv)
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: facebook_app
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jack Kinsella
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-01 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2153433820 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2153433820
25
+ - !ruby/object:Gem::Dependency
26
+ name: delayed_job
27
+ requirement: &2153433320 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2153433320
36
+ - !ruby/object:Gem::Dependency
37
+ name: state_machine
38
+ requirement: &2153432940 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2153432940
47
+ - !ruby/object:Gem::Dependency
48
+ name: koala
49
+ requirement: &2153432480 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2153432480
58
+ - !ruby/object:Gem::Dependency
59
+ name: slim-rails
60
+ requirement: &2153432060 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2153432060
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubber
71
+ requirement: &2153431560 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
76
+ version: 1.15.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2153431560
80
+ - !ruby/object:Gem::Dependency
81
+ name: configurable_engine
82
+ requirement: &2153454940 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *2153454940
91
+ - !ruby/object:Gem::Dependency
92
+ name: formtastic
93
+ requirement: &2153454480 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *2153454480
102
+ description: Includes authentication, tracking, and lots of convenience methods
103
+ email:
104
+ - jack.kinsella@gmail.com
105
+ executables: []
106
+ extensions: []
107
+ extra_rdoc_files: []
108
+ files:
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - README.textile
112
+ - Rakefile
113
+ - app/assets/images/shared/ajax-loader.gif
114
+ - app/assets/images/single_pixel.png
115
+ - app/assets/javascripts/facebook_app.js
116
+ - app/assets/javascripts/pages.coffee.erb
117
+ - app/assets/stylesheets/admin.sass
118
+ - app/assets/stylesheets/configurables.sass
119
+ - app/assets/stylesheets/facebook_app.css
120
+ - app/assets/stylesheets/layout.css.scss
121
+ - app/assets/stylesheets/yui-3.4.1.css
122
+ - app/controllers/facebook_app/achievements_controller.rb
123
+ - app/controllers/facebook_app/admin_controller.rb
124
+ - app/controllers/facebook_app/external_trackings_controller.rb
125
+ - app/controllers/facebook_app/facebook_app_controller.rb
126
+ - app/controllers/facebook_app/oauth_controller.rb
127
+ - app/controllers/facebook_app/pages_controller.rb
128
+ - app/helpers/facebook_app/application_helper.rb
129
+ - app/mailers/.gitkeep
130
+ - app/models/.gitkeep
131
+ - app/models/facebook_app/conversion.rb
132
+ - app/models/facebook_app/conversion_summary.rb
133
+ - app/models/facebook_app/facebook_credentials.rb
134
+ - app/models/facebook_app/infographic_server_communicator.rb
135
+ - app/views/facebook_app/achievements/show.html.slim
136
+ - app/views/facebook_app/admin/_conversion_stage.html.slim
137
+ - app/views/facebook_app/admin/_spamalytics.html.slim
138
+ - app/views/facebook_app/admin/new_fb_credentials.html.slim
139
+ - app/views/facebook_app/admin/show.html.slim
140
+ - app/views/facebook_app/external_trackings/test.html.slim
141
+ - app/views/facebook_app/pages/privacy_policy.html.slim
142
+ - app/views/facebook_app/pages/terms_of_service.html.slim
143
+ - app/views/layouts/facebook_app.html.slim
144
+ - config/routes.rb
145
+ - db/migrate/20111024214949_add_facebook_app.rb
146
+ - facebook_app.gemspec
147
+ - lib/facebook_app.rb
148
+ - lib/facebook_app/engine.rb
149
+ - lib/facebook_app/recipes.rb
150
+ - lib/facebook_app/version.rb
151
+ - lib/generators/facebook_app/install_generator.rb
152
+ - lib/generators/facebook_app/templates/configurable.yml
153
+ - lib/generators/facebook_app/templates/delayed_job
154
+ - lib/generators/facebook_app/templates/seeds.rb
155
+ - script/infographic.py
156
+ homepage: ''
157
+ licenses: []
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ! '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project: facebook_app
176
+ rubygems_version: 1.8.8
177
+ signing_key:
178
+ specification_version: 3
179
+ summary: Base Facebook for rapid development of future Facebook applications
180
+ test_files: []