acts_as_oauth_accessible 0.0.1 → 0.1.0
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/Rakefile +2 -0
- data/VERSION +1 -1
- data/acts_as_oauth_accessible.gemspec +64 -0
- data/generators/acts_as_oauth_accessible_generator.rb +14 -0
- data/generators/templates/config/oauth_providers.yml +25 -0
- data/generators/templates/db/migration.rb +18 -0
- data/generators/templates/models/consumer_token.rb +29 -0
- data/init.rb +1 -0
- data/lib/acts_as_oauth_accessible.rb +17 -13
- data/lib/acts_as_oauth_accessible/railtie.rb +16 -0
- data/lib/generators/acts_as_oauth_accessible_generator.rb +26 -0
- data/lib/generators/templates/config/oauth_providers.yml +25 -0
- data/lib/generators/templates/db/migration.rb +18 -0
- data/lib/generators/templates/models/consumer_token.rb +29 -0
- data/rails/init.rb +9 -0
- data/spec/acts_as_oauth_accessible_spec.rb +0 -3
- data/spec/spec_helper.rb +1 -0
- metadata +20 -7
- data/.document +0 -5
- data/.gitignore +0 -21
- data/spec/spec.opts +0 -1
data/Rakefile
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
2
|
require 'rake'
|
|
3
|
+
gem 'rspec', '>= 1.2.9', '< 1.9.9'
|
|
3
4
|
|
|
4
5
|
begin
|
|
5
6
|
require 'jeweler'
|
|
@@ -12,6 +13,7 @@ begin
|
|
|
12
13
|
gem.authors = ["SAWADA Tadashi"]
|
|
13
14
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
|
14
15
|
gem.add_dependency "oauth", ">= 0.4.0"
|
|
16
|
+
gem.files = FileList['lib/**/*', 'generators/**/*', 'rails/**/*', 'init.rb', 'LICENSE', 'README.rdoc', 'Rakefile', 'VERSION', '*.gemspec'].to_a
|
|
15
17
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
16
18
|
end
|
|
17
19
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0
|
|
1
|
+
0.1.0
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = %q{acts_as_oauth_accessible}
|
|
8
|
+
s.version = "0.1.0"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["SAWADA Tadashi"]
|
|
12
|
+
s.date = %q{2010-09-03}
|
|
13
|
+
s.description = %q{Rails plugin that enables your models to access OAuth services}
|
|
14
|
+
s.email = %q{cesare@mayverse.jp}
|
|
15
|
+
s.extra_rdoc_files = [
|
|
16
|
+
"LICENSE",
|
|
17
|
+
"README.rdoc"
|
|
18
|
+
]
|
|
19
|
+
s.files = [
|
|
20
|
+
"LICENSE",
|
|
21
|
+
"README.rdoc",
|
|
22
|
+
"Rakefile",
|
|
23
|
+
"VERSION",
|
|
24
|
+
"acts_as_oauth_accessible.gemspec",
|
|
25
|
+
"generators/acts_as_oauth_accessible_generator.rb",
|
|
26
|
+
"generators/templates/config/oauth_providers.yml",
|
|
27
|
+
"generators/templates/db/migration.rb",
|
|
28
|
+
"generators/templates/models/consumer_token.rb",
|
|
29
|
+
"init.rb",
|
|
30
|
+
"lib/acts_as_oauth_accessible.rb",
|
|
31
|
+
"lib/acts_as_oauth_accessible/railtie.rb",
|
|
32
|
+
"lib/generators/acts_as_oauth_accessible_generator.rb",
|
|
33
|
+
"lib/generators/templates/config/oauth_providers.yml",
|
|
34
|
+
"lib/generators/templates/db/migration.rb",
|
|
35
|
+
"lib/generators/templates/models/consumer_token.rb",
|
|
36
|
+
"rails/init.rb"
|
|
37
|
+
]
|
|
38
|
+
s.homepage = %q{http://github.com/cesare/acts_as_oauth_accessible}
|
|
39
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
40
|
+
s.require_paths = ["lib"]
|
|
41
|
+
s.rubygems_version = %q{1.3.7}
|
|
42
|
+
s.summary = %q{enables your Rails models to OAuth-access}
|
|
43
|
+
s.test_files = [
|
|
44
|
+
"spec/acts_as_oauth_accessible_spec.rb",
|
|
45
|
+
"spec/spec_helper.rb"
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
if s.respond_to? :specification_version then
|
|
49
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
50
|
+
s.specification_version = 3
|
|
51
|
+
|
|
52
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
53
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
|
54
|
+
s.add_runtime_dependency(%q<oauth>, [">= 0.4.0"])
|
|
55
|
+
else
|
|
56
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
|
57
|
+
s.add_dependency(%q<oauth>, [">= 0.4.0"])
|
|
58
|
+
end
|
|
59
|
+
else
|
|
60
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
|
61
|
+
s.add_dependency(%q<oauth>, [">= 0.4.0"])
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class ActsAsOauthAccessibleGenerator < Rails::Generator::Base
|
|
2
|
+
|
|
3
|
+
def manifest
|
|
4
|
+
record do |m|
|
|
5
|
+
m.template 'config/oauth_providers.yml', 'config/oauth_providers.yml'
|
|
6
|
+
m.template 'models/consumer_token.rb', 'app/models/consumer_token.rb'
|
|
7
|
+
|
|
8
|
+
m.migration_template 'db/migration.rb', 'db/migrate', :assigns => {
|
|
9
|
+
:migration_name => "CreateConsumerTokens"
|
|
10
|
+
}, :migration_file_name => "create_consumer_tokens"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
development:
|
|
2
|
+
twitter:
|
|
3
|
+
key: YOUR_CONSUMER_KEY
|
|
4
|
+
secret: YOUR_CONSUMER_SECRET
|
|
5
|
+
options:
|
|
6
|
+
site: http://twitter.com
|
|
7
|
+
google:
|
|
8
|
+
key: YOUR_CONSUMER_KEY
|
|
9
|
+
secret: YOUR_CONSUMER_SECRET
|
|
10
|
+
options:
|
|
11
|
+
site: http://www.google.com
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
test:
|
|
15
|
+
twitter:
|
|
16
|
+
key: YOUR_CONSUMER_KEY
|
|
17
|
+
secret: YOUR_CONSUMER_SECRET
|
|
18
|
+
options:
|
|
19
|
+
site: http://twitter.com
|
|
20
|
+
google:
|
|
21
|
+
key: YOUR_CONSUMER_KEY
|
|
22
|
+
secret: YOUR_CONSUMER_SECRET
|
|
23
|
+
options:
|
|
24
|
+
site: http://www.google.com
|
|
25
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class CreateConsumerTokens < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :consumer_tokens do |t|
|
|
4
|
+
t.string :oauth_accessible_type, :null => false, :limit => 30
|
|
5
|
+
t.integer :oauth_accessible_id, :null => false
|
|
6
|
+
|
|
7
|
+
t.string :type, :null => false, :limit => 30
|
|
8
|
+
t.string :provider, :null => false, :limit => 50
|
|
9
|
+
t.string :token, :null => false, :limit => 1024
|
|
10
|
+
t.string :secret, :null => false, :limit => 255
|
|
11
|
+
t.timestamps
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.down
|
|
16
|
+
drop_table :consumer_tokens
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class ConsumerToken < ActiveRecord::Base
|
|
2
|
+
#
|
|
3
|
+
# associations
|
|
4
|
+
#
|
|
5
|
+
belongs_to :oauth_accessible, :polymorphic => true
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
#
|
|
9
|
+
# callback
|
|
10
|
+
#
|
|
11
|
+
before_validation :fix_provider
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# callback methods
|
|
16
|
+
#
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def fix_provider
|
|
20
|
+
self.provider = provider.to_s
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# named scopes
|
|
26
|
+
#
|
|
27
|
+
named_scope :for, Proc.new {|name| { :conditions => ["provider = ?", name.to_s] }}
|
|
28
|
+
|
|
29
|
+
end
|
data/init.rb
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "rails", "init")
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
require 'oauth'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
if defined?(Rails) && Rails.version >= '3.0.0'
|
|
4
|
+
require File.join(File.dirname(__FILE__), "acts_as_oauth_accessible", "railtie")
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
module ActsAsOauthAccessible
|
|
4
9
|
def self.init(hash)
|
|
5
10
|
@config = Config.new(hash)
|
|
11
|
+
if defined? ActiveRecord::Base
|
|
12
|
+
ActiveRecord::Base.send :include, ActsAsOauthAccessible
|
|
13
|
+
end
|
|
6
14
|
end
|
|
7
15
|
|
|
8
16
|
def self.config
|
|
@@ -11,7 +19,11 @@ module ActsAsOAuthAccessible
|
|
|
11
19
|
|
|
12
20
|
module ClassMethods
|
|
13
21
|
def acts_as_oauth_consumer
|
|
14
|
-
self.include InstanceMethods
|
|
22
|
+
self.send :include, InstanceMethods
|
|
23
|
+
self.class_eval do
|
|
24
|
+
has_many :consumer_tokens, :as => :oauth_accessible
|
|
25
|
+
has_many :consumer_access_tokens, :as => :oauth_accessible
|
|
26
|
+
end
|
|
15
27
|
end
|
|
16
28
|
end
|
|
17
29
|
|
|
@@ -41,9 +53,8 @@ module ActsAsOAuthAccessible
|
|
|
41
53
|
|
|
42
54
|
end
|
|
43
55
|
|
|
44
|
-
def self.included(
|
|
45
|
-
|
|
46
|
-
receiver.send :include, InstanceMethods
|
|
56
|
+
def self.included(base)
|
|
57
|
+
base.send :extend, ClassMethods
|
|
47
58
|
end
|
|
48
59
|
|
|
49
60
|
class Config
|
|
@@ -62,14 +73,7 @@ module ActsAsOAuthAccessible
|
|
|
62
73
|
@name = name
|
|
63
74
|
@key = entry['key']
|
|
64
75
|
@secret = entry['secret']
|
|
65
|
-
options =
|
|
66
|
-
entry.each do |k,v|
|
|
67
|
-
key = k.to_sym
|
|
68
|
-
unless key == :key || key == :secret
|
|
69
|
-
options[key] = v
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
@options = options
|
|
76
|
+
@options = entry['options']
|
|
73
77
|
end
|
|
74
78
|
|
|
75
79
|
def create_consumer
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module ActsAsOauthAccessible
|
|
2
|
+
class Railtie < Rails::Railtie
|
|
3
|
+
initializer "acts_as_oauth_accessible.configure_rails_initialization" do |app|
|
|
4
|
+
filename = File.join(Rails.root, 'config', 'oauth_providers.yml')
|
|
5
|
+
if File.exists? filename
|
|
6
|
+
require 'yaml'
|
|
7
|
+
source = YAML.load_file(filename)
|
|
8
|
+
ActsAsOauthAccessible.init(source[Rails.env])
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
generators do
|
|
13
|
+
require File.join(File.dirname(__FILE__), '..', 'generators', 'acts_as_oauth_accessible_generator')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'rails/generators/migration'
|
|
2
|
+
require 'rails/generators/active_record'
|
|
3
|
+
|
|
4
|
+
class ActsAsOauthAccessibleGenerator < Rails::Generators::Base
|
|
5
|
+
include Rails::Generators::Migration
|
|
6
|
+
|
|
7
|
+
def self.source_root
|
|
8
|
+
@source_root ||= File.expand_path('../templates', __FILE__)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.next_migration_number(path)
|
|
12
|
+
ActiveRecord::Generators::Base.next_migration_number(path)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def copy_config_files
|
|
16
|
+
copy_file('config/oauth_providers.yml', 'config/oauth_providers.yml')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def copy_models
|
|
20
|
+
template 'models/consumer_token.rb', 'app/models/consumer_token.rb'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def copy_migration_file
|
|
24
|
+
migration_template 'db/migration.rb', 'db/migrate/create_consumer_tokens'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
development:
|
|
2
|
+
twitter:
|
|
3
|
+
key: YOUR_CONSUMER_KEY
|
|
4
|
+
secret: YOUR_CONSUMER_SECRET
|
|
5
|
+
options:
|
|
6
|
+
site: http://twitter.com
|
|
7
|
+
google:
|
|
8
|
+
key: YOUR_CONSUMER_KEY
|
|
9
|
+
secret: YOUR_CONSUMER_SECRET
|
|
10
|
+
options:
|
|
11
|
+
site: http://www.google.com
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
test:
|
|
15
|
+
twitter:
|
|
16
|
+
key: YOUR_CONSUMER_KEY
|
|
17
|
+
secret: YOUR_CONSUMER_SECRET
|
|
18
|
+
options:
|
|
19
|
+
site: http://twitter.com
|
|
20
|
+
google:
|
|
21
|
+
key: YOUR_CONSUMER_KEY
|
|
22
|
+
secret: YOUR_CONSUMER_SECRET
|
|
23
|
+
options:
|
|
24
|
+
site: http://www.google.com
|
|
25
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class CreateConsumerTokens < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :consumer_tokens do |t|
|
|
4
|
+
t.string :oauth_accessible_type, :null => false, :limit => 30
|
|
5
|
+
t.integer :oauth_accessible_id, :null => false
|
|
6
|
+
|
|
7
|
+
t.string :type, :null => false, :limit => 30
|
|
8
|
+
t.string :provider, :null => false, :limit => 50
|
|
9
|
+
t.string :token, :null => false, :limit => 1024
|
|
10
|
+
t.string :secret, :null => false, :limit => 255
|
|
11
|
+
t.timestamps
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.down
|
|
16
|
+
drop_table :consumer_tokens
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class ConsumerToken < ActiveRecord::Base
|
|
2
|
+
#
|
|
3
|
+
# associations
|
|
4
|
+
#
|
|
5
|
+
belongs_to :oauth_accessible, :polymorphic => true
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
#
|
|
9
|
+
# callback
|
|
10
|
+
#
|
|
11
|
+
before_validation :fix_provider
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# callback methods
|
|
16
|
+
#
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def fix_provider
|
|
20
|
+
self.provider = provider.to_s
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# named scopes
|
|
26
|
+
#
|
|
27
|
+
named_scope :for, Proc.new {|name| { :conditions => ["provider = ?", name.to_s] }}
|
|
28
|
+
|
|
29
|
+
end
|
data/rails/init.rb
ADDED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
|
4
4
|
prerelease: false
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
|
-
- 0
|
|
8
7
|
- 1
|
|
9
|
-
|
|
8
|
+
- 0
|
|
9
|
+
version: 0.1.0
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- SAWADA Tadashi
|
|
@@ -14,13 +14,14 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-
|
|
17
|
+
date: 2010-09-03 00:00:00 +09:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: rspec
|
|
22
22
|
prerelease: false
|
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
24
25
|
requirements:
|
|
25
26
|
- - ">="
|
|
26
27
|
- !ruby/object:Gem::Version
|
|
@@ -35,6 +36,7 @@ dependencies:
|
|
|
35
36
|
name: oauth
|
|
36
37
|
prerelease: false
|
|
37
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
38
40
|
requirements:
|
|
39
41
|
- - ">="
|
|
40
42
|
- !ruby/object:Gem::Version
|
|
@@ -55,15 +57,24 @@ extra_rdoc_files:
|
|
|
55
57
|
- LICENSE
|
|
56
58
|
- README.rdoc
|
|
57
59
|
files:
|
|
58
|
-
- .document
|
|
59
|
-
- .gitignore
|
|
60
60
|
- LICENSE
|
|
61
61
|
- README.rdoc
|
|
62
62
|
- Rakefile
|
|
63
63
|
- VERSION
|
|
64
|
+
- acts_as_oauth_accessible.gemspec
|
|
65
|
+
- generators/acts_as_oauth_accessible_generator.rb
|
|
66
|
+
- generators/templates/config/oauth_providers.yml
|
|
67
|
+
- generators/templates/db/migration.rb
|
|
68
|
+
- generators/templates/models/consumer_token.rb
|
|
69
|
+
- init.rb
|
|
64
70
|
- lib/acts_as_oauth_accessible.rb
|
|
71
|
+
- lib/acts_as_oauth_accessible/railtie.rb
|
|
72
|
+
- lib/generators/acts_as_oauth_accessible_generator.rb
|
|
73
|
+
- lib/generators/templates/config/oauth_providers.yml
|
|
74
|
+
- lib/generators/templates/db/migration.rb
|
|
75
|
+
- lib/generators/templates/models/consumer_token.rb
|
|
76
|
+
- rails/init.rb
|
|
65
77
|
- spec/acts_as_oauth_accessible_spec.rb
|
|
66
|
-
- spec/spec.opts
|
|
67
78
|
- spec/spec_helper.rb
|
|
68
79
|
has_rdoc: true
|
|
69
80
|
homepage: http://github.com/cesare/acts_as_oauth_accessible
|
|
@@ -75,6 +86,7 @@ rdoc_options:
|
|
|
75
86
|
require_paths:
|
|
76
87
|
- lib
|
|
77
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
78
90
|
requirements:
|
|
79
91
|
- - ">="
|
|
80
92
|
- !ruby/object:Gem::Version
|
|
@@ -82,6 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
82
94
|
- 0
|
|
83
95
|
version: "0"
|
|
84
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
|
+
none: false
|
|
85
98
|
requirements:
|
|
86
99
|
- - ">="
|
|
87
100
|
- !ruby/object:Gem::Version
|
|
@@ -91,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
91
104
|
requirements: []
|
|
92
105
|
|
|
93
106
|
rubyforge_project:
|
|
94
|
-
rubygems_version: 1.3.
|
|
107
|
+
rubygems_version: 1.3.7
|
|
95
108
|
signing_key:
|
|
96
109
|
specification_version: 3
|
|
97
110
|
summary: enables your Rails models to OAuth-access
|
data/.document
DELETED
data/.gitignore
DELETED
data/spec/spec.opts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
--color
|