beenverified 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.
@@ -0,0 +1,6 @@
1
+ === 0.1.0 / 2008-05-01
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
@@ -0,0 +1,15 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ bin/beenverified
6
+ lib/beenverified.rb
7
+ lib/beenverified/client.rb
8
+ lib/beenverified/credentials.rb
9
+ lib/beenverified/response.rb
10
+ lib/beenverified/user.rb
11
+ test/test_beenverified.rb
12
+ spec/simple_spec.rb
13
+ test/test_beenverified.rb
14
+ test/test_helper.rb
15
+ test/test_user.rb
@@ -0,0 +1,125 @@
1
+ == beenverified
2
+
3
+ http://beenverifiedapi.rubyforge.net/
4
+
5
+ == 0.1.0
6
+
7
+ == DESCRIPTION:
8
+
9
+ BeenVerified is a web service designed to build trust into the meetings
10
+ and interactions that take place on websites and online communities.
11
+ Built using the OAuth protocol and with a focus on keeping the user in
12
+ complete control of their data, the BeenVerified API allows users to
13
+ present third-party, verified information about themselves within your
14
+ application. That verified user data (such as their identity and
15
+ credentials) can then be integrated directly into your application's
16
+ look and feel, providing a more trustworthy user experience for
17
+ everyone
18
+
19
+
20
+ == FEATURES/PROBLEMS:
21
+
22
+ * Wraps OAuth authentication
23
+ * Wraps XML responses into a User object
24
+ * User object has control of a hash of Credential objects
25
+
26
+ == DEVELOPER KEY:
27
+
28
+ Before you can access data from the BeenVerified Library, you must obtain a developer key at:
29
+ http://www.beenverified.com/developer/new?d=t
30
+
31
+ == USAGE:
32
+
33
+ Three Steps
34
+
35
+
36
+ ==== 1) Obtaining a request token & sending user to Auth[sz]
37
+
38
+ >> require 'beenverified
39
+ >> client = BeenVerified::Client.new( :consumer_key => "consumer_key",
40
+ :consumer_secret => "consumer_secret")
41
+ >> request_token = client.get_request_token
42
+
43
+ #save your request_token data to your database
44
+ #send user to request_token.authorize_url
45
+ #User comes back to app to notify of authorization
46
+ #(in a web flow it would be a redirect to the callback URL)
47
+
48
+ ==== 2) Getting the access token
49
+
50
+ >> client = BeenVerified::Client.new( :consumer_key => "consumer_key",
51
+ :consumer_secret => "consumer_secret",
52
+ :request_token => "request_token",
53
+ :request_token_secret => "request_token_secret")
54
+ >> access_token = client.convert_to_access_token
55
+
56
+ #save access_token data to your database
57
+
58
+ ==== 3) Accessing BeenVerified Resources
59
+
60
+ >> user = BeenVerified::Client.new( :consumer_key => "consumer_key",
61
+ :consumer_secret => "consumer_secret",
62
+ :access_token => "access_token",
63
+ :access_token_secret => "access_token_secret").user
64
+
65
+ => <BeenVerified::User:0x02cf909 ...>
66
+
67
+ #showing a users full name if they are sharing it
68
+ >> user.identity.full_name if user.identity
69
+ => "Jason Amster"
70
+
71
+ #showing the name of the organization where a user worked
72
+ >> user.work_experiences[0].organization if user.work_experiences[0].size > 0
73
+ => "BeenVerified"
74
+
75
+ #showing the date the work_experience credential was verified
76
+ user.work_experiences[0].verified_on
77
+
78
+ #displaying the raw xml of a user
79
+ >> user.raw_xml
80
+ => <?xml version="1.0" encoding="UTF-8"?>
81
+ <user>
82
+ <link_back>http://localhost/personas/cb79d21f</link_back>
83
+ <credentials>
84
+ ...
85
+ </credentials>
86
+ </user>
87
+
88
+
89
+
90
+
91
+
92
+ == REQUIREMENTS:
93
+
94
+ oauth
95
+ net/https
96
+ activesupport
97
+
98
+ == INSTALL:
99
+
100
+ sudo gem install beenverified
101
+
102
+ == LICENSE:
103
+
104
+ (The MIT License)
105
+
106
+ Copyright (c) 2008 Jason Amster
107
+
108
+ Permission is hereby granted, free of charge, to any person obtaining
109
+ a copy of this software and associated documentation files (the
110
+ 'Software'), to deal in the Software without restriction, including
111
+ without limitation the rights to use, copy, modify, merge, publish,
112
+ distribute, sublicense, and/or sell copies of the Software, and to
113
+ permit persons to whom the Software is furnished to do so, subject to
114
+ the following conditions:
115
+
116
+ The above copyright notice and this permission notice shall be
117
+ included in all copies or substantial portions of the Software.
118
+
119
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
120
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
121
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
122
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
123
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
124
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
125
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,19 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+ require './lib/beenverified.rb'
6
+ require 'fileutils'
7
+
8
+ Hoe.new('beenverified', BeenVerified::VERSION) do |p|
9
+ p.rubyforge_name = 'beenverified' # if different than lowercase project name
10
+ p.developer('Jason Amster', 'jayamster@gmail.com')
11
+ end
12
+
13
+ # vim: syntax=Ruby
14
+
15
+
16
+ desc "Install GEM Locally"
17
+ task :install_locally => [:install_gem] do
18
+ FileUtils.rm_rf File.dirname(__FILE__) + '/pkg'
19
+ end
File without changes
@@ -0,0 +1,69 @@
1
+ require 'net/https'
2
+ require 'rubygems'
3
+ gem 'oauth', ">= 0.2.1"
4
+ require 'oauth/helper'
5
+ require 'oauth/client/helper'
6
+ require 'oauth/request_proxy/net_http'
7
+ require 'activesupport'
8
+
9
+ #require 'hpricot'
10
+
11
+ class BeenVerified
12
+ VERSION = '0.1.0'
13
+ API_SERVER = "https://api.beenverified.com"
14
+ AUTH_SERVER = "https://www.beenverified.com"
15
+ DEBUG_API_SERVER = "http://localhost"
16
+ DEBUG_AUTH_SERVER = "http://localhost"
17
+
18
+ API_PREFIX = "/rest/1.0"
19
+ FORMAT_XML = "xml"
20
+ REQUEST_TOKEN_PATH= "/oauth/request_token"
21
+ ACCESS_TOKEN_PATH= "/oauth/access_token"
22
+ AUTHORIZE_PATH= "/oauth/authorize"
23
+ USER_API_PATH="#{BeenVerified::API_PREFIX}/user/show"
24
+
25
+ #CREDENTIAL_TYPES_PLURAL = %w(work_experiences educations professional_licenses certifications personal_references emails web_sites)
26
+ #CREDENTIAL_TYPES = %w(work_experience education professional_license certification personal_reference email web_site)
27
+ #CREDENTAIL_CLASSES = %w(WorkExperience Education ProfessionalLicense Certification PersonalReference Email WebSite)
28
+ CREDENTIALS = {:identity=>{:singular=>'identity', :plural=>'identities', :class=>'Identity'},
29
+ :work_experience=>{:singular=>'work_experience', :plural=>'work_experiences', :class=>'WorkExperience'},
30
+ :education=>{:singular=>'education', :plural=>'educations', :class=>'Education'},
31
+ :professional_license=>{:singular=>'professional_license', :plural=>'professional_licenses', :class=>'ProfessionalLicense'},
32
+ :certification=>{:singular=>'certification', :plural=>'certifications', :class=>'Certification'},
33
+ :personal_reference=>{:singular=>'personal_reference', :plural=>'personal_references', :class=>'PersonalReference'},
34
+ :email=>{:singular=>'email', :plural=>'emails', :class=>'Email'},
35
+ :web_site=>{:singular=>'web_site', :plural=>'web_sites', :class=>'WebSite'}}
36
+
37
+ class Error < RuntimeError #:nodoc:
38
+ end
39
+
40
+ class ArgumentError < Error #:nodoc:
41
+ end
42
+
43
+ class BeenVerifiedException < Error #:nodoc:
44
+ end
45
+
46
+ #To convert each key to a getter method for the class
47
+ #as seen at: http://blog.jayfields.com/2008/02/ruby-dynamically-define-method.html
48
+
49
+ end
50
+ class Hash
51
+ def to_mod
52
+ hash = self
53
+ Module.new do
54
+ hash.each_pair do |key, value|
55
+ define_method key do
56
+ value
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
+ #Dir['beenverified/**/*.rb'].sort.each { |lib| require lib }\
64
+ #require File.dirname(__FILE__) + '/beenverified/client'
65
+
66
+ require File.dirname(__FILE__) + '/beenverified/client'
67
+ require File.dirname(__FILE__) + '/beenverified/response'
68
+ require File.dirname(__FILE__) + '/beenverified/user'
69
+ require File.dirname(__FILE__) + '/beenverified/credentials'
@@ -0,0 +1,128 @@
1
+ class BeenVerified
2
+ class Client
3
+ attr_reader :access_token, :request_token, :consumer, :format
4
+ #attr_accessor :consumer
5
+
6
+ def initialize(options = {})
7
+ options = {
8
+ :debug => false,
9
+ :format => BeenVerified::FORMAT_XML
10
+ }.merge(options)
11
+
12
+ # symbolize keys
13
+ options.map do |k,v|
14
+ options[k.to_sym] = v
15
+ end
16
+ site = if options[:debug]
17
+ BeenVerified::DEBUG_API_SERVER
18
+ else
19
+ BeenVerified::API_SERVER
20
+ end
21
+
22
+ raise BeenVerified::ArgumentError, "OAuth Consumer Key and Secret required" if options[:consumer_key].nil? || options[:consumer_secret].nil?
23
+ @consumer = OAuth::Consumer.new(options[:consumer_key], options[:consumer_secret],{
24
+ :site=>site,
25
+ :scheme=>:header,
26
+ :http_method=>:post,
27
+ :request_token_path=>BeenVerified::REQUEST_TOKEN_PATH,
28
+ :access_token_path=>BeenVerified::ACCESS_TOKEN_PATH,
29
+ :authorize_path=>BeenVerified::AUTHORIZE_PATH
30
+ })
31
+ @debug = options[:debug]
32
+ @format = options[:format]
33
+ # @app_id = options[:app_id]
34
+ if options[:access_token] && options[:access_token_secret]
35
+ @access_token = OAuth::AccessToken.new(@consumer, options[:access_token], options[:access_token_secret])
36
+ else
37
+ @access_token = nil
38
+ end
39
+ if options[:request_token] && options[:request_token_secret]
40
+ @request_token = OAuth::RequestToken.new(@consumer, options[:request_token], options[:request_token_secret])
41
+ else
42
+ @request_token = nil
43
+ end
44
+ end
45
+
46
+ def get_request_token(force_token_regeneration = false)
47
+ if force_token_regeneration || @request_token.nil?
48
+ @request_token = consumer.get_request_token
49
+ end
50
+ @request_token
51
+ end
52
+
53
+ def authorization_url
54
+ raise BeenVerified::ArgumentError, "call #get_request_token first" if @request_token.nil?
55
+ request_token.authorize_url
56
+ end
57
+
58
+ def convert_to_access_token
59
+ raise BeenVerified::ArgumentError, "call #get_request_token and have user authorize the token first" if @request_token.nil?
60
+ @access_token = request_token.get_access_token
61
+ end
62
+
63
+ def user(options={})
64
+ raise BeenVerified::ArgumentError, "OAuth Access Token Required" unless @access_token
65
+ response = get(BeenVerified::USER_API_PATH + ".#{format}", options)
66
+ response
67
+ BeenVerified::Response.new(response.body).user
68
+ end
69
+
70
+
71
+ alias_method :method_missing_with_type_filter, :method_missing
72
+ def method_missing_with_type_filter(method_id, *arguments)
73
+ if match = /^get_([_a-zA-Z]\w*|[_a-zA-Z]\w*s)$/.match(method_id.to_s)
74
+ if credential_type_match(match.captures.first)
75
+ credential_type = match.captures.first
76
+ if credential_type[-1..credential_type.length]=='s'
77
+ get("#{API_PREFIX}/#{credential_type}.xml")
78
+ else
79
+ get("#{API_PREFIX}/#{credential_type}s/#{arguments[0]}.xml")
80
+ end
81
+ else
82
+ method_missing_without_type_filter(method_id, *arguments)
83
+ end
84
+ else
85
+ method_missing_without_type_filter(method_id, *arguments)
86
+ end
87
+ end
88
+ alias_method :method_missing, :method_missing_with_type_filter
89
+
90
+
91
+ private
92
+ def credential_type_match(cred_type)
93
+ compare = cred_type[-1..cred_type.length]=='s' ? cred_type[0..cred_type.length-2] : cred_type
94
+ if BeenVerified::CREDENTIAL_TYPES.include?(compare)
95
+ true
96
+ else
97
+ false
98
+ end
99
+ end
100
+
101
+ protected
102
+
103
+ def get(url, options = {}) #:nodoc:
104
+ request(:get, url, options)
105
+ end
106
+
107
+ def request(method, url, options) #:nodoc:
108
+ response = case method
109
+ #when :post
110
+ # access_token.request(:post, url, options[:params])
111
+ when :get
112
+ qs = options[:params].collect { |k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}" }.join("&") if options[:params]
113
+ access_token.request(:get, "#{url}?#{qs}")
114
+ else
115
+ raise ArgumentError, "method #{method} not supported"
116
+ end
117
+
118
+ case response.code
119
+ when '500'; then raise BeenVerified::BeenVerifiedException, "Internal Server Error"
120
+ when '400'; then raise BeenVerified::BeenVerifiedException, "Method Not Implemented Yet"
121
+ when '401'; then raise BeenVerified::BeenVerifiedException, "Token not Found"
122
+ else response
123
+ end
124
+ end
125
+
126
+
127
+ end
128
+ end
@@ -0,0 +1,49 @@
1
+ class BeenVerified
2
+ class Credential
3
+ attr_accessor :id
4
+ def initialize(data=nil)
5
+ unless data
6
+ @data_hash = nil
7
+ return
8
+ else
9
+ @id = data.attributes["id"]
10
+ @data_hash ={}
11
+ data.elements.each do |data_point|
12
+ @data_hash[data_point.name.to_sym]=data_point.text
13
+ end
14
+ end
15
+
16
+ methods = @data_hash.reject{|key, val| key==:verified_on}
17
+ self.extend methods.to_mod
18
+ end
19
+
20
+ def [](index)
21
+ if @data_hash==nil
22
+ return nil
23
+ else
24
+ return @data_hash[index]
25
+ end
26
+ end
27
+
28
+ def verified_on
29
+ Date.parse(@data_hash[:verified_on])
30
+ end
31
+
32
+ end
33
+
34
+ class Identity < Credential
35
+ def full_name
36
+ "#{@data_hash[:first_name]} #{@data_hash[:last_name]}"
37
+ end
38
+ end
39
+
40
+ class WorkExperience < Credential;end
41
+ class Education < Credential;end
42
+ class ProfessionalLicense < Credential;end
43
+ class Certification < Credential;end
44
+ class PersonalReference < Credential;end
45
+ class Email < Credential;end
46
+ class WebSite < Credential;end
47
+
48
+
49
+ end
@@ -0,0 +1,22 @@
1
+ class BeenVerified
2
+ class Response
3
+
4
+ #Parses the XML response from BeenVerified
5
+ def initialize(doc)
6
+ doc = REXML::Document.new(doc) unless doc.is_a?(REXML::Document || REXML::Element)
7
+ @doc = doc
8
+ raise BeenVerified::BeenVerifiedException, @doc.elements['error'].attributes["error_code"] if !success?
9
+ end
10
+
11
+ #does the response indicate success?
12
+ def success?
13
+ @doc.elements['error'].nil?
14
+ end
15
+
16
+ def user
17
+ @user ||= BeenVerified::User.new(@doc)
18
+ end
19
+
20
+
21
+ end
22
+ end
@@ -0,0 +1,46 @@
1
+ class BeenVerified
2
+ class User
3
+ attr_accessor :raw_xml, :link_back, :credentials, *BeenVerified::CREDENTIALS.map{|credential_type| credential_type[1][:plural].to_sym}
4
+ def initialize(doc)
5
+ @raw_xml = doc.root
6
+ @link_back = doc.root.elements['link_back'].text
7
+
8
+ #Cycle through all element types and see if there are any of them in the xml response
9
+ @credentials = {}
10
+ BeenVerified::CREDENTIALS.each do |credential_type|
11
+
12
+ #set array to empty set
13
+ type_array = []
14
+
15
+ #Get the matching xml node
16
+ credentials = doc.root.elements['credentials'].elements[credential_type[1][:plural]]
17
+
18
+ #if there are credentials of this type, cycle through and instantiate objects of them
19
+ #and add it to the array
20
+ if credentials
21
+ klass = "BeenVerified::#{credential_type[1][:class]}".constantize
22
+ credentials.elements.each do |credential|
23
+ type_array << klass.new(credential)
24
+ end
25
+ end
26
+ eval("@#{credential_type[1][:plural]} = type_array")
27
+ @credentials[credential_type[1][:plural]] = type_array
28
+ #puts @credentials.size
29
+ end
30
+
31
+ def number_of_credentials
32
+ credentials.inject(0){|sum, type| sum = sum+type[1].size }
33
+ end
34
+
35
+ def identity
36
+ unless identities.empty?
37
+ identities[0]
38
+ else
39
+ nil
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+
@@ -0,0 +1,12 @@
1
+ class BeenVerifiedApi
2
+ def awesome?
3
+ true
4
+ end
5
+ end
6
+
7
+
8
+ describe BeenVerifiedApi do
9
+ it 'should be awesome' do
10
+ BeenVerifiedApi.new.should be_awesome
11
+ end
12
+ end
File without changes
@@ -0,0 +1,7 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/beenverified'
3
+
4
+ def requests(request)
5
+ Marshal.load(File.read(File.dirname(__FILE__) + '/fixtures/' + request))
6
+ end
7
+
@@ -0,0 +1,113 @@
1
+ require 'rubygems'
2
+ require "rexml/document"
3
+ require File.dirname(__FILE__) + '/test_helper.rb'
4
+
5
+
6
+ class TestUser < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @basic_user = <<DATA
10
+ <?xml version="1.0" encoding="UTF-8"?>
11
+ <user>
12
+ <link_back>http://localhost/personas/cb79d21f</link_back>
13
+ <credentials>
14
+ <identities>
15
+ <identity id="2">
16
+ <first_name>Jason</first_name>
17
+ <last_name>Amster</last_name>
18
+ <middle_name></middle_name>
19
+ <suffix></suffix>
20
+ <verified_on>09/26/2007</verified_on>
21
+ <source></source>
22
+ <notes></notes>
23
+ </identity>
24
+ </identities>
25
+ <educations>
26
+ <education id="1">
27
+ <school>Rutgers University</school>
28
+ <major>Computer Science</major>
29
+ <minor></minor>
30
+ <start_date></start_date>
31
+ <graduation_date>2003-06-01</graduation_date>
32
+ <verified_on>09/15/2007</verified_on>
33
+ <source></source>
34
+ <notes>
35
+ </notes>
36
+ </education>
37
+ </educations>
38
+ <work_experiences>
39
+ <work_experience id="1">
40
+ <organization>Redken/L'Oreal USA</organization>
41
+ <title>Manager - Interactive Development</title>
42
+ <start_date>2004-08-01</start_date>
43
+ <end_date>2007-08-01</end_date>
44
+ <verified_on>09/22/2007</verified_on>
45
+ <source></source>
46
+ <notes></notes>
47
+ </work_experience>
48
+ <work_experience id="2">
49
+ <organization>BeenVerified.com</organization>
50
+ <title>CTO</title>
51
+ <start_date>2007-08-01</start_date>
52
+ <end_date></end_date>
53
+ <verified_on>10/31/2007</verified_on>
54
+ <source></source>
55
+ <notes></notes>
56
+ </work_experience>
57
+ </work_experiences>
58
+ </credentials>
59
+ </user>
60
+ DATA
61
+
62
+
63
+ @empty_user = <<DATA
64
+ <?xml version="1.0" encoding="UTF-8"?>
65
+ <user>
66
+ <link_back>http://localhost/personas/cb79d21f</link_back>
67
+ <credentials>
68
+
69
+ </credentials>
70
+ </user>
71
+ DATA
72
+
73
+ @basic_user = REXML::Document.new(@basic_user, {:compress_whitespace => %(credentials)})#file
74
+ @empty_user = REXML::Document.new(@empty_user, {:compress_whitespace => %(credentials)})#file
75
+
76
+
77
+ end
78
+
79
+ def test_initialize
80
+ user = BeenVerified::User.new(@basic_user)
81
+ assert user
82
+
83
+ end
84
+ def test_basic_user
85
+ user = BeenVerified::User.new(@basic_user)
86
+ assert_equal 4, user.number_of_credentials
87
+ assert_equal 2, user.work_experiences.size
88
+ assert_equal 1, user.educations.size
89
+ assert user.web_sites, nil
90
+ assert_equal 'http://localhost/personas/cb79d21f', user.link_back
91
+ assert user.identity
92
+
93
+ end
94
+ def test_credential_values
95
+ user = BeenVerified::User.new(@basic_user)
96
+ assert_equal "Jason Amster", user.identity.full_name
97
+ assert_equal "Redken/L'Oreal USA", user.work_experiences.first[:organization]
98
+ assert_equal Date, user.work_experiences.first.verified_on.class
99
+ assert_equal '1', user.work_experiences.first.id
100
+ assert_equal '2', user.work_experiences[1].id
101
+ assert_equal 'Computer Science', user.educations[0].major
102
+ assert_equal 'Computer Science', user.educations[0][:major]
103
+ end
104
+
105
+
106
+ def test_simple_user
107
+ user = BeenVerified::User.new(@empty_user)
108
+ assert_equal 0, user.number_of_credentials
109
+ BeenVerified::CREDENTIALS.map{|type| type[1][:plural]}.each do |type|
110
+ assert eval("user.#{type}.empty?")
111
+ end
112
+ end
113
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: beenverified
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jason Amster
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-08 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.5.1
23
+ version:
24
+ description: BeenVerified is a web service designed to build trust into the meetings and interactions that take place on websites and online communities. Built using the OAuth protocol and with a focus on keeping the user in complete control of their data, the BeenVerified API allows users to present third-party, verified information about themselves within your application. That verified user data (such as their identity and credentials) can then be integrated directly into your application's look and feel, providing a more trustworthy user experience for everyone
25
+ email:
26
+ - jayamster@gmail.com
27
+ executables:
28
+ - beenverified
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - History.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ files:
36
+ - History.txt
37
+ - Manifest.txt
38
+ - README.txt
39
+ - Rakefile
40
+ - bin/beenverified
41
+ - lib/beenverified.rb
42
+ - lib/beenverified/client.rb
43
+ - lib/beenverified/credentials.rb
44
+ - lib/beenverified/response.rb
45
+ - lib/beenverified/user.rb
46
+ - test/test_beenverified.rb
47
+ - spec/simple_spec.rb
48
+ - test/test_helper.rb
49
+ - test/test_user.rb
50
+ has_rdoc: true
51
+ homepage: http://beenverifiedapi.rubyforge.net/
52
+ post_install_message:
53
+ rdoc_options:
54
+ - --main
55
+ - README.txt
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ version:
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ version:
70
+ requirements: []
71
+
72
+ rubyforge_project: beenverified
73
+ rubygems_version: 1.0.1
74
+ signing_key:
75
+ specification_version: 2
76
+ summary: BeenVerified is a web service designed to build trust into the meetings and interactions that take place on websites and online communities
77
+ test_files:
78
+ - test/test_beenverified.rb
79
+ - test/test_helper.rb
80
+ - test/test_user.rb