facebook_events 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ .DS_Store
2
+ .rbenv*
3
+ *.gem
4
+ *.rbc
5
+ .bundle
6
+ .config
7
+ .yardoc
8
+ Gemfile.lock
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
20
+ vendor
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,40 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ facebook_events (0.0.1)
5
+ mini_fb (>= 1.1.7)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.1.3)
11
+ ffi (1.0.11)
12
+ guard (1.0.1)
13
+ ffi (>= 0.5.0)
14
+ thor (~> 0.14.6)
15
+ guard-rspec (0.7.0)
16
+ guard (>= 0.10.0)
17
+ hashie (1.2.0)
18
+ mime-types (1.18)
19
+ mini_fb (1.1.7)
20
+ hashie
21
+ rest-client
22
+ rest-client (1.6.7)
23
+ mime-types (>= 1.16)
24
+ rspec (2.9.0)
25
+ rspec-core (~> 2.9.0)
26
+ rspec-expectations (~> 2.9.0)
27
+ rspec-mocks (~> 2.9.0)
28
+ rspec-core (2.9.0)
29
+ rspec-expectations (2.9.1)
30
+ diff-lcs (~> 1.1.3)
31
+ rspec-mocks (2.9.0)
32
+ thor (0.14.6)
33
+
34
+ PLATFORMS
35
+ ruby
36
+
37
+ DEPENDENCIES
38
+ facebook_events!
39
+ guard-rspec
40
+ rspec
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ end
10
+
data/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # FacebookEvents
2
+
3
+ FacebookEvents pulls Event data from the Facebook graph for a particular user or page id. Events are returned as an array.
4
+
5
+ ## Setup
6
+
7
+ [Register your App on Facebook](https://developers.facebook.com/apps)
8
+
9
+ Define your constants for Facebook APP ID (API Key) and APP Secret:
10
+
11
+ ```
12
+ FacebookEvents::FACEBOOK_APP_ID = '###'
13
+ FacebookEvents::FACEBOOK_SECRET = '###'
14
+ ```
15
+
16
+ ## Use
17
+
18
+ ```
19
+ events = FacebookEvents.new(facebook_id)
20
+ events.list
21
+ events.list.first
22
+ ```
23
+ Returns an array of Events with attributes for facebook_id, name, start_time, end_time, location, description, updated_time.
24
+
25
+ ### Dependencies
26
+
27
+ Requires the [MiniFB gem](https://github.com/appoxy/mini_fb).
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/facebook_events/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Kenzie Campbell"]
6
+ gem.email = ["kenzie@route19.com"]
7
+ gem.summary = "Fetch an array of Facebook Events by id."
8
+ gem.description = "Given a Facebook page or user id, this gem will return an array of its events."
9
+
10
+ gem.files = `git ls-files`.split($\)
11
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
+ gem.name = "facebook_events"
14
+ gem.require_paths = ["lib"]
15
+ gem.version = FacebookEvents::VERSION
16
+
17
+ gem.add_dependency('mini_fb', '>= 1.1.7')
18
+ gem.add_development_dependency('rspec')
19
+ gem.add_development_dependency('guard-rspec')
20
+ end
@@ -0,0 +1,33 @@
1
+ class FacebookEvents
2
+
3
+ require 'mini_fb'
4
+ require 'facebook_events/event'
5
+ require "facebook_events/version"
6
+
7
+ # Get events for a Facebook page or user by id.
8
+ # Requires environment variables for Facebook APP ID and APP Secret:
9
+ # FacebookEvents::FACEBOOK_APP_ID = ...
10
+ # FacebookEvents::FACEBOOK_SECRET = ...
11
+
12
+ attr_reader :facebook_id, :auth_token, :list
13
+
14
+ def initialize(facebook_id)
15
+ @facebook_id = facebook_id
16
+ @auth_token = get_auth_token
17
+ @list = get_events
18
+ end
19
+
20
+ private
21
+
22
+ def get_auth_token
23
+ MiniFB.authenticate_as_app(FACEBOOK_APP_ID, FACEBOOK_SECRET)['access_token']
24
+ end
25
+
26
+ def get_events
27
+ list = MiniFB.get(@auth_token, @facebook_id, :type => 'events').data
28
+ list.map do |e|
29
+ FacebookEvents::Event.new(MiniFB.get(@auth_token, e.id))
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,15 @@
1
+ class FacebookEvents::Event
2
+
3
+ attr_reader :facebook_id, :name, :start_time, :end_time, :location, :description, :updated_time
4
+
5
+ def initialize(event)
6
+ @facebook_id = event.id
7
+ @name = event.name
8
+ @start_time = event.start_time
9
+ @end_time = event.end_time
10
+ @location = event.location
11
+ @description = event.description
12
+ @updated_time = event.updated_time
13
+ end
14
+
15
+ end
@@ -0,0 +1,3 @@
1
+ class FacebookEvents
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ ID = 'AlMacInnisSportsCentre'
4
+
5
+ describe FacebookEvents do
6
+
7
+ a = FacebookEvents.new(ID)
8
+
9
+ it "has a facebook id" do
10
+ a.facebook_id.should == ID
11
+ end
12
+
13
+ it "sets up authorization" do
14
+ a.auth_token.class.should == String
15
+ end
16
+
17
+ describe "list" do
18
+ l = a.list
19
+
20
+ it "returns an array" do
21
+ l.class.should == Array
22
+ end
23
+
24
+ describe "first" do
25
+ f = l.first
26
+
27
+ it "is an Event" do
28
+ f.class.should == FacebookEvents::Event
29
+ end
30
+
31
+ it "has a facebook id" do
32
+ f.facebook_id.should == '348500465212758'
33
+ end
34
+
35
+ it "has a name" do
36
+ f.name.should == "Father's Day Fundraiser"
37
+ end
38
+
39
+ it "has a start_time" do
40
+ f.start_time.should == "2012-06-16T16:00:00"
41
+ end
42
+
43
+ it "has a description" do
44
+ f.description.should == "The Al MacInnis Sports Centre is hosting a fundraiser on Saturday, June 16th from 8pm - 12am. Live entertainment, hot & cold hors d\u2019oeuvres, game tables, horse shoes, door prizes. All of this will take place in heated tents with an ambience that will set the stage. Entertainment by Billy Spears, Gary Trenholm & Stephen Doiron.\n\nTickets are $40 each and can be purchased by contacting Shannon MacDougall at 631-1401. Visa & M/C accepted."
45
+ end
46
+
47
+ it "has an updated_time" do
48
+ f.updated_time.should == "2012-04-27T12:13:07+0000"
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1 @@
1
+ require 'facebook_events'
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: facebook_events
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kenzie Campbell
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mini_fb
16
+ requirement: &70154877066300 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.7
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70154877066300
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70154877065780 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70154877065780
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard-rspec
38
+ requirement: &70154877065260 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70154877065260
47
+ description: Given a Facebook page or user id, this gem will return an array of its
48
+ events.
49
+ email:
50
+ - kenzie@route19.com
51
+ executables: []
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - .gitignore
56
+ - Gemfile
57
+ - Gemfile.lock
58
+ - Guardfile
59
+ - README.md
60
+ - Rakefile
61
+ - facebook_events.gemspec
62
+ - lib/facebook_events.rb
63
+ - lib/facebook_events/event.rb
64
+ - lib/facebook_events/version.rb
65
+ - spec/facebook_events_spec.rb
66
+ - spec/spec_helper.rb
67
+ homepage:
68
+ licenses: []
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubyforge_project:
87
+ rubygems_version: 1.8.11
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: Fetch an array of Facebook Events by id.
91
+ test_files:
92
+ - spec/facebook_events_spec.rb
93
+ - spec/spec_helper.rb