exvo-auth 0.9.10 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,21 +1,2 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
1
+ .bundle
2
+ pkg
@@ -0,0 +1,56 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ exvo-auth (0.9.10)
5
+ activemodel (> 3.0.0)
6
+ httparty (~> 0.6.1)
7
+ oa-oauth (~> 0.0.4)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ activemodel (3.0.3)
13
+ activesupport (= 3.0.3)
14
+ builder (~> 2.1.2)
15
+ i18n (~> 0.4)
16
+ activesupport (3.0.3)
17
+ addressable (2.2.2)
18
+ builder (2.1.2)
19
+ crack (0.1.8)
20
+ faraday (0.4.6)
21
+ addressable (>= 2.1.1)
22
+ rack (>= 1.0.1)
23
+ httparty (0.6.1)
24
+ crack (= 0.1.8)
25
+ i18n (0.4.2)
26
+ mocha (0.9.9)
27
+ rake
28
+ multi_json (0.0.5)
29
+ nokogiri (1.4.3.1)
30
+ oa-core (0.0.5)
31
+ rack (~> 1.1)
32
+ oa-oauth (0.0.5)
33
+ multi_json (~> 0.0.2)
34
+ nokogiri (~> 1.4.2)
35
+ oa-core (= 0.0.5)
36
+ oauth (~> 0.4.0)
37
+ oauth2 (~> 0.0.10)
38
+ oauth (0.4.4)
39
+ oauth2 (0.0.13)
40
+ faraday (~> 0.4.1)
41
+ multi_json (>= 0.0.4)
42
+ rack (1.2.1)
43
+ rake (0.8.7)
44
+ test-unit (2.1.1)
45
+
46
+ PLATFORMS
47
+ ruby
48
+
49
+ DEPENDENCIES
50
+ activemodel (> 3.0.0)
51
+ bundler (~> 1.0.0)
52
+ exvo-auth!
53
+ httparty (~> 0.6.1)
54
+ mocha (~> 0.9.8)
55
+ oa-oauth (~> 0.0.4)
56
+ test-unit (~> 2.1.0)
@@ -14,8 +14,9 @@ Gem::Specification.new do |s|
14
14
  s.required_rubygems_version = ">= 1.3.6"
15
15
  s.rubyforge_project = "exvo-auth"
16
16
 
17
- s.add_dependency "oa-oauth", "~> 0.0.4"
18
- s.add_dependency "httparty", "~> 0.6.1"
17
+ s.add_dependency "oa-oauth", "~> 0.0.4"
18
+ s.add_dependency "httparty", "~> 0.6.1"
19
+ s.add_dependency "activemodel", "> 3.0.0"
19
20
 
20
21
  s.add_development_dependency "mocha", "~> 0.9.8"
21
22
  s.add_development_dependency "test-unit", "~> 2.1.0"
@@ -23,6 +23,10 @@ module ExvoAuth
23
23
  autoload :Merb, 'exvo_auth/controllers/merb'
24
24
  end
25
25
 
26
+ module Models
27
+ autoload :Message, 'exvo_auth/models/message'
28
+ end
29
+
26
30
  module Autonomous
27
31
  autoload :Base, 'exvo_auth/autonomous/base'
28
32
  autoload :Consumer, 'exvo_auth/autonomous/consumer'
@@ -49,4 +49,8 @@ module ExvoAuth::Config
49
49
  def self.require_ssl=(require_ssl)
50
50
  @@require_ssl = require_ssl
51
51
  end
52
+
53
+ def self.cfs_id
54
+ "fb0e7bd5864aa0186630212d800af8a6"
55
+ end
52
56
  end
@@ -0,0 +1,72 @@
1
+ class ExvoAuth::Models::Message
2
+ include ActiveModel::Validations
3
+ include ActiveModel::Serialization
4
+
5
+ class RecordInvalid < StandardError; end
6
+ class RecordNotFound < StandardError; end
7
+
8
+ validates :label, :presence => true, :format => /^[_a-z0-9]+$/ix
9
+ validates :text, :presence => true
10
+ validates :user_uid, :presence => true, :numericality => true
11
+
12
+ attr_accessor :id, :label, :text, :user_uid, :created_at, :read
13
+
14
+ def initialize(attributes = {})
15
+ attributes.each do |name, value|
16
+ send("#{name}=", value)
17
+ end
18
+ end
19
+
20
+ def self.create(attributes = {})
21
+ message = new(attributes)
22
+ if message.valid?
23
+ message.deliver
24
+ message
25
+ else
26
+ raise RecordInvalid, message.errors.full_messages.join(", ")
27
+ end
28
+ end
29
+
30
+ def self.all
31
+ auth = ExvoAuth::Autonomous::Auth.instance
32
+ response = auth.get("/api/private/app_messages.json")
33
+ response.map{ |m| new(m) }
34
+ end
35
+
36
+ def self.find(id)
37
+ auth = ExvoAuth::Autonomous::Auth.instance
38
+ response = auth.get("/api/private/app_messages/#{id}.json")
39
+ if response.code == 200
40
+ new(response)
41
+ else
42
+ raise RecordNotFound, "Couldn't find #{model_name} with ID=#{id}"
43
+ end
44
+ end
45
+
46
+ def deliver
47
+ auth = ExvoAuth::Autonomous::Auth.instance
48
+ attributes = {
49
+ :label => label,
50
+ :text => text,
51
+ :user_uid => user_uid
52
+ }
53
+ response = auth.post("/api/private/app_messages.json", :body => attributes)
54
+ case response.code
55
+ when 201 then
56
+ response.parsed_response.each do |k, v|
57
+ send("#{k}=", v)
58
+ end
59
+ when 422 then
60
+ response.parsed_response.each{ |attr, error| errors.add(attr, error) }
61
+ raise RecordInvalid, errors.full_messages.join(", ")
62
+ else
63
+ raise "Unknown error"
64
+ end
65
+
66
+ end
67
+
68
+ def persisted?
69
+ !!id
70
+ end
71
+
72
+ end
@@ -0,0 +1,20 @@
1
+ # TODO: activemodel with validations
2
+ class ExvoAuth::Sharing
3
+ def self.create(attrs = {})
4
+ new(attrs).save
5
+ end
6
+
7
+ protected
8
+
9
+ def save
10
+ if true
11
+ cfs.post("/sharings", :query => { :document_id => attrs[:document_id], :sharing => { :email => attrs[:email], :user_uid => attrs[:user_uid] } })
12
+ else
13
+ # TODO: append errors on errors from cfs too.
14
+ end
15
+ end
16
+
17
+ def cfs
18
+ @cfs ||= Autonomous::Consumer.new(:app_id => Config.cfs_id)
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module ExvoAuth
2
- VERSION = "0.9.10"
2
+ VERSION = "0.10.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exvo-auth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 47
4
+ hash: 55
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 9
9
8
  - 10
10
- version: 0.9.10
9
+ - 0
10
+ version: 0.10.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jacek Becela
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-28 00:00:00 +02:00
18
+ date: 2010-11-29 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -51,9 +51,25 @@ dependencies:
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- name: mocha
54
+ name: activemodel
55
55
  prerelease: false
56
56
  requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">"
60
+ - !ruby/object:Gem::Version
61
+ hash: 7
62
+ segments:
63
+ - 3
64
+ - 0
65
+ - 0
66
+ version: 3.0.0
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: mocha
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
57
73
  none: false
58
74
  requirements:
59
75
  - - ~>
@@ -65,11 +81,11 @@ dependencies:
65
81
  - 8
66
82
  version: 0.9.8
67
83
  type: :development
68
- version_requirements: *id003
84
+ version_requirements: *id004
69
85
  - !ruby/object:Gem::Dependency
70
86
  name: test-unit
71
87
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
73
89
  none: false
74
90
  requirements:
75
91
  - - ~>
@@ -81,11 +97,11 @@ dependencies:
81
97
  - 0
82
98
  version: 2.1.0
83
99
  type: :development
84
- version_requirements: *id004
100
+ version_requirements: *id005
85
101
  - !ruby/object:Gem::Dependency
86
102
  name: bundler
87
103
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
89
105
  none: false
90
106
  requirements:
91
107
  - - ~>
@@ -97,7 +113,7 @@ dependencies:
97
113
  - 0
98
114
  version: 1.0.0
99
115
  type: :development
100
- version_requirements: *id005
116
+ version_requirements: *id006
101
117
  description: Sign in with Exvo account
102
118
  email:
103
119
  - jacek.becela@gmail.com
@@ -110,6 +126,7 @@ extra_rdoc_files: []
110
126
  files:
111
127
  - .gitignore
112
128
  - Gemfile
129
+ - Gemfile.lock
113
130
  - README
114
131
  - Rakefile
115
132
  - exvo-auth.gemspec
@@ -126,7 +143,9 @@ files:
126
143
  - lib/exvo_auth/controllers/rails.rb
127
144
  - lib/exvo_auth/dejavu.rb
128
145
  - lib/exvo_auth/middleware.rb
146
+ - lib/exvo_auth/models/message.rb
129
147
  - lib/exvo_auth/oauth2.rb
148
+ - lib/exvo_auth/sharing.rb
130
149
  - lib/exvo_auth/strategies/base.rb
131
150
  - lib/exvo_auth/strategies/interactive.rb
132
151
  - lib/exvo_auth/strategies/non_interactive.rb