doesfacebook 0.6.0 → 1.0.0.pre1

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.
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,49 @@
1
+ = DoesFacebook Change Log
2
+
3
+ This document details notable changes between versions in the gem.
4
+
5
+ === v1.0.0 (this version)
6
+
7
+
8
+ === v0.6.0 / Oct 11 2012
9
+
10
+ * Add proper ActiveSupport deprecation warnings for deprecated methods and configuration
11
+
12
+ === v0.5.5 / May 18 2012
13
+ * Add sessionify_signed_parameter filter for signed_request management on non-POSTed, subsequent requests within iframes
14
+ * Add opts parameter to does_facebook invocation with support for toggling :session behavior
15
+ * Documentation updates for session switch on does_facebook invocation
16
+
17
+ === v0.5.4 / Apr 30 2012
18
+ * Middleware fix for first-strike page loads
19
+
20
+ === v0.5.3 / Apr 23 2012
21
+ * Middleware POST rewrite now performed on requests from Facebook only
22
+
23
+ === v0.5.2 / Apr 04 2012
24
+ * Additional fix for SSL/HTTPS configuration loader
25
+
26
+ === v0.5.1 / Apr 04 2012
27
+ * Fix for SSL/HTTPS configuration loader logic
28
+
29
+ === v0.5.0 / Mar 28 2012
30
+ * Configuration loader completely rewritten, is now request URL based
31
+ * Configuration logging messages streamlined
32
+
33
+ === v0.5.0.pre / Winter 2012 (various "pre" versions)
34
+ * "namespace" configuration key adopted replacing "canvas_name"
35
+ * "canvas_name" configuration key deprecated (still supported, but triggers deprecation logger message)
36
+ * app_namespace helper replaces app_canvas_name helper
37
+ * url_for_canvas, link_to_canvas updated to use namespace
38
+ * Documentation updates for changes to configuration
39
+ * fb_init() helper added for FBJS invocation with app properties
40
+ * AJAX, xhr requests are passed through Middleware POST rewrite
41
+ * Remove api_key helpers, support (field long deprecated by Facebook)
42
+ * Remove api_key configuration key from doesfacebook.yml
43
+ * Add Rack Middleware rewriting POST requests to appropriate methods when signed_request is present
44
+
45
+ === v0.4.3 / Sep 18 2011
46
+ * Add support for SSL/HTTPS configured apps with "ssl_callback_url" configuration key
47
+ * Update to url_for_canvas, link_to_canvas, redirect helpers to support SSL/HTTPS configured applications
48
+
49
+
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ # DOES FACEBOOK
2
+ # Gemfile
3
+
4
+ source "http://rubygems.org"
5
+
6
+ # Runtime dependencies:
7
+
8
+ # This gem adds functionality to Rails applications:
9
+ gem "rails", ">= 3.2.0"
10
+
11
+
12
+ # Development dependencies:
13
+ group :development do
14
+ gem "bundler", ">= 1.1"
15
+ gem "jeweler", "~> 1.8.4"
16
+ gem "rdoc", "~> 3.12"
17
+ gem "rspec", ">= 2.11.0"
18
+ # gem "rspec-rails", ">= 2.11.0"
19
+ # gem "capybara", "~> 1.1.2"
20
+ # gem "combustion", "~> 0.3.2"
21
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,105 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionmailer (3.2.13)
5
+ actionpack (= 3.2.13)
6
+ mail (~> 2.5.3)
7
+ actionpack (3.2.13)
8
+ activemodel (= 3.2.13)
9
+ activesupport (= 3.2.13)
10
+ builder (~> 3.0.0)
11
+ erubis (~> 2.7.0)
12
+ journey (~> 1.0.4)
13
+ rack (~> 1.4.5)
14
+ rack-cache (~> 1.2)
15
+ rack-test (~> 0.6.1)
16
+ sprockets (~> 2.2.1)
17
+ activemodel (3.2.13)
18
+ activesupport (= 3.2.13)
19
+ builder (~> 3.0.0)
20
+ activerecord (3.2.13)
21
+ activemodel (= 3.2.13)
22
+ activesupport (= 3.2.13)
23
+ arel (~> 3.0.2)
24
+ tzinfo (~> 0.3.29)
25
+ activeresource (3.2.13)
26
+ activemodel (= 3.2.13)
27
+ activesupport (= 3.2.13)
28
+ activesupport (3.2.13)
29
+ i18n (= 0.6.1)
30
+ multi_json (~> 1.0)
31
+ arel (3.0.2)
32
+ builder (3.0.4)
33
+ diff-lcs (1.1.3)
34
+ erubis (2.7.0)
35
+ git (1.2.5)
36
+ hike (1.2.2)
37
+ i18n (0.6.1)
38
+ jeweler (1.8.4)
39
+ bundler (~> 1.0)
40
+ git (>= 1.2.5)
41
+ rake
42
+ rdoc
43
+ journey (1.0.4)
44
+ json (1.7.5)
45
+ mail (2.5.3)
46
+ i18n (>= 0.4.0)
47
+ mime-types (~> 1.16)
48
+ treetop (~> 1.4.8)
49
+ mime-types (1.23)
50
+ multi_json (1.7.2)
51
+ polyglot (0.3.3)
52
+ rack (1.4.5)
53
+ rack-cache (1.2)
54
+ rack (>= 0.4)
55
+ rack-ssl (1.3.3)
56
+ rack
57
+ rack-test (0.6.2)
58
+ rack (>= 1.0)
59
+ rails (3.2.13)
60
+ actionmailer (= 3.2.13)
61
+ actionpack (= 3.2.13)
62
+ activerecord (= 3.2.13)
63
+ activeresource (= 3.2.13)
64
+ activesupport (= 3.2.13)
65
+ bundler (~> 1.0)
66
+ railties (= 3.2.13)
67
+ railties (3.2.13)
68
+ actionpack (= 3.2.13)
69
+ activesupport (= 3.2.13)
70
+ rack-ssl (~> 1.3.2)
71
+ rake (>= 0.8.7)
72
+ rdoc (~> 3.4)
73
+ thor (>= 0.14.6, < 2.0)
74
+ rake (10.0.4)
75
+ rdoc (3.12)
76
+ json (~> 1.4)
77
+ rspec (2.11.0)
78
+ rspec-core (~> 2.11.0)
79
+ rspec-expectations (~> 2.11.0)
80
+ rspec-mocks (~> 2.11.0)
81
+ rspec-core (2.11.1)
82
+ rspec-expectations (2.11.3)
83
+ diff-lcs (~> 1.1.3)
84
+ rspec-mocks (2.11.2)
85
+ sprockets (2.2.2)
86
+ hike (~> 1.2)
87
+ multi_json (~> 1.0)
88
+ rack (~> 1.0)
89
+ tilt (~> 1.1, != 1.3.0)
90
+ thor (0.18.1)
91
+ tilt (1.3.7)
92
+ treetop (1.4.12)
93
+ polyglot
94
+ polyglot (>= 0.3.1)
95
+ tzinfo (0.3.37)
96
+
97
+ PLATFORMS
98
+ ruby
99
+
100
+ DEPENDENCIES
101
+ bundler (>= 1.1)
102
+ jeweler (~> 1.8.4)
103
+ rails (>= 3.2.0)
104
+ rdoc (~> 3.12)
105
+ rspec (>= 2.11.0)
data/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- Copyright (C) 2011 by Awexome Labs, LLC
2
+ Copyright (C) 2012 by Awexome Labs, LLC
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
data/README.rdoc CHANGED
@@ -1,116 +1,186 @@
1
1
  = DoesFacebook
2
2
 
3
- The Awexome Labs rails plugin for handling Facebook application credentials and authentication.
4
- Also provides helpers and convenience methods for canvas applications.
3
+ Lightweight gem enables your Rails application to quickly and simply integrate with Facebook,
4
+ while also providing configuration and convenience methods for Facebook app developers.
5
5
 
6
- You may also be interested in accessing content on Facebooks Open Graph API. For that, consider
7
- this gem's brother from the same mother, DoesOpenGraph[https://github.com/awexome/doesopengraph].
6
+ == Install
8
7
 
8
+ DoesFacebook is designed to work with Rails applications. To get started, add +doesfacebook+
9
+ to your +Gemfile+:
9
10
 
10
- == Installation
11
+ gem "doesfacebook"
11
12
 
12
- To install the gem, do the usual:
13
+ DoesFacebook is built against Rails versions 3.2 and higher, which it requires at runtime. In
14
+ development, the additional gem requirements include bundler, jeweler, and rspec.
13
15
 
14
- gem install doesfacebook
15
-
16
- If you plan on using DoesFacebook in a project with a Gemfile:
16
+ == Configure
17
17
 
18
- gem "doesfacebook"
19
-
20
- You can live on the edge, too:
18
+ To work with the Facebook API and handle Canvas application requests, you must specify
19
+ configuration details for the Facebook applications that your Rails application will support
20
+ in an initializer file. This file allows you to use a simple DSL to define each application.
21
21
 
22
- gem "doesfacebook", :git=>"git://github.com/awexome/doesfacebook.git"
22
+ To get started, you can generate a boilerplate initializer in your directory by running the
23
+ included generator:
23
24
 
25
+ rails generate does_facebook:config
24
26
 
25
- == Configuration
27
+ This generates a file +doesfacebook.rb+ in your +config/initializers+ directory containing a
28
+ sample app definition and a commented section containing optional selector behavior.
26
29
 
27
- You can configure your Facebook applications for use in your Rails project by specifying them
28
- within the "doesfacebook.yml" file under config/
30
+ === Facebook Applications
29
31
 
30
- To generate a boilerplate configuration file, run the generator:
32
+ DoesFacebook supports any number of Facebook applications within a single Rails application.
33
+ Facebook applications are created and defined within the
34
+ {Facebook Developers Dashboard}[https://developers.facebook.com/].
35
+
36
+ You can customize the configuration for any number of supported applications in the initializer
37
+ file. A typical case is to have a Facebook application for each environment in which your Rails
38
+ application will run (development, staging, production, etc.), but you are not tied to this
39
+ convention and can define any number of Facebook applications your Rails application will support.
40
+
41
+ A sample Facebook application definition:
42
+
43
+ # Support a Facebook application with my Rails app:
44
+ config.add_application(
45
+ id: 123456789012345, # <= "App ID" in FB dashboard
46
+ secret: "abcdefghijklmnopqrstuvwxyzABCDEF" # <= "App Secret" in FB dashboard
47
+ namespace: "your_app_namespace", # <= "Namespace" in FB dashboard
48
+ canvas_url: "http://your.dev.server.com/and/path", # <= Under "App on Facebook"
49
+ secure_canvas_url: "https://secure.dev.server" # <= Under "App on Facebook"
50
+ )
51
+
52
+ The example above shows a declaration with the required keys defined. App ID, Secret, Namespace,
53
+ and the callback URLs are used to handle incoming requests from Facebook, parse and validate
54
+ POST parameters from Facebook, and more.
55
+
56
+ Add additional applications by adding subsequent +config.add_application+ calls to your
57
+ initializer.
58
+
59
+ You can define, for your reference and remote configuration purposes, any configuration key for
60
+ your application specified in the documentation on developers.facebook.com.
31
61
 
32
- rails generate does_facebook:config
33
-
34
- The appropriate application configuration will be loaded for each request based on the callback
35
- path of your application. The host of each incoming request will be compared against the callback_url
36
- or ssl_callback_url fields of your app. A sample configuration looks like this:
37
62
 
38
- my_sweet_facebook_app:
39
- app_id: 1234567890
40
- secret_key: a1b2c3d4e5f6g7h8i9j0k1l
41
- namespace: my_sweet_canvas_name
42
- callback_url: http://your.server.com/and/path
43
- ssl_callback_url: https://your.secure.server.com/and/path
63
+ === Matching Apps with Requests
44
64
 
45
- Top-level keys in this file are configuration names. This allows you to specify many different apps
46
- which can be used within any environment, provided they have different callback patterns.
65
+ By default, the +canvas_url+ and +secure_canvas_url+ keys of your configured applications will be
66
+ compared against incoming requests to match each request with a single Facebook application.
47
67
 
48
- If you do have one app for each environment, however, naming an app after the corresponding Rails
49
- environment ("development","production",etc.) will provide a fallback should the request host not
50
- directly resolve to a callback_url
68
+ For example, if a request comes from the Facebook canvas to "http://dev1.com/abe" and strikes your
69
+ application, DoesFacebook will match this request with the Facebook application containing a +canvas_url+
70
+ that is a part of the request URL "http://dev1.com/abe". If the request comes in over SSL/HTTPS,
71
+ DoesFacebook will compare against the +secure_canvas_url+ key of your applications.
51
72
 
52
- The typical configuration options are as follows:
73
+ As a +Proc+, this default selection method is defined like so:
53
74
 
54
- * app_id: Facebook ID of your application
55
- * secret_key: Facebook secret key of your application (used to parse and validate Facebook requests)
56
- * namespace: The "myapp" from "http://apps.facebook.com/myapp" used frequently for link generation and redirection (previously, this configuration field was known as "canvas_name", but Facebook has deprecated that name in favor of "namespace")
57
- * callback_url: The server callback URL for your app. Used to identify the proper configuration which should be loaded for each request.
58
- * ssl_callback_url: The server callback for secure, HTTPS requests. Required for production apps. Can be different from your non-secure callback_url
75
+ app_selector = Proc.new() do |request, apps|
76
+ apps.find do |a|
77
+ callback_path = request.ssl? && a.supports_ssl? ? a.secure_canvas_url : a.canvas_url
78
+ request.url.match(/^#{callback_path}.*/)
79
+ end
80
+ end
59
81
 
60
- These parameters relate to settings in the Facebook Developers application configuration panel,
61
- which you can review at https://developers.facebook.com/apps and should be easy to copy and paste
62
- in as you need for each application.
82
+ You can, however, override this selector logic. In the +configure+ block within your initializer
83
+ file, you can make a call to the +app_selector+ method to override this logic with a custom +Proc+
84
+ operating on the request and list of defined applications. Here's an example call:
85
+
86
+ # Select the active Facebook application based on subdomain:
87
+ config.app_selector = Proc.new() do |request, apps|
88
+ apps.find do |a|
89
+ request.domains.last.match(/_dev$/) ? a.namespace.match(/_dev$/) : a.namespace.match(/_pro$/)
90
+ end
91
+ end
92
+
93
+ You can change this, too, to seek in your database for an app definition, or elsewhere. You are not
94
+ limited to solely the list of defined applications.
63
95
 
64
96
 
65
97
  == Usage
66
98
 
67
- To parse and validate requests from Facebook, simply add the following declaration to your controller:
99
+ To use DoesFacebook in a given controller in your application, you simply add the following
100
+ invocation to your controller:
68
101
 
69
102
  does_facebook
70
103
 
71
- Now, with each incoming request, DoesFacebook will parse the "signed_request" parameter against your
72
- application's keys, as described at http://developers.facebook.com/docs/authentication/signed_request
104
+ Now, with each incoming request to this controller, DoesFacebook will add the following
105
+ functionality:
106
+
107
+ * Convert POST requests from (apps.)facebook.com into GET requests to preserve RESTfulness in your app
108
+ * Select the proper Facebook application from your configuration
109
+ * Validate the +signed_request+ parameter Facebook sends to your application to ensure the request is from Facebook
110
+ * Parse the contents of the +signed_request+ (user, brand page, user auth token, etc.) and make them available to your controller as +fb_params+
111
+ * Provide controller extensions which give you access to Facebook shortcuts in your controller
112
+ * Include helpers in your views that allow you quick access to configuration
113
+
114
+ === Controller Extensions
115
+
116
+ Within your controller, you can now access +fb_app+ and +fb_params+ to view the configuration of the
117
+ currently active application and the parameters passed by Facebook as part of the +signed_request+. These
118
+ are available in your regular controller actions and before filters.
119
+
120
+ Also, you will gain convenience methods +url_for_canvas+ and +redirect_to_canvas+, which behave just like
121
+ their non-canvas Rails equivalents, but ensure that the URL given or redirection provided includes the
122
+ properly-formatted "http(s)://apps.facebook.com/namespace" convention and take place in the top browser frame.
123
+ These are useful for any end-user activity that requires typical redirects or URL generation.
124
+
125
+ === View Helpers
126
+
127
+ Within your views, you will now have access to a wealth of helpers that provide shortcuts to configuration
128
+ and other Facebook features:
129
+
130
+ * +fb_app+ - Full configuration of the active Facebook application in use
131
+ * +app_id+ - The active application's "App ID", required by some FB JavaScript methods
132
+ * +app_namespace+ - The active application's "namespace" configuration value.
133
+ * +app_canvas_url+ - The full URL to the active application's canvas (e.g., http://apps.facebook.com/myapp)
134
+
135
+ You also receive a few beneficial link methods:
73
136
 
74
- This allows your application to verify and properly handle requests from Facebook, as well as view any
75
- additional data and parameters your app is sent by Facebook, such as the current user ID, active
76
- Facebook page, and more.
137
+ * +url_for_canvas+ - Like the standard +url_for+, but ensures the endpoint is in the Facebook canvas
138
+ * +link_to_canvas+ - Use as you would the regular +link_to+ helper; generates links to the canvas and properly targets the link to "_top" frame to keep app within canvas and not break into your iframe
77
139
 
78
- By default, to enhance your iframe development, the "signed_request" parameter from Facebook will be
79
- stuffed into the session and subsequent requests that lack a "signed_request" parameter (links from
80
- your internal iframe clicks, perhaps), will used this signed_request. This allows you to build a canvas
81
- or page tab application like any other web application and not worry about passing around the signed_request
82
- parameter yourself.
140
+ Quick Facebook helpers for representing users and bootstrapping your application's JS SDK implementation
141
+ are also provided:
83
142
 
84
- does_facebook :session=>false # <== Use this invocation to prevent session stuffing
143
+ * +profile_pic+ - Builds out an image tag containing the profile picture of the specified user. Pass +type+ and basic +image_tag+ options along in the +opts+ hash to customize.
144
+ * +fb_init+ - Bootstrap an FB JS SDK implementation with this call, which will automatically inject the JS SDK with proper values for +appId+ as well as the proper browser-compatibility +channelUrl+ file.
85
145
 
86
- Within your controllers which declare _does_facebook_ (or inherit from a controller which does), you
87
- will now have access to the following niceties:
146
+ Display a profile photo of a user with Facebook ID 1234567890 in a view with some view customizations:
88
147
 
89
- * redirect_to_canvas: Generate a JS top frame redirection which keeps users inside your application's canvas as opposed to loading links only within your app's iframe
90
- * @fbparams: This hash will be set with all keys and values Facebook provided to you for this request (things like user id, page id, logged in status, region, locale, etc.)
148
+ <%= profile_pic 1234567890, :type=>"small", :style=>"border: 2px solid blue;" %>
91
149
 
92
- Within your views, you have access to a wealth of helpers that will make many aspects of developing
93
- against the Facebook platform easier:
150
+ Complete a basic invocation of +fb_init+ from your layout:
94
151
 
95
- * app_id: The current application's id, parsed from doesfacebook.yml
96
- * app_callback_url: The current application's callback URL, parsed from doesfacebook.yml
97
- * app_namespace: The current application's canvas shortname, parsed from doesfacebook.yml (aliased as "app_canvas_name" for backwards compatibility)
98
- * app_canvas_url: The full URL to the application canvas (e.g., http://apps.facebook.com/myapp)
99
- * url_for_canvas(url_opts={}): Like the standard url_for, but ensures the endpoint is in the Facebook canvas
100
- * link_to_canvas(text, url_opts={}, html_opts={}): Use as you would the regular link_to helper; generates links to the canvas and properly targets the link to "_top" frame to keep app within canvas and not break into your iframe
152
+ <%= fb_init() %>
101
153
 
102
- Other helpers and useful shortcuts being added regularly.
154
+ And you will, in effect, be generating this properly-formed JS SDK boot in your layout:
103
155
 
156
+ <!-- Facebook JS SDK -->
157
+ <div id="fb-root"></div>
158
+ <script>
159
+ window.fbAsyncInit = function() {
160
+ FB.init({"appId":123456789012345,"channelUrl":"/channel.html","status":true,"cookie":true,"xfbml":false});
161
+ };
162
+ (function(d){
163
+ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
164
+ if (d.getElementById(id)) {return;}
165
+ js = d.createElement('script'); js.id = id; js.async = true;
166
+ js.src = "//connect.facebook.net/en_US/all.js";
167
+ ref.parentNode.insertBefore(js, ref);
168
+ }(document));
169
+ </script>
104
170
 
105
- Now, you are armed with the tools you need to build an app within the Facebook platform simply and quickly.
171
+ You can override any of the standard options to +FB.init+ by passing values for the keys you wish to change
172
+ in the +opts+ hash to +fb_init+.
106
173
 
174
+ If you pass a block to +fb_init+, you can include additional JavaScript within the +window.fbAsyncInit+ function.
175
+ This can be useful to attach Facebook listeners or handlers to events such as +edge.create+ or similar. You can
176
+ learn the nitty-gritty details of JS SDK initialization at https://developers.facebook.com/docs/reference/javascript/
107
177
 
108
178
 
109
179
 
110
180
 
111
181
  == Copyright
112
182
 
113
- Copyright 2011-12 Awexome Labs, LLC
183
+ Copyright 2011-12 Awexome Labs, LLC
114
184
  http://awexomelabs.com
115
185
  http://facebook.com/AwexomeLabs
116
186
  http://twitter.com/awexomelabs
data/ROADMAP.rdoc ADDED
@@ -0,0 +1,55 @@
1
+ = DoesFacebook Road Map
2
+
3
+ The previous trunk of DoesFacebook (v0.*) has been closed to make way for
4
+ cleaner implementation and new features in the upcoming v1.* branch. Within
5
+ code, these tracks are represented by the
6
+ {"v0" (original) branch}[https://github.com/awexome/doesfacebook/tree/v0]
7
+ and the
8
+ {"v1" (new) branch}[https://github.com/awexome/doesfacebook/tree/v1].
9
+
10
+ At this time, v1 is merging into master.
11
+
12
+ This document reflects the planned changes for versions going forward.
13
+
14
+
15
+ == v1.0.0
16
+
17
+ The v1 branch is the current branch of development.
18
+
19
+ Expected release by November 2012. Changes API and methods of configuration
20
+ while adding deeper integrations, new features, and currently unsupported
21
+ Facebook features. Will break some aspects of code written against prior
22
+ versions of the library.
23
+
24
+ Planned features:
25
+
26
+ * Remove support for previously-deprecated methods
27
+ * Change format of configuration, following config/initializers pattern
28
+ * Allow app configurations to be loaded via YAML, Proc, database
29
+ * Bring proper url_for_canvas support into controllers
30
+ * Increase flexibility of JS-based redirect with custom partial, template, message, and/or delay loaded from configuration or directly in method call
31
+ * Change standards and optimizations for helpers, filters
32
+ * Provide user, page, and referrer details to apps in filters
33
+ * Add deeper integration options with Graph API via DoesOpenGraph
34
+
35
+
36
+ == v0.6.0
37
+
38
+ Maintained in the v0 branch, this is the prior path of development.
39
+
40
+ Released October 11, 2012. Fixes issues and extends functionality of
41
+ the existing v0.5.* track. Introduces deprecations, but does not break
42
+ functionality.
43
+
44
+ Implemented features:
45
+
46
+ * Add proper deprecation messaging for deprecated configurations and methods
47
+
48
+
49
+ == Support
50
+
51
+ Support for v0 branch releases will continue alongside v1 branch releases
52
+ following the release of v1.0.0, however only bugfixes and tweaks will
53
+ be added to the v0 branch once v1.0.0 is released. All new feature
54
+ development and required alterations for Facebook-initiated changes
55
+ will take place in the v1 branch only.
data/Rakefile ADDED
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require "rake"
13
+
14
+ require "jeweler"
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "doesfacebook"
18
+ gem.homepage = "http://github.com/awexome/doesfacebook"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Lightweight gem enables your Rails application to quickly and simply integrate with Facebook}
21
+ gem.description = %Q{Lightweight gem enables your Rails application to quickly and simply integrate with Facebook}
22
+ gem.email = "engineering@awexomelabs.com"
23
+ gem.authors = ["Awexome Labs"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require "rspec/core"
29
+ require "rspec/core/rake_task"
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ end
32
+
33
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
34
+ spec.rcov = true
35
+ end
36
+
37
+ task :default => :spec
38
+
39
+ # require "rake/testtask"
40
+ # Rake::TestTask.new(:test) do |test|
41
+ # test.libs << "lib" << "test"
42
+ # test.pattern = "test/**/test_*.rb"
43
+ # test.verbose = true
44
+ # end
45
+
46
+ # require "rcov/rcovtask"
47
+ # Rcov::RcovTask.new do |test|
48
+ # test.libs << "test"
49
+ # test.pattern = "test/**/test_*.rb"
50
+ # test.verbose = true
51
+ # test.rcov_opts << "--exclude "gems/*""
52
+ # end
53
+
54
+ # task :default => :test
55
+
56
+ require "rdoc/task"
57
+ Rake::RDocTask.new do |rdoc|
58
+ version = File.exist?("VERSION") ? File.read("VERSION") : ""
59
+
60
+ rdoc.rdoc_dir = "rdoc"
61
+ rdoc.title = "DoesKeyValue #{version}"
62
+ rdoc.rdoc_files.include("README*")
63
+ rdoc.rdoc_files.include("lib/**/*.rb")
64
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0.pre1
@@ -0,0 +1,71 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "doesfacebook"
8
+ s.version = "1.0.0.pre1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Awexome Labs"]
12
+ s.date = "2013-05-21"
13
+ s.description = "Lightweight gem enables your Rails application to quickly and simply integrate with Facebook"
14
+ s.email = "engineering@awexomelabs.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "CHANGELOG.rdoc",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE",
24
+ "README.rdoc",
25
+ "ROADMAP.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "doesfacebook.gemspec",
29
+ "lib/doesfacebook.rb",
30
+ "lib/doesfacebook/application.rb",
31
+ "lib/doesfacebook/configuration.rb",
32
+ "lib/doesfacebook/controller_extensions.rb",
33
+ "lib/doesfacebook/error.rb",
34
+ "lib/doesfacebook/middleware.rb",
35
+ "lib/doesfacebook/session.rb",
36
+ "lib/generators/doesfacebook/config/config_generator.rb",
37
+ "lib/generators/doesfacebook/config/templates/doesfacebook.rb",
38
+ "lib/helpers/does_facebook_helper.rb",
39
+ "public/channel.html"
40
+ ]
41
+ s.homepage = "http://github.com/awexome/doesfacebook"
42
+ s.licenses = ["MIT"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = "1.8.24"
45
+ s.summary = "Lightweight gem enables your Rails application to quickly and simply integrate with Facebook"
46
+
47
+ if s.respond_to? :specification_version then
48
+ s.specification_version = 3
49
+
50
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
+ s.add_runtime_dependency(%q<rails>, [">= 3.2.0"])
52
+ s.add_development_dependency(%q<bundler>, [">= 1.1"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
54
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
55
+ s.add_development_dependency(%q<rspec>, [">= 2.11.0"])
56
+ else
57
+ s.add_dependency(%q<rails>, [">= 3.2.0"])
58
+ s.add_dependency(%q<bundler>, [">= 1.1"])
59
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
60
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
61
+ s.add_dependency(%q<rspec>, [">= 2.11.0"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<rails>, [">= 3.2.0"])
65
+ s.add_dependency(%q<bundler>, [">= 1.1"])
66
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
67
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
68
+ s.add_dependency(%q<rspec>, [">= 2.11.0"])
69
+ end
70
+ end
71
+