cornflakeomnisocial 0.1.2.3 → 0.1.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -10,7 +10,7 @@ To use OmniSocial in a Rails 3 application:
10
10
 
11
11
  2. Install it by running `bundle`.
12
12
 
13
- 3. Run `rails g omnisocial` to copy an initializer and some CSS and image assets into your base application directory.
13
+ 3. Run `rails g omnisocial` to copy an initializer, database migration and some CSS and image assets into your base application directory.
14
14
 
15
15
  4. Edit `config/initializers/omnisocial.rb` and include your application's Twitter and Facebook OAuth configuration.
16
16
 
@@ -25,13 +25,13 @@ module Omnisocial
25
25
  flash[:message] = 'You have logged in successfully.'
26
26
  redirect_back_or_default(root_path)
27
27
  else
28
- @user = ::User.new(:display_name => @account.name)
28
+ @user = User.new(:display_name => @account.name)
29
29
  end
30
30
  end
31
31
 
32
32
  def confirm
33
33
  @account = Omnisocial::LoginAccount.find(params[:account_id])
34
- @user = ::User.new(params[:user].merge(:picture_url => @account.picture_url))
34
+ @user = User.new(params[:omnisocial_user].merge(:picture_url => @account.picture_url))
35
35
  if @user.save
36
36
  @account.update_attributes(:user => @user)
37
37
  self.current_user = @user
@@ -5,14 +5,13 @@ module Omnisocial
5
5
  self.remote_account_id = auth_hash['uid']
6
6
  self.login = auth_hash['user_info']['nickname']
7
7
  self.name = auth_hash['user_info']['name']
8
- self.picture_url = generate_picture_url
9
8
  end
10
9
 
11
10
  def account_url
12
11
  "http://facebook.com/#{self.login}"
13
12
  end
14
13
 
15
- def generate_picture_url
14
+ def picture_url
16
15
  if self.login.include?('profile.php')
17
16
  "https://graph.facebook.com/#{self.login.gsub(/[^\d]/, '')}/picture?type=square"
18
17
  else
@@ -1,19 +1,9 @@
1
1
  module Omnisocial
2
- class LoginAccount
3
- include Mongoid::Document
4
- include Mongoid::Timestamps
5
-
6
- referenced_in :user
7
-
8
- field :token
9
- field :secret
10
- field :remote_account_id
11
- field :name
12
- field :login
13
- field :picture_url
2
+ class LoginAccount < ActiveRecord::Base
3
+ belongs_to :user
14
4
 
15
5
  def self.find_or_create_from_auth_hash(auth_hash)
16
- if (account = first(:conditions => {:remote_account_id => auth_hash['uid']}))
6
+ if (account = find_by_remote_account_id(auth_hash['uid']))
17
7
  account.assign_account_info(auth_hash)
18
8
  account.save
19
9
  account
@@ -23,10 +13,9 @@ module Omnisocial
23
13
  end
24
14
 
25
15
  def self.create_from_auth_hash(auth_hash)
26
- account = create!
27
- account.assign_account_info(auth_hash)
28
- account.save
29
- account
16
+ create do |account|
17
+ account.assign_account_info(auth_hash)
18
+ end
30
19
  end
31
20
 
32
21
  end
@@ -1,15 +1,6 @@
1
1
  module Omnisocial
2
- class User
3
- include Mongoid::Document
4
- include Mongoid::Timestamps
5
-
6
- field :remember_token
7
- field :display_name
8
- field :email_address
9
- field :picture_url
10
-
11
- references_many :login_accounts, :class_name => 'Omnisocial::LoginAccount', :dependent => :destroy
12
-
2
+ class User < ActiveRecord::Base
3
+ has_many :login_accounts, :class_name => 'Omnisocial::LoginAccount', :dependent => :destroy
13
4
  validates_presence_of :display_name, :email_address
14
5
 
15
6
  def facebook_account
@@ -32,9 +32,9 @@ class ActionController::Base
32
32
 
33
33
  def current_user
34
34
  @current_user ||= if session[:user_id]
35
- User.first(:conditions => {:id => session[:user_id]})
35
+ User.find_by_id(session[:user_id])
36
36
  elsif cookies[:remember_token]
37
- User.first(:conditions => {:remember_token => cookies[:remember_token]})
37
+ User.find_by_remember_token(cookies[:remember_token])
38
38
  else
39
39
  false
40
40
  end
@@ -1,16 +1,31 @@
1
1
  require 'rails/generators'
2
+ require 'rails/generators/migration'
2
3
 
3
4
  module Omnisocial
4
5
  module Generators
5
6
  class OmnisocialGenerator < Rails::Generators::Base
6
7
  include Rails::Generators::Migration
7
8
 
8
- desc 'Creates an omnisocial initializer and copies image and CSS assets.'
9
+ desc 'Creates an omnisocial initializer and migration, and copies image and CSS assets.'
9
10
 
10
11
  def self.source_root
11
12
  File.join(File.dirname(__FILE__), 'templates')
12
13
  end
13
14
 
15
+ # Implement the required interface for Rails::Generators::Migration:
16
+ # http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
17
+ def self.next_migration_number(dirname)
18
+ if ActiveRecord::Base.timestamped_migrations
19
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
20
+ else
21
+ "%.3d" % (current_migration_number(dirname) + 1)
22
+ end
23
+ end
24
+
25
+ def create_migration_file
26
+ migration_template 'migration.rb', 'db/migrate/create_omnisocial_tables.rb'
27
+ end
28
+
14
29
  def copy_initializer
15
30
  template 'omnisocial.rb', 'config/initializers/omnisocial.rb'
16
31
  end
@@ -0,0 +1,35 @@
1
+ class CreateOmnisocialTables < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :users do |t|
4
+ t.string :remember_token
5
+ # Any additional fields here
6
+ t.string :display_name
7
+ t.string :email_address
8
+ t.string :picture_url
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ create_table :login_accounts do |t|
14
+ t.string :type
15
+ t.string :user_id
16
+ t.string :remote_account_id
17
+ t.string :name
18
+ t.string :login
19
+ t.string :picture_url
20
+ # Any additional fields here
21
+
22
+ t.timestamps
23
+ end
24
+
25
+ add_index :login_accounts, :user_id
26
+ add_index :login_accounts, :type
27
+ end
28
+
29
+ def self.down
30
+ remove_index :login_accounts, :type
31
+ remove_index :login_accounts, :user_id
32
+ drop_table :login_accounts
33
+ drop_table :users
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
1
  module Omnisocial
2
- VERSION = '0.1.2.3'.freeze
2
+ VERSION = '0.1.2.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cornflakeomnisocial
3
3
  version: !ruby/object:Gem::Version
4
- hash: 73
4
+ hash: 71
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
9
  - 2
10
- - 3
11
- version: 0.1.2.3
10
+ - 4
11
+ version: 0.1.2.4
12
12
  platform: ruby
13
13
  authors:
14
14
  - Jason Kotchoff
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-01-10 00:00:00 +11:00
19
+ date: 2011-01-17 00:00:00 +11:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -77,6 +77,7 @@ extra_rdoc_files: []
77
77
  files:
78
78
  - README.md
79
79
  - lib/generators/omnisocial/templates/omnisocial.rb
80
+ - lib/generators/omnisocial/templates/migration.rb
80
81
  - lib/generators/omnisocial/templates/assets/images/signin_twitter.png
81
82
  - lib/generators/omnisocial/templates/assets/images/twitter.gif
82
83
  - lib/generators/omnisocial/templates/assets/images/signin_facebook.png