ringcaptcha 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ringcaptcha.rb +30 -22
  3. metadata +10 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a93d6a71e445ee39c5a7c5312cc02ea552ada80
4
- data.tar.gz: 6de530b4b588b408221d674b87be41e80c55c36c
3
+ metadata.gz: 71d2cb2213bd25fe2e7e85fa8f72fe4ece7f78e9
4
+ data.tar.gz: fe6969201b36a4ebad0dfd63bccff1a2ba0f2099
5
5
  SHA512:
6
- metadata.gz: 192ba189b2bcebdaf5e92cdf5f58fd7d784cf9857d2082dbf2f69f6d3927053ad7057a28d1922968b569d1dcf22adb2c3d7cd703f483036be3c6a935fa0ae7ed
7
- data.tar.gz: 368480d50df016fcc226f899b766a7cbedc4652c96d9c0dd6a04442a898ea0114d9b9ad4d1cdf9db867d0d8c655cf8e3929fee42a25f84f16e947a9cde8d07c8
6
+ metadata.gz: 32ef8975b7500afd71598866121f85cca6e88bb2d9ed077578efe00c730236c9255a9d67d282cbe45033777a46f0d3d839b8b54221f2805d2c7f6d5fa18281c3
7
+ data.tar.gz: 1fc3ecbfe11fb1c155dd4628a19fd34dc6d76f1cab235ef80a3c878287796137902fd968e01eb25f5fb663bbbe9c9a286c7122c0e07c796f76dec8df2b094a01
@@ -7,36 +7,41 @@ module RingCaptcha
7
7
 
8
8
  class RingCaptchaVerification
9
9
 
10
- attr_reader :status, :message, :transaction_id, :phone_number, :geolocation, :phone_type, :carrier_name, :roaming, :risk
10
+ extend Forwardable
11
+ PUBLIC_METHODS = [:status, :message, :transaction_id, :phone_number, :geolocation, :phone_type, :carrier_name, :roaming, :risk, :json]
12
+
13
+ PUBLIC_METHODS.each do |m|
14
+ def_delegators :@json, m
15
+ end
11
16
 
12
17
  def initialize(json)
13
- @transaction_id = json.has_key?("id") ? json["id"] : false
14
- @phone_number = json.has_key?("phone") ? json["phone"] : false
15
- @geolocation = json.has_key?("geolocation") ? json["geolocation"] : false
16
- @message = json.has_key?("message") ? json["message"] : false
17
- @phone_type = json.has_key?("phone_type") ? json["phone_type"] : false
18
- @carrier_name = json.has_key?("carrier") ? json["carrier"] : false
19
- @roaming = json.has_key?("roaming") ? json["roaming"] : false
20
- @risk = json.has_key?("threat_level") ? json["threat_level"] : false
18
+ @json = json
21
19
  end
22
20
 
21
+ def valid?
22
+ @status == "SUCCESS"
23
+ end
24
+
25
+ def as_json(options={})
26
+ @json.slice(*PUBLIC_METHODS.map(&:to_s))
27
+ end
23
28
  end
24
29
 
25
30
  class RingCaptcha
26
31
  @@rc_server = 'api.ringcaptcha.com'
27
- @@user_agent = 'ringcaptcha-ruby/1.0'
28
-
32
+ @@user_agent = 'ringcaptcha-ruby/1.0'
33
+
29
34
  attr_accessor :secure
30
35
 
31
36
  def initialize(app_key, secret_key)
32
- @app_key = app_key
33
- @secret_key = secret_key
37
+ @app_key = app_key
38
+ @secret_key = secret_key
34
39
  @retry_attempts = 0
35
40
  @secure = true
36
41
  @status = -1
37
42
  end
38
43
 
39
- def is_valid?(pin_code, token)
44
+ def validate_pin_code(pin_code, token)
40
45
  #TODO Check parameters
41
46
  data = {:secret_key => @secret_key, :token => token, :code => pin_code}
42
47
  sanitize_data(data)
@@ -48,15 +53,18 @@ module RingCaptcha
48
53
  @status = response.class.name == "Net::HTTPOK" ? body['status'] == "SUCCESS" : 0
49
54
  rescue => e
50
55
  @status = 0
51
- @message = e.message
52
- return false
56
+ @message = e.message
53
57
  end
54
58
 
55
59
  return RingCaptchaVerification.new(body)
60
+ end
56
61
 
62
+ def is_valid?(pin_code, token)
63
+ validate_pin_code(pin_code, token)
64
+ @status == true
57
65
  end
58
66
 
59
- private
67
+ private
60
68
 
61
69
  def sanitize_data(data)
62
70
  data.each do |key,value|
@@ -67,7 +75,7 @@ module RingCaptcha
67
75
  def verify_rest_call(server, resource, data, port=80)
68
76
  port = @secure ? 443 : port
69
77
  url = "#{server}:#{port}/#{resource}"
70
-
78
+
71
79
  uri = URI.parse(url)
72
80
  https = Net::HTTP.new(uri.host,uri.port)
73
81
  https.use_ssl = @secure
@@ -76,10 +84,10 @@ module RingCaptcha
76
84
  res = https.request(req)
77
85
 
78
86
  case res
79
- when Net::HTTPSuccess, Net::HTTPRedirection
80
- res
81
- else
82
- raise RingCaptchaRequestError, 'ERROR_PROCESING_REQUEST'
87
+ when Net::HTTPSuccess, Net::HTTPRedirection
88
+ res
89
+ else
90
+ raise RingCaptchaRequestError, 'ERROR_PROCESING_REQUEST'
83
91
  end
84
92
 
85
93
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcaptcha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Cocaro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-05 00:00:00.000000000 Z
11
+ date: 2016-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: library to access to RingCaptcha API
@@ -45,7 +45,7 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - ./lib/ringcaptcha.rb
48
+ - "./lib/ringcaptcha.rb"
49
49
  homepage: http://ringcaptcha.com
50
50
  licenses:
51
51
  - MIT
@@ -56,17 +56,17 @@ require_paths:
56
56
  - lib
57
57
  required_ruby_version: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - '>='
64
+ - - ">="
65
65
  - !ruby/object:Gem::Version
66
66
  version: '0'
67
67
  requirements: []
68
68
  rubyforge_project:
69
- rubygems_version: 2.0.3
69
+ rubygems_version: 2.5.1
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: library to access to RingCaptcha API