aurfy 0.2.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd370b13b668a5a3ad75b2259835fcbf713162e6
4
- data.tar.gz: 9b4fcedecb44992d5da07cb225bbe8f12fe08a3d
3
+ metadata.gz: 3fb2abdf9afc29c30e819f9903f01784c7121a94
4
+ data.tar.gz: 5b1dff193a71c2cf801bd372e17d8a20611cc374
5
5
  SHA512:
6
- metadata.gz: 6f656da1218c81ea95a91cf6141305f178a26f2193f48b50a98680638669734752d7861ca9e095e1e38ab1572b8e3885a70c9482570aa5ff1b809a4a51584c1b
7
- data.tar.gz: bd91ec61d956df7a990cb6c974d92c0b5dc327c74c447e10a5e61519a97121b232052495d01598ea701bb4b525b3262aae13d2b93045a12d184c54266c435e73
6
+ metadata.gz: a31e2a6f3cc3f2e227233c5ebadc1501cf7b654a07fca2973e9e9688b38f9e01084196c23f9a0b759e7f4fc5e6edab04c0e8022042165684bcd3196877b74243
7
+ data.tar.gz: 953856f3b875b80a412d61026d4440780dbe67492852c668dc3a128429f5d9f3acc5ad31b55d5a1ec56fb2dbb41b5173c0524fa2de1395f0e7915de6b48193d9
data/Gemfile CHANGED
@@ -1,6 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ group :development do
4
+ gem 'pry'
5
+ end
6
+
3
7
  group :test do
8
+ gem 'rspec', '~> 3.0'
4
9
  gem 'simplecov', require: false
5
10
  gem "codeclimate-test-reporter", require: nil
6
11
  end
data/README.md CHANGED
@@ -27,12 +27,15 @@ Usage
27
27
  ```rb
28
28
  require "aurfy"
29
29
 
30
- merchant_id = "M000000000"
31
- trade_certificate = "D0123456789012345678901234567890"
30
+ options = {
31
+ merchantid: "M000000000",
32
+ trade_certificate: "D0123456789012345678901234567890",
33
+ test: false
34
+ }
32
35
 
33
- client = Aurfy::Client.new(merchant_id, trade_certificate)
36
+ client = Aurfy::Client.new(options)
34
37
 
35
- client.request(
38
+ client.purchase(
36
39
  cardnumber: "0123456789012345",
37
40
  expirydate: "1701",
38
41
  cv2: "123",
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
14
14
  s.files = `git ls-files`.split($/)
15
15
  s.require_paths = ['lib']
16
16
 
17
- s.add_runtime_dependency 'credit_card_reader', '~> 0.0.0'
18
- s.add_runtime_dependency 'faraday', '~> 0.9.0'
19
- s.add_development_dependency "pry", "~> 0.10.0"
20
- s.add_development_dependency 'rspec', '~> 3.0', '>= 3.0.0'
17
+ s.add_dependency "activesupport", "~> 4.2"
18
+ s.add_dependency 'credit_card_reader', '~> 0.0.4'
19
+ s.add_dependency 'faraday', '~> 0.9.0'
20
+ s.add_dependency "rack", "~> 1.6"
21
21
  end
@@ -1,5 +1,8 @@
1
- require 'faraday'
1
+ require 'active_support/core_ext/object'
2
+ require 'active_support/core_ext/hash'
2
3
  require 'credit_card_reader'
4
+ require 'faraday'
5
+ require 'rack'
3
6
 
4
7
  require 'aurfy/client'
5
8
  require 'aurfy/configure'
@@ -5,21 +5,17 @@ module Aurfy
5
5
  class Client
6
6
  attr_reader :api_url, :merchantid, :trade_certificate
7
7
 
8
- def initialize(merchantid, trade_certificate, test = false)
9
- @api_url = test ? TEST_API_URL : API_URL
10
- @merchantid = merchantid
11
- @trade_certificate = trade_certificate
8
+ def initialize(options = {})
9
+ @api_url = options[:test] ? TEST_API_URL : API_URL
10
+ @merchantid = options[:merchantid]
11
+ @trade_certificate = options[:trade_certificate]
12
12
  end
13
13
 
14
- def request(options = {})
15
- configure.options = options.merge(merchantid: merchantid, trade_certificate: trade_certificate)
14
+ def purchase(options = {})
15
+ configure = Configure.new(options.merge(merchantid: merchantid, trade_certificate: trade_certificate))
16
16
 
17
- result = Faraday.post @api_url, configure.params
18
- Response.new(result)
19
- end
20
-
21
- def configure
22
- @configure ||= Configure.new
17
+ response = Faraday.post api_url, configure.params
18
+ Response.new(response)
23
19
  end
24
20
  end
25
21
  end
@@ -1,69 +1,64 @@
1
1
  module Aurfy
2
2
  class Configure
3
+ CREDIT_CARD_ORIGINAL_NAMES = { union_pay: "UP", visa: "VISA", jcb: "JCB", master: "MC" }
4
+
3
5
  def self.keys
4
- [:merchantid, :orderid, :ordertime, :ordercurrency, :orderamount, :orderdescription, :txnremark1, :txnremark2,
5
- :charset, :clientip, :version, :transtype, :website, :cardtype, :cardnumber, :cv2, :expirydate, :signmethod,
6
- :trade_certificate]
6
+ [:cardnumber, :cardtype, :charset, :cv2, :expirydate, :orderamount, :ordercurrency, :orderdescription, :orderid,
7
+ :ordertime, :merchantid, :signmethod, :trade_certificate, :transtype, :txnremark1, :txnremark2, :version,
8
+ :website]
7
9
  end
8
10
 
9
- def initialize
10
- @charset = "UTF-8"
11
- @ordercurrency = "USD"
12
- @orderdescription = ""
13
- @orderid = DateTime.now.strftime("%Y%m%d%H%M%S%N")
14
- @ordertime = DateTime.now.strftime("%Y%m%d%H%M%S")
15
- @signmethod = "MD5"
16
- @transtype = "PURCHASE"
17
- @txnremark1 = ""
18
- @txnremark2 = ""
19
- @version = "1.0"
20
- @website = ""
11
+ def initialize(values = {})
12
+ Configure.keys.each do |key|
13
+ next unless value = (values[key] || default_values[key])
14
+ instance_variable_set(:"@#{key}", value)
15
+ end
16
+
17
+ @cardtype = values[:card_type] || cardtype
21
18
  end
22
19
 
23
20
  def params
24
- sorted_variables.merge({ signature: signature })
21
+ sorted_variables.merge(signature: signature)
25
22
  end
26
23
 
27
- def options=(options = {})
28
- options.each_pair do |key, value|
29
- next unless Configure.keys.include? key
30
- instance_variable_set(:"@#{key}", value)
31
- end
32
- @cardtype ||= cardtype
33
- options
24
+ def signature_key
25
+ sorted_variables.except(:signmethod).to_query + "&#{@trade_certificate}"
34
26
  end
35
27
 
36
28
  def sorted_variables
37
- variables = instance_variables.map { |v| [v.to_s.sub("@", "").to_sym, instance_variable_get(v)] }
38
- Hash[variables.delete_if { |k, _| k == :trade_certificate }.sort]
39
- end
40
-
41
- def signature_key
42
- sorted_variables.delete_if { |k, _| k == :signmethod }.map {|p| "#{p.first}=#{p.last}" }.join("&") + "&#{@trade_certificate}"
29
+ variables = (instance_variables - [:@trade_certificate]).sort
30
+ Hash[variables.map { |v| [v.to_s.sub("@", "").to_sym, instance_variable_get(v)] }]
43
31
  end
44
32
 
45
33
  private
46
34
 
47
- def signature
48
- Digest::MD5.hexdigest(signature_key)
49
- end
50
-
51
35
  def cardtype
52
- credit_card = credit_card_detector.detect(@cardnumber)
53
- case credit_card.brand
54
- when :union_pay
55
- "UP"
56
- when :vise
57
- "VISA"
58
- when :jcb
59
- "JCB"
60
- when :master
61
- "MC"
62
- end
36
+ card_information = credit_card_detector.detect(@cardnumber)
37
+ CREDIT_CARD_ORIGINAL_NAMES[card_information.brand]
63
38
  end
64
39
 
65
40
  def credit_card_detector
66
41
  CreditCardReader::Detector.new
67
42
  end
43
+
44
+ def default_values
45
+ {
46
+ charset: "UTF-8",
47
+ ordercurrency: "USD",
48
+ orderdescription: "",
49
+ orderid: DateTime.now.strftime("%Y%m%d%H%M%S%N"),
50
+ ordertime: DateTime.now.strftime("%Y%m%d%H%M%S"),
51
+ signmethod: "MD5",
52
+ transtype: "PURCHASE",
53
+ txnremark1: "",
54
+ txnremark2: "",
55
+ version: "1.0",
56
+ website: ""
57
+ }
58
+ end
59
+
60
+ def signature
61
+ Digest::MD5.hexdigest(signature_key)
62
+ end
68
63
  end
69
64
  end
@@ -7,9 +7,7 @@ module Aurfy
7
7
  end
8
8
 
9
9
  def parse
10
- params = body.split("&").map { |p| p.split("=") }
11
- params = params.map { |p| p.length >= 2 ? p : p.push("") }
12
- Hash[params].each_with_object({}) { |(k, v), a| a[k.to_s.to_sym] = v }
10
+ Rack::Utils.parse_nested_query(body).symbolize_keys
13
11
  end
14
12
  end
15
13
  end
@@ -1,6 +1,6 @@
1
1
  module Aurfy
2
2
  class Response
3
- attr_reader :result, :merchantid, :orderamount, :ordercurrency, :orderid, :ordertime, :respcode, :respmsg,
3
+ attr_reader :response, :merchantid, :orderamount, :ordercurrency, :orderid, :ordertime, :respcode, :respmsg,
4
4
  :signature, :signmethod, :txnid, :txnremark1, :txnremark2, :txnstatus, :txntime
5
5
 
6
6
  def self.keys
@@ -8,15 +8,15 @@ module Aurfy
8
8
  :txnid, :txnremark1, :txnremark2, :txnstatus, :txntime]
9
9
  end
10
10
 
11
- def initialize(result)
12
- @result = result
11
+ def initialize(response)
12
+ @response = response
13
13
 
14
- parsed_params = Parser.new(result.body).parse
14
+ parsed_params = Parser.new(response.body).parse
15
15
  assign_variables(parsed_params)
16
16
  end
17
17
 
18
18
  def success?
19
- respcode == "00"
19
+ respcode === "00"
20
20
  end
21
21
 
22
22
  private
@@ -1,6 +1,6 @@
1
1
  module Aurfy
2
- MAJOR = 0
3
- MINOR = 2
2
+ MAJOR = 1
3
+ MINOR = 0
4
4
  PATCH = 0
5
5
  VERSION = [MAJOR, MINOR, PATCH].join('.').freeze
6
6
  end
@@ -1,33 +1,33 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Aurfy::Client do
4
- subject { described_class.new("merchant_id", "trade_certificate") }
4
+ let(:client) { described_class.new(merchantid: "merchant_id", trade_certificate: "trade_certificate") }
5
5
 
6
6
  describe "#initialize" do
7
7
  it "assigns parameters for payment" do
8
- expect(subject.merchantid).to eq "merchant_id"
9
- expect(subject.trade_certificate).to eq "trade_certificate"
10
- expect(subject.api_url).to eq Aurfy::API_URL
8
+ expect(client.merchantid).to eq "merchant_id"
9
+ expect(client.trade_certificate).to eq "trade_certificate"
10
+ expect(client.api_url).to eq Aurfy::API_URL
11
11
  end
12
12
 
13
13
  context "with test argumaent" do
14
- subject { described_class.new("merchant_id", "trade_certificate", true) }
14
+ let(:client) { described_class.new(merchantid: "merchant_id", trade_certificate: "trade_certificate", test: true) }
15
15
 
16
16
  it "assigns parameters for payment" do
17
- expect(subject.merchantid).to eq "merchant_id"
18
- expect(subject.trade_certificate).to eq "trade_certificate"
19
- expect(subject.api_url).to eq Aurfy::TEST_API_URL
17
+ expect(client.merchantid).to eq "merchant_id"
18
+ expect(client.trade_certificate).to eq "trade_certificate"
19
+ expect(client.api_url).to eq Aurfy::TEST_API_URL
20
20
  end
21
21
  end
22
22
  end
23
23
 
24
- describe "#request" do
24
+ describe "#purchase" do
25
25
  context "with valid credit card" do
26
26
  it "returns successful Aurfy::Response instance" do
27
27
  response = double(Faraday::Response, body: "merchantid=M000000000&orderamount=600.00&ordercurrency=USD&orderid=20150429115552415102000&ordertime=20150429115552&respcode=00&respmsg=The payment is successful.&signature=d2c4c43a7b2447d512ee3ef3c33754f4&signmethod=MD5&txnid=21150428000000006409&txnremark1=&txnremark2=&txnstatus=0&txntime=")
28
28
  allow_any_instance_of(Faraday).to receive(:post) { response }
29
29
 
30
- expect(subject.request).to be_a Aurfy::Response
30
+ expect(client.purchase).to be_a Aurfy::Response
31
31
  end
32
32
  end
33
33
  end
@@ -1,13 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Aurfy::Configure do
4
- subject { described_class.new }
4
+ let(:configure) { described_class.new }
5
+
6
+ it "returns CREDIT_CARD_ORIGINAL_NAMES hash" do
7
+ hash = { union_pay: "UP", visa: "VISA", jcb: "JCB", master: "MC" }
8
+ expect(described_class::CREDIT_CARD_ORIGINAL_NAMES).to eq hash
9
+ end
5
10
 
6
11
  describe ".keys" do
7
12
  it "returns configure keys" do
8
- keys = [:merchantid, :orderid, :ordertime, :ordercurrency, :orderamount, :orderdescription, :txnremark1,
9
- :txnremark2, :charset, :clientip, :version, :transtype, :website, :cardtype, :cardnumber, :cv2,
10
- :expirydate, :signmethod, :trade_certificate]
13
+ keys = [:cardnumber, :cardtype, :charset, :cv2, :expirydate, :orderamount, :ordercurrency, :orderdescription, :orderid,
14
+ :ordertime, :merchantid, :signmethod, :trade_certificate, :transtype, :txnremark1, :txnremark2, :version,
15
+ :website]
11
16
 
12
17
  expect(described_class.keys).to eq keys
13
18
  end
@@ -15,40 +20,33 @@ describe Aurfy::Configure do
15
20
 
16
21
  describe "#params" do
17
22
  it "returns configure params" do
18
- allow(subject).to receive(:sorted_variables) { {} }
19
- allow(subject).to receive(:signature) { "signature" }
20
-
21
- expect(subject.params).to eq({ signature: "signature" })
22
- end
23
- end
23
+ allow(configure).to receive(:sorted_variables) { {} }
24
+ allow(configure).to receive(:signature) { "signature" }
24
25
 
25
- describe "#options=" do
26
- it "assigns variable for option" do
27
- expect do
28
- subject.options = { merchantid: "merchantid" }
29
- end.to change { subject.instance_variable_get(:"@merchantid") } .from(nil).to("merchantid")
26
+ expect(configure.params).to eq({ signature: "signature" })
30
27
  end
31
28
  end
32
29
 
33
30
  describe "#sorted_variables" do
34
31
  it "returns sorted instance variables" do
35
- subject.options = { trade_certificate: "test", cardnumber: "6200123456789012", orderid: "orderid",
36
- ordertime: "20150429124533" }
32
+ configure = described_class.new(trade_certificate: "test", cardnumber: "6200123456789012", orderid: "orderid",
33
+ ordertime: "20150429124533")
37
34
  sorted_variables = { cardnumber: "6200123456789012", cardtype: "UP", charset: "UTF-8", ordercurrency: "USD",
38
35
  orderdescription: "", orderid: "orderid", ordertime: "20150429124533", signmethod: "MD5",
39
36
  transtype: "PURCHASE", txnremark1: "", txnremark2: "", version: "1.0", website: "" }
40
37
 
41
- expect(subject.sorted_variables).to eq(sorted_variables)
38
+ expect(configure.sorted_variables).to eq(sorted_variables)
42
39
  end
43
40
  end
44
41
 
45
42
  describe "#signature_key" do
46
43
  it "returns sorted instance variables" do
47
- subject.options = { cardnumber: "6200123456789012", signmethod: "MD5", trade_certificate: "trade_certificate", orderid: "orderid",
48
- ordertime: "20150429124533" }
44
+ configure = described_class.new(cardnumber: "6200123456789012", signmethod: "MD5",
45
+ trade_certificate: "trade_certificate", orderid: "orderid",
46
+ ordertime: "20150429124533")
49
47
  signature_key = "cardnumber=6200123456789012&cardtype=UP&charset=UTF-8&ordercurrency=USD&orderdescription=&orderid=orderid&ordertime=20150429124533&transtype=PURCHASE&txnremark1=&txnremark2=&version=1.0&website=&trade_certificate"
50
48
 
51
- expect(subject.signature_key).to eq(signature_key)
49
+ expect(configure.signature_key).to eq(signature_key)
52
50
  end
53
51
  end
54
52
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Aurfy::Parser do
4
- subject { described_class.new(body) }
4
+ let(:parser) { described_class.new(body) }
5
5
  let(:body) { "merchantid=M000000000&orderamount=600.00&ordercurrency=USD&orderid=20150429115552415102000&ordertime=20150429115552&respcode=00&respmsg=The payment is successful.&signature=d2c4c43a7b2447d512ee3ef3c33754f4&signmethod=MD5&txnid=21150428000000006409&txnremark1=&txnremark2=&txnstatus=0&txntime=" }
6
6
 
7
7
  describe "#parse" do
@@ -12,7 +12,7 @@ describe Aurfy::Parser do
12
12
  signmethod: "MD5", txnid: "21150428000000006409", txnremark1: "", txnremark2: "",
13
13
  txnstatus: "0", txntime: "" }
14
14
 
15
- expect(subject.parse).to eq parsed_params
15
+ expect(parser.parse).to eq parsed_params
16
16
  end
17
17
  end
18
18
  end
@@ -1,25 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Aurfy::Response do
4
- subject { described_class.new(result) }
4
+ let(:response) { described_class.new(result) }
5
5
 
6
6
  let(:result) { double(Faraday::Response, body: "merchantid=M000000000&orderamount=600.00&ordercurrency=USD&orderid=20150429115552415102000&ordertime=20150429115552&respcode=00&respmsg=The payment is successful.&signature=d2c4c43a7b2447d512ee3ef3c33754f4&signmethod=MD5&txnid=21150428000000006409&txnremark1=&txnremark2=&txnstatus=0&txntime=") }
7
7
 
8
8
  it "assigns params" do
9
- expect(subject.merchantid).to eq "M000000000"
10
- expect(subject.orderamount).to eq "600.00"
11
- expect(subject.ordercurrency).to eq "USD"
12
- expect(subject.orderid).to eq "20150429115552415102000"
13
- expect(subject.ordertime).to eq "20150429115552"
14
- expect(subject.respcode).to eq "00"
15
- expect(subject.respmsg).to eq "The payment is successful."
16
- expect(subject.signature).to eq "d2c4c43a7b2447d512ee3ef3c33754f4"
17
- expect(subject.signmethod).to eq "MD5"
18
- expect(subject.txnid).to eq "21150428000000006409"
19
- expect(subject.txnremark1).to eq ""
20
- expect(subject.txnremark2).to eq ""
21
- expect(subject.txnstatus).to eq "0"
22
- expect(subject.txntime).to eq ""
9
+ expect(response.merchantid).to eq "M000000000"
10
+ expect(response.orderamount).to eq "600.00"
11
+ expect(response.ordercurrency).to eq "USD"
12
+ expect(response.orderid).to eq "20150429115552415102000"
13
+ expect(response.ordertime).to eq "20150429115552"
14
+ expect(response.respcode).to eq "00"
15
+ expect(response.respmsg).to eq "The payment is successful."
16
+ expect(response.signature).to eq "d2c4c43a7b2447d512ee3ef3c33754f4"
17
+ expect(response.signmethod).to eq "MD5"
18
+ expect(response.txnid).to eq "21150428000000006409"
19
+ expect(response.txnremark1).to eq ""
20
+ expect(response.txnremark2).to eq ""
21
+ expect(response.txnstatus).to eq "0"
22
+ expect(response.txntime).to eq ""
23
23
  end
24
24
 
25
25
  describe ".keys" do
@@ -34,7 +34,7 @@ describe Aurfy::Response do
34
34
  describe "#success?" do
35
35
  context "with successful result" do
36
36
  it "returns true" do
37
- expect(subject.success?).to be_truthy
37
+ expect(response.success?).to be_truthy
38
38
  end
39
39
  end
40
40
 
@@ -42,7 +42,7 @@ describe Aurfy::Response do
42
42
  let(:result) { double(Faraday::Response, body: "merchantid=M000000000&orderamount=600.00&ordercurrency=USD&orderid=20150429115552415102000&ordertime=20150429115552&respcode=97&respmsg=Internal error.&signature=d2c4c43a7b2447d512ee3ef3c33754f4&signmethod=MD5&txnid=21150428000000006409&txnremark1=&txnremark2=&txnstatus=0&txntime=") }
43
43
 
44
44
  it "returns false" do
45
- expect(subject.success?).to be_falsey
45
+ expect(response.success?).to be_falsey
46
46
  end
47
47
  end
48
48
  end
metadata CHANGED
@@ -1,77 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aurfy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Saito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-02 00:00:00.000000000 Z
11
+ date: 2016-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: credit_card_reader
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.0
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.0
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday
28
+ name: credit_card_reader
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.0
33
+ version: 0.0.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.0
40
+ version: 0.0.4
41
41
  - !ruby/object:Gem::Dependency
42
- name: pry
42
+ name: faraday
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.10.0
48
- type: :development
47
+ version: 0.9.0
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.10.0
54
+ version: 0.9.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 3.0.0
65
- type: :development
61
+ version: '1.6'
62
+ type: :runtime
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
69
66
  - - "~>"
70
67
  - !ruby/object:Gem::Version
71
- version: '3.0'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 3.0.0
68
+ version: '1.6'
75
69
  description: Ruby client for Aurfy
76
70
  email:
77
71
  - camelmasa@gmail.com