acts_as_opengraph 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ doc/*
5
+ Gemfile.lock
6
+ .yardoc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in acts_as_opengraph.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2011 Ruben Ascencio
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.markdown ADDED
@@ -0,0 +1,137 @@
1
+ # acts\_as\_opengraph
2
+
3
+ ActiveRecord extension that turns your models into [facebook opengraph](http://developers.facebook.com/docs/opengraph/) objects.
4
+
5
+ ## Installation
6
+
7
+ gem install acts_as_opengraph
8
+
9
+ Now just add the gem dependency in your projects configuration.
10
+
11
+ ## Usage
12
+
13
+ ### Adding acts\_as\_opengraph
14
+
15
+ # app/models/movie.rb
16
+ class Movie < ActiveRecord::Base
17
+ acts_as_opengraph
18
+ end
19
+
20
+ ### Generating the opengraph meta tags
21
+
22
+ # app/views/layouts/application.html.erb
23
+ <head>
24
+ <%= yield :opengraph_meta_tags %>
25
+ </head>
26
+
27
+ # app/views/movies/show.html.erb
28
+ <% content_for :opengraph_meta_tags, opengraph_meta_tags_for(@movie) %>
29
+
30
+ ### Displaying the Like Button
31
+ # app/views/movies/show.html.erb
32
+ <%= like_button_for @movie %>
33
+
34
+ \* Notice that the Like Button will retrieve the required `href` attribute by calling `@movie.opengraph_url`. Read below for more options.
35
+
36
+
37
+ ## Options
38
+
39
+ ### Database columns
40
+
41
+ Even when the names of these columns can be changed with configuration, `acts_as_opengraph` tries to guess these names by checking for the existence of common names. Chances are that your model already has some of the opengraph defined properties.
42
+
43
+ This is the list of supported opengraph protocol properties and their possible column names (in precedence order):
44
+
45
+ * __title__ - og\_title, title, name
46
+ * __type__ - og\_type, kind, category
47
+ * __image__ - og\_image, image, photo, picture, thumb, thumbnail
48
+ * __url__ - og\_url, url, uri, link
49
+ * __description__ - og\_description, description, summary
50
+ * __site\_name__ - og\_site, website, web
51
+ * __latitude__ - og\_latitude, latitude
52
+ * __longitude__ - og\_longitude, longitude
53
+ * __street\_address__ - og\_street\_address, street_address, address, street
54
+ * __locality__ - og\_locality, locality
55
+ * __region__ - og\_region, region
56
+ * __postal\_code__ - og\_postal\_code, postal\_code, zip\_code, zip
57
+ * __country\_name__ - og\_country_name, country\_name, country
58
+ * __email__ - og\_email, email, mail
59
+ * __phone\_number__ - og\_phone\_number, phone\_number, phone
60
+ * __fax\_number__ - og\_fax\_number, fax\_number, fax
61
+
62
+ ### Using a different column name
63
+
64
+ If you need to use a different column then use the __columns__ option. For example, if you store the url of your movies using the `imdb_url` column in your movies table, then do this:
65
+
66
+ # app/models/movie.rb
67
+ acts_as_opengraph :columns => { :url => :imdb_url }
68
+
69
+ ### What about using a custom method?
70
+
71
+ If you wish to use a custom method for some opengraph field, then all you need to do is to define a method with the prefix `opengraph_`.
72
+ For example, if you are using [Paperclip](https://github.com/thoughtbot/paperclip) for your image attachments, you can do this:
73
+
74
+ # app/models/movie.rb
75
+ class Movie < ActiveRecord::Base
76
+
77
+ has_attached_file :picture, :styles => { :small => "160x130>"}
78
+
79
+ acts_as_opengraph
80
+
81
+ def opengraph_image
82
+ picture.url(:small)
83
+ end
84
+
85
+ end
86
+
87
+ ### Default values
88
+
89
+ Use the __values__ option for passing default opengraph values. For our Movie example we can specify that all of our records are movies by doing this:
90
+
91
+ acts_as_opengraph :values => { :type => "movie" }
92
+
93
+ \* Notice that `acts_as_opengraph` only accepts an options hash argument, so if you want to combine default values and column names you'd do this:
94
+
95
+ acts_as_opengraph :columns => { :url => :imdb_url, :email => :contact },
96
+ :values => { :type => "movie", :site_name => "http://example.com" }
97
+
98
+ ## Like Button options
99
+
100
+ Along with the object for which you want to display the Like button, you can pass an options hash to configure its appearance:
101
+
102
+ # app/views/layouts/application.html.erb
103
+ <%= like_button_for @movie, :layout => :box_count, :show_faces => true %>
104
+
105
+ ### Using url helpers
106
+
107
+ By default, `acts_as_opengraph` will try to retrieve your object's url by calling `opengraph_url` on it. You could override it by defining a custom method, like this:
108
+
109
+ # app/models/movie.rb
110
+ def opengraph_url
111
+ "http://example.com/movies/#{self.id}"
112
+ end
113
+
114
+ But that's not the Rails way, so instead of doing that, you can pass an `href` option from your views, which means you can easily take advantage of the url helpers, like this:
115
+
116
+ # app/views/movies/show.html.erb
117
+ <%= like_button_for @movie, :href => movie_path(@movie) %>
118
+
119
+ See the complete list of allowed attributes and options [here](http://developers.facebook.com/docs/reference/plugins/like/).
120
+
121
+ ## Note on Patches/Pull Requests
122
+
123
+ * Fork the project.
124
+ * Make your feature addition or bug fix.
125
+ * Add tests for it. This is important so I don’t break it in a future version unintentionally.
126
+ * Send me a pull request. Bonus points for topic branches.
127
+
128
+
129
+ ## Copyright
130
+
131
+ Copyright &copy; 2011 Ruben Ascencio, released under the MIT license
132
+
133
+
134
+
135
+
136
+
137
+
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "acts_as_opengraph/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "acts_as_opengraph"
7
+ s.version = ActsAsOpengraph::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Ruben Ascencio"]
10
+ s.email = ["galateaweb@gmail.com"]
11
+ s.homepage = "https://github.com/rubenrails/acts_as_opengraph"
12
+ s.summary = %q{ActiveRecord extension that turns your models into graph objects}
13
+ s.description = %q{ActiveRecord extension that turns your models into graph objects. Includes helper methods for adding <meta> tags and the Like Button to your views.}
14
+
15
+ s.rubyforge_project = "acts_as_opengraph"
16
+
17
+ s.add_development_dependency('sqlite3')
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+ end
@@ -0,0 +1,121 @@
1
+ module ActiveRecord
2
+ module Acts
3
+ module Opengraph
4
+
5
+ def self.included(base)
6
+ base.extend ActMethods
7
+ end
8
+
9
+ module ActMethods
10
+ def acts_as_opengraph(options = {})
11
+ # don't allow multiple calls
12
+ return if included_modules.include? InstanceMethods
13
+
14
+ extend ClassMethods
15
+
16
+ opengraph_atts = %w(title type image url description site_name latitude longitude street_address locality region postal_code country_name email phone_number fax_number)
17
+
18
+ options[:columns] ||= {}
19
+ options[:values] ||= {}
20
+
21
+ opengraph_atts.each do |att_name|
22
+ options[:columns]["#{att_name}".to_sym] ||= alternative_column_name_for("og_#{att_name}".to_sym)
23
+ end
24
+
25
+ write_inheritable_attribute :opengraph_atts, opengraph_atts
26
+ class_inheritable_reader :opengraph_atts
27
+
28
+ write_inheritable_attribute :options, options
29
+ class_inheritable_reader :options
30
+
31
+ opengraph_atts.each do |att_name|
32
+ define_method "opengraph_#{att_name}" do
33
+ return_value_or_default att_name.to_sym
34
+ end
35
+ end
36
+
37
+ include InstanceMethods
38
+
39
+ end
40
+
41
+ end
42
+
43
+ module ClassMethods
44
+
45
+ private
46
+
47
+ # Returns a list of possible column names for a given attribute.
48
+ #
49
+ # @param [Symbol] att_name An opengraph attribute name prefixed with 'og_', i.e. :og_title, :og_type, etc
50
+ # @return [Array] A list of possible names for the given opengraph attribute
51
+ def alternative_names_for(att_name)
52
+ case att_name
53
+ when :og_title then [:title, :name]
54
+ when :og_type then [:kind, :category]
55
+ when :og_image then [:image, :photo, :picture, :thumb, :thumbnail]
56
+ when :og_url then [:url, :uri, :link]
57
+ when :og_description then [:description, :summary]
58
+ when :og_site_name then [:site, :website, :web]
59
+ when :og_latitude then [:latitude]
60
+ when :og_longitude then [:longitude]
61
+ when :og_street_address then [:street_address, :address, :street]
62
+ when :og_locality then [:locality]
63
+ when :og_region then [:region]
64
+ when :og_postal_code then [:postal_code, :zip_code, :zip]
65
+ when :og_country_name then [:country_name, :country]
66
+ when :og_email then [:email, :mail]
67
+ when :og_phone_number then [:phone_number, :phone]
68
+ when :og_fax_number then [:fax_number, :fax]
69
+ else []
70
+ end
71
+ end
72
+
73
+ # Tries to guess the column name for the given attribute. If it can't find any column (or similar) then it will create a virtual attribute
74
+ # for the object called: ATT_NAME_placeholder, so the object responds to that column.
75
+ #
76
+ # @param [Symbol] att_name An opengraph attribute name prefixed with 'og_', i.e. :og_title, :og_type, etc
77
+ # @return [String] The final name (found or created) for the opengraph attribute
78
+ def alternative_column_name_for(att_name)
79
+ alt_names = alternative_names_for(att_name)
80
+ columns_to_check = [att_name] + alt_names
81
+ columns_to_check.each do |column_name|
82
+ return column_name.to_sym if column_names.include?(column_name.to_s)
83
+ end
84
+
85
+ # Define placeholder method
86
+ ph_method_name = "#{alt_names.first}_placeholder"
87
+ define_method(ph_method_name) { "" }
88
+ ph_method_name
89
+ end
90
+
91
+ end
92
+
93
+ module InstanceMethods
94
+ # Returns an array of hashes representing the opengraph attribute/values for the Object.
95
+ #
96
+ # @return [Array] List of hashes representing opengraph attribute/values
97
+ # @example
98
+ # @movie.opengraph_data #=> {name=> "og:title", :value => "The Rock"}, {:name => "og:type", :value=> "movie"}
99
+ def opengraph_data
100
+ data_list = opengraph_atts.map do |att_name|
101
+ {:name => "og:#{att_name}", :value => self.send("opengraph_#{att_name}")}
102
+ end
103
+ data_list.delete_if{ |el| el[:value].blank? }
104
+ end
105
+
106
+
107
+ private
108
+
109
+ def return_value_or_default(att_name)
110
+ if options[:values].has_key?(att_name.to_sym)
111
+ options[:values][att_name]
112
+ else
113
+ self.send options[:columns]["#{att_name}".to_sym]
114
+ end
115
+ end
116
+
117
+ end
118
+
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,48 @@
1
+ module ActsAsOpengraphHelper
2
+ # Generates the opengraph meta tags for your views
3
+ #
4
+ # @param [Object, #opengraph_data] obj An instance of your ActiveRecord model that responds to opengraph_data
5
+ # @return [String] A set of meta tags describing your graph object based on the {http://ogp.me/ opengraph protocol}
6
+ # @raise [ArgumentError] When you pass an instance of an object that doesn't responds to opengraph_data (maybe you forgot to add acts_as_opengraph in your model)
7
+ # @example
8
+ # opengraph_meta_tags_for(@movie)
9
+ def opengraph_meta_tags_for(obj)
10
+ raise(ArgumentError.new, "You need to call acts_as_opengraph on your #{obj.class} model") unless obj.respond_to?(:opengraph_data)
11
+ tags = obj.opengraph_data.map do |att|
12
+ %(<meta name="#{att[:name].dasherize}" content="#{Rack::Utils.escape_html(att[:value])}"/>)
13
+ end
14
+ tags = tags.join("\n")
15
+ tags.respond_to?(:html_safe) ? tags.html_safe : tags
16
+ end
17
+
18
+ # Displays the Facebook Like Button in your views.
19
+ #
20
+ # @param [Object, #opengraph_data] obj An instance of your ActiveRecord model that responds to opengraph_data
21
+ # @param [Hash] options A Hash of {http://developers.facebook.com/docs/reference/plugins/like/ supported attributes}. Defaults to { :layout => :standard, :show_faces => false, :width => 450, :action => :like, :colorscheme => :light }
22
+ # @return [String] An iFrame version of the Facebook Like Button
23
+ # @raise [ArgumentError] When you pass an instance of an object that doesn't responds to opengraph_data (maybe you forgot to add acts_as_opengraph in your model)
24
+ # @example
25
+ # like_button_for(@movie)
26
+ # like_button_for(@movie, :layout => :button_count, :display_faces => true)
27
+ # @example Specifying href using rails helpers
28
+ # like_button_for(@movie, :href => movie_url(@movie))
29
+ def like_button_for(obj, options = {})
30
+ raise(ArgumentError.new, "You need to call acts_as_opengraph on your #{obj.class} model") unless obj.respond_to?(:opengraph_data)
31
+ href = options[:href] ? options[:href] : obj.opengraph_url
32
+ return unless href.present?
33
+
34
+ config = { :layout => :standard, :show_faces => false, :width => 450, :action => :like, :colorscheme => :light }
35
+ config.update(options) if options.is_a?(Hash)
36
+
37
+ o_layout = config[:layout].to_sym
38
+ if o_layout == :standard
39
+ config[:height] = config[:show_faces].to_s.to_sym == :true ? 80 : 35
40
+ elsif o_layout == :button_count
41
+ config[:height] = 21
42
+ elsif o_layout == :box_count
43
+ config[:height] = 65
44
+ end
45
+
46
+ %(<iframe src="http://www.facebook.com/plugins/like.php?href=#{CGI.escape(href)}&amp;layout=#{config[:layout]}&amp;show_faces=#{config[:show_faces]}&amp;width=#{config[:width]}&amp;action=#{config[:action]}&amp;colorscheme=#{config[:colorscheme]}&amp;height=#{config[:height]}" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:#{config[:width]}px; height:#{config[:height]}px;" allowTransparency="true"></iframe>)
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ module ActsAsOpengraph
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,10 @@
1
+ if defined? ActiveRecord::Base
2
+ require File.join(File.dirname(__FILE__), 'acts_as_opengraph', 'active_record', 'acts', 'opengraph')
3
+ ActiveRecord::Base.send :include, ActiveRecord::Acts::Opengraph
4
+ end
5
+
6
+ if defined? ActionView::Base
7
+ require File.join(File.dirname(__FILE__), 'acts_as_opengraph', 'helper', 'acts_as_opengraph_helper')
8
+ ActionView::Base.send :include, ActsAsOpengraphHelper
9
+ end
10
+
@@ -0,0 +1,109 @@
1
+ require File.join File.dirname(__FILE__), 'test_helper'
2
+
3
+ class Book < ActiveRecord::Base
4
+ acts_as_opengraph
5
+ end
6
+
7
+ class Movie < ActiveRecord::Base
8
+ acts_as_opengraph :values => {:type => "movie", :site_name => "IMDb"}, :columns => {:url => :imdb}
9
+
10
+ def opengraph_image
11
+ "http://ia.media-imdb.com/rock.jpg"
12
+ end
13
+
14
+ end
15
+
16
+ class Song < ActiveRecord::Base
17
+ # This model doesn't uses acts_as_opengraph
18
+ end
19
+
20
+ class MovieTest < Test::Unit::TestCase
21
+
22
+ include ActsAsOpengraphHelper
23
+
24
+ MOVIE_NAME = "The Rock"
25
+ MOVIE_DESCRIPTION = "A renegade general and his group of U.S. Marines take over Alcatraz and threaten San Francisco Bay with biological weapons."
26
+ MOVIE_URL = "http://www.imdb.com/title/tt0117500/"
27
+
28
+ GENERATED_OPENGRAPH_DATA = [
29
+ {:value=> MOVIE_NAME, :name=> "og:title"},
30
+ {:value=> "movie", :name=> "og:type"},
31
+ {:value=> "http://ia.media-imdb.com/rock.jpg", :name=> "og:image"},
32
+ {:value=> MOVIE_URL, :name=> "og:url"},
33
+ {:value=> MOVIE_DESCRIPTION, :name=> "og:description"},
34
+ {:value=> "IMDb", :name=> "og:site_name"}
35
+ ]
36
+
37
+ GENERATED_META_TAGS = %(<meta name="og:title" content="#{MOVIE_NAME}"/>
38
+ <meta name="og:type" content="movie"/>
39
+ <meta name="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
40
+ <meta name="og:url" content="#{MOVIE_URL}"/>
41
+ <meta name="og:description" content="#{MOVIE_DESCRIPTION}"/>
42
+ <meta name="og:site-name" content="IMDb"/>)
43
+
44
+ GENERATED_LIKE_BUTTON = %(<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.imdb.com%2Ftitle%2Ftt0117500%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>)
45
+ GENERATED_LIKE_BUTTON_CUSTOM_URL = %(<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fmovies%2F6&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>)
46
+ def setup
47
+ setup_db
48
+ assert @movie = Movie.create!(:title => MOVIE_NAME, :description => MOVIE_DESCRIPTION, :imdb => MOVIE_URL)
49
+ assert @song = Song.create!(:title => "Yellow Submarine")
50
+ assert @book = Book.create!(:title => "Getting real")
51
+ end
52
+
53
+ def teardown
54
+ teardown_db
55
+ end
56
+
57
+ def test_respond_to_opengraph_methods
58
+ assert_respond_to @movie, :opengraph_title
59
+ assert_respond_to @movie, :opengraph_type
60
+ assert_respond_to @movie, :opengraph_image
61
+ assert_respond_to @movie, :opengraph_url
62
+ assert_respond_to @movie, :opengraph_description
63
+ assert_respond_to @movie, :opengraph_site_name
64
+ assert_respond_to @movie, :opengraph_latitude
65
+ assert_respond_to @movie, :opengraph_longitude
66
+ assert_respond_to @movie, :opengraph_street_address
67
+ assert_respond_to @movie, :opengraph_locality
68
+ assert_respond_to @movie, :opengraph_region
69
+ assert_respond_to @movie, :opengraph_postal_code
70
+ assert_respond_to @movie, :opengraph_country_name
71
+ assert_respond_to @movie, :opengraph_email
72
+ assert_respond_to @movie, :opengraph_phone_number
73
+ assert_respond_to @movie, :opengraph_fax_number
74
+ assert_respond_to @movie, :opengraph_data
75
+ end
76
+
77
+ def test_opengraph_data
78
+ assert_equal GENERATED_OPENGRAPH_DATA, @movie.opengraph_data
79
+ end
80
+
81
+ def test_default_values
82
+ assert_equal "IMDb", @movie.opengraph_site_name
83
+ end
84
+
85
+ def test_method_overriding
86
+ assert_equal "http://ia.media-imdb.com/rock.jpg", @movie.opengraph_image
87
+ end
88
+
89
+ def test_different_column_name
90
+ assert_equal MOVIE_URL, @movie.opengraph_url
91
+ end
92
+
93
+ def test_meta_tags_helper
94
+ assert_equal GENERATED_META_TAGS, opengraph_meta_tags_for(@movie)
95
+ assert_raise(ArgumentError) { opengraph_meta_tags_for(@song) }
96
+ end
97
+
98
+ def test_like_button_helper
99
+ assert_equal GENERATED_LIKE_BUTTON, like_button_for(@movie)
100
+ assert_equal GENERATED_LIKE_BUTTON_CUSTOM_URL, like_button_for(@movie, :href => "http://example.com/movies/6")
101
+
102
+ # There's no way of getting the href attribute for this Book, so it returns nil
103
+ assert_nil like_button_for(@book)
104
+
105
+ # We aren't using acts_as_opengraph for this model, so it should let us know
106
+ assert_raise(ArgumentError) { like_button_for(@song) }
107
+ end
108
+
109
+ end
@@ -0,0 +1,48 @@
1
+ plugin_path = File.join File.dirname(__FILE__), '..'
2
+
3
+ require 'test/unit'
4
+
5
+ require 'rubygems'
6
+ require 'active_record'
7
+ require 'action_view'
8
+
9
+
10
+
11
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
12
+ $stdout = StringIO.new
13
+
14
+ def setup_db
15
+ ActiveRecord::Base.logger
16
+ ActiveRecord::Schema.define(:version => 1) do
17
+
18
+ create_table :books, :force => true do |t|
19
+ t.string :title
20
+ end
21
+
22
+ create_table :movies, :force => true do |t|
23
+ t.string :title
24
+ t.string :description
25
+ t.string :imdb
26
+ end
27
+
28
+ create_table :songs, :force => true do |t|
29
+ t.string :title
30
+ end
31
+
32
+ end
33
+ end
34
+
35
+ def teardown_db
36
+ ActiveRecord::Base.connection.tables.each do |table|
37
+ ActiveRecord::Base.connection.drop_table(table)
38
+ end
39
+ end
40
+
41
+ setup_db
42
+
43
+
44
+ $:.unshift File.join plugin_path, 'lib'
45
+
46
+ require 'acts_as_opengraph/active_record/acts/opengraph'
47
+ require 'acts_as_opengraph/helper/acts_as_opengraph_helper'
48
+ require 'acts_as_opengraph'
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_opengraph
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Ruben Ascencio
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-22 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: sqlite3
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ description: ActiveRecord extension that turns your models into graph objects. Includes helper methods for adding <meta> tags and the Like Button to your views.
36
+ email:
37
+ - galateaweb@gmail.com
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - .gitignore
46
+ - Gemfile
47
+ - LICENSE
48
+ - README.markdown
49
+ - Rakefile
50
+ - acts_as_opengraph.gemspec
51
+ - lib/acts_as_opengraph.rb
52
+ - lib/acts_as_opengraph/active_record/acts/opengraph.rb
53
+ - lib/acts_as_opengraph/helper/acts_as_opengraph_helper.rb
54
+ - lib/acts_as_opengraph/version.rb
55
+ - test/opengraph_test.rb
56
+ - test/test_helper.rb
57
+ has_rdoc: true
58
+ homepage: https://github.com/rubenrails/acts_as_opengraph
59
+ licenses: []
60
+
61
+ post_install_message:
62
+ rdoc_options: []
63
+
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 3
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ requirements: []
85
+
86
+ rubyforge_project: acts_as_opengraph
87
+ rubygems_version: 1.5.0
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: ActiveRecord extension that turns your models into graph objects
91
+ test_files:
92
+ - test/opengraph_test.rb
93
+ - test/test_helper.rb