rms_web_service 0.0.1 → 0.0.2

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: f657900566ae9fc7c26ce9df5ef539fb9bd172f0
4
- data.tar.gz: e2e50030c4ec72c2e81e522cc0c11fc0dbfb17c8
3
+ metadata.gz: 48677c86bf718efe72101c4ceb6ef142e9326b4a
4
+ data.tar.gz: 813da41d26251b10ed74baf5871261c8b815d870
5
5
  SHA512:
6
- metadata.gz: 33b04d98d9d953d2f347c020e5b5c3274197cdee0bc99f25efc1a1e565ec98c40d0a90919a078ffcf74b1936d1f7ef7030361fe702fc788fe133d0bc509b62ae
7
- data.tar.gz: 459ffdd6be56b9f1acf6ec3da91e5b2d2f4cc75015d2764a7cfc58fba7addeaaeaeaa8b6f7848e541b94e7770a17b5c609e19d86bbc86d9bb4a57981c237a0e8
6
+ metadata.gz: 0b4cbad54e393a229ccd5c51ebb8216c4b8986ced086dbdd2836af3ad4e766499dc87e20e460a0b40f5edaba4fe5bd2c8fc94df2e2967164951e41e67506f27a
7
+ data.tar.gz: 9be9a613238343dcad86e5f6b75b3cb1bf09780de4c60db32a4c7408303f37db8288dfd6eb65e9e3adfd902d90f372846dc513083ac4a5c55d61d94d747d97f2
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --format doc
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  RMS Webservice APIのRubyラッパーです。
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/rms_web_service.svg)](http://badge.fury.io/rb/rms_web_service)
5
6
  [![Build Status](https://travis-ci.org/kamiya54/rms_web_service.svg)](https://travis-ci.org/kamiya54/rms_web_service)
6
7
 
7
8
  #### ご注意
@@ -33,7 +34,7 @@ Or install it yourself as:
33
34
  `RmsWebService.configuration`でサービスIDとライセンスキーを設定できます。各キーはRMSより発行できます。
34
35
 
35
36
  ```ruby
36
- RmsWebService.configuration do |c|
37
+ RmsWebService.configure do |c|
37
38
  c.service_secret = "dummy_service_secret"
38
39
  c.license_key = "dummy_license_key"
39
40
  end
@@ -4,20 +4,16 @@ module RmsWebService
4
4
  class Configuration
5
5
  attr_accessor :service_secret, :license_key
6
6
 
7
- def encoded_keys
8
- if service_secret.present? && license_key.present?
9
- return "ESA " + Base64.encode64(service_secret + ":" + license_key).gsub(/\n/, "")
10
- else
11
- raise AuthError, 'please set serviceSecret and licenseKey'
12
- end
7
+ def initialize(args={})
8
+ @service_secret = args[:service_secret]
9
+ @license_key = args[:license_key]
13
10
  end
14
- end
15
11
 
16
- def configuration(&block)
17
- @configuration ||= Configuration.new
18
- block.call @configuration if block_given?
19
- return @configuration
20
- end
12
+ def encoded_keys
13
+ raise RmsWebService::ParameterError, 'service_secret is required' unless service_secret.present?
14
+ raise RmsWebService::ParameterError, 'license_key is required' unless license_key.present?
21
15
 
22
- module_function :configuration
16
+ "ESA " + Base64.encode64(service_secret + ":" + license_key).chomp
17
+ end
18
+ end
23
19
  end
@@ -1,20 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.delete(args)
4
- xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
5
- xml.request do
6
- xml.itemDeleteRequest do
7
- xml.item do
8
- args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
9
- end
10
- end
11
- end
12
- end
13
-
14
- request = connection("item/delete").post {|req| req.body = xml_object.to_xml}
15
- return Delete.new(request.body)
16
- end
17
-
18
3
  class Delete
19
4
  include Response
20
5
  def initialize(xml)
@@ -1,10 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.get(args)
4
- request = connection('item/get').get {|req| req.params['itemUrl'] = args[:item_url]}
5
- return Get.new(request.body)
6
- end
7
-
8
3
  class Get
9
4
  include Response
10
5
  def initialize(xml)
@@ -1,20 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.insert(args)
4
- xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
5
- xml.request do
6
- xml.itemInsertRequest do
7
- xml.item do
8
- args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
9
- end
10
- end
11
- end
12
- end
13
-
14
- request = connection("item/insert").post {|req| req.body = xml_object.to_xml}
15
- return Insert.new(request.body)
16
- end
17
-
18
3
  class Insert
19
4
  include Response
20
5
  def initialize(xml)
@@ -1,24 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.items_update(args)
4
- xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
5
- xml.request do
6
- xml.itemsUpdateRequest do
7
- xml.items do
8
- args.each do |item|
9
- xml.item do
10
- item.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
17
-
18
- request = connection("items/update").post {|req| req.body = xml_object.to_xml}
19
- return ItemsUpdate.new(request.body)
20
- end
21
-
22
3
  class ItemsUpdate < Array
23
4
  include Response
24
5
  def initialize(xml)
@@ -1,13 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.search(args)
4
- request = connection("item/search").get do |req|
5
- args.each {|key, value| req.params["#{key.to_s.camelize(:lower)}"] = args[:"#{key}"]}
6
- end
7
-
8
- return Search.new(request.body)
9
- end
10
-
11
3
  class Search < ::Array
12
4
  include Response
13
5
  def initialize(xml)
@@ -1,20 +1,5 @@
1
1
  module RmsWebService
2
2
  class Item
3
- def self.update(args)
4
- xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
5
- xml.request do
6
- xml.itemUpdateRequest do
7
- xml.item do
8
- args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
9
- end
10
- end
11
- end
12
- end
13
-
14
- request = connection("item/update").post {|req| req.body = xml_object.to_xml}
15
- return Update.new(request.body)
16
- end
17
-
18
3
  class Update
19
4
  include Response
20
5
  def initialize(xml)
@@ -12,15 +12,94 @@ require 'rms_web_service/item/items_update'
12
12
 
13
13
  module RmsWebService
14
14
  class Item
15
- def self.connection(method)
16
- connection = Faraday.new(:url => endpoint(method)) do |c|
17
- c.adapter Faraday.default_adapter
18
- c.headers['Authorization'] = RmsWebService.configuration.encoded_keys
15
+ class << self
16
+ def connection(method)
17
+ connection = Faraday.new(:url => endpoint(method)) do |c|
18
+ c.adapter Faraday.default_adapter
19
+ c.headers['Authorization'] = RmsWebService.configuration.encoded_keys
20
+ end
21
+ end
22
+
23
+ def endpoint(method)
24
+ return Endpoint + method
25
+ end
26
+
27
+ def get(args)
28
+ request = connection('item/get').get {|req| req.params['itemUrl'] = args[:item_url]}
29
+ return Get.new(request.body)
19
30
  end
20
- end
21
31
 
22
- def self.endpoint(method)
23
- return Endpoint + method
32
+ def insert(args)
33
+ xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
34
+ xml.request do
35
+ xml.itemInsertRequest do
36
+ xml.item do
37
+ args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ request = connection("item/insert").post {|req| req.body = xml_object.to_xml}
44
+ return Insert.new(request.body)
45
+ end
46
+
47
+ def update(args)
48
+ xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
49
+ xml.request do
50
+ xml.itemUpdateRequest do
51
+ xml.item do
52
+ args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ request = connection("item/update").post {|req| req.body = xml_object.to_xml}
59
+ return Update.new(request.body)
60
+ end
61
+
62
+ def delete(args)
63
+ xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
64
+ xml.request do
65
+ xml.itemDeleteRequest do
66
+ xml.item do
67
+ args.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ request = connection("item/delete").post {|req| req.body = xml_object.to_xml}
74
+ return Delete.new(request.body)
75
+ end
76
+
77
+ def search(args)
78
+ request = connection("item/search").get do |req|
79
+ args.each {|key, value| req.params["#{key.to_s.camelize(:lower)}"] = args[:"#{key}"]}
80
+ end
81
+
82
+ return Search.new(request.body)
83
+ end
84
+
85
+ def items_update(args)
86
+ xml_object = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
87
+ xml.request do
88
+ xml.itemsUpdateRequest do
89
+ xml.items do
90
+ args.each do |item|
91
+ xml.item do
92
+ item.each {|key, value| eval("xml.#{key.to_s.camelize(:lower)} '#{value}'")}
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+
100
+ request = connection("items/update").post {|req| req.body = xml_object.to_xml}
101
+ return ItemsUpdate.new(request.body)
102
+ end
24
103
  end
25
104
  end
26
105
  end
@@ -1,3 +1,3 @@
1
1
  module RmsWebService
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -6,5 +6,22 @@ RWS = RmsWebService
6
6
 
7
7
  module RmsWebService
8
8
  Endpoint = "https://api.rms.rakuten.co.jp/es/1.0/"
9
- class AuthError < StandardError;end
9
+
10
+ @@configuration = Configuration.new
11
+
12
+ def configure(&block)
13
+ block.call @@configuration if block_given?
14
+ end
15
+ module_function :configure
16
+
17
+ def configuration
18
+ @@configuration
19
+ end
20
+ module_function :configuration
21
+
22
+ class AuthError < StandardError
23
+ end
24
+
25
+ class ParameterError < StandardError
26
+ end
10
27
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["kamiya54@gmail.com"]
11
11
  spec.summary = %q{Ruby wrapper for RMS Web Service.}
12
12
  spec.description = %q{Ruby wrapper for RMS Web Service.}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/kamiya54/rms_web_service"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "faraday", "~> 0.9.0"
22
- spec.add_dependency "nokogiri", "~> 1.6.2"
21
+ spec.add_dependency "faraday"
22
+ spec.add_dependency "nokogiri"
23
23
  spec.add_dependency "activesupport"
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -1,31 +1,44 @@
1
1
  require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService do
5
- describe '.configuration' do
6
- let(:config) {RmsWebService.configuration}
7
-
8
- context "don't set serviceSecret and licenseKey" do
9
- it 'raise AuthError' do
10
- expect{config.encoded_keys}.to raise_error RmsWebService::AuthError
11
- end
2
+
3
+ describe RmsWebService::Configuration do
4
+ let(:config){ described_class.new(service_secret: service_secret, license_key: license_key) }
5
+ let(:service_secret){ "dummy_service_secret" }
6
+ let(:license_key){ "dummy_license_key" }
7
+
8
+ describe "#service_secret" do
9
+ subject{ config.service_secret }
10
+ it { is_expected.to eq(service_secret) }
11
+ end
12
+
13
+ describe "#license_key" do
14
+ subject{ config.license_key }
15
+ it { is_expected.to eq(license_key) }
16
+ end
17
+
18
+ describe "#encoded_keys" do
19
+ context "with service_secret and license_key" do
20
+ let(:encoded_string){
21
+ encoded_credentials = Base64.encode64("#{service_secret}:#{license_key}")
22
+ "ESA #{encoded_credentials}".chomp
23
+ }
24
+
25
+ subject{ config.encoded_keys }
26
+ it { is_expected.to eq(encoded_string) }
12
27
  end
13
28
 
14
- context 'set serviceSecret and licenseKey correctly' do
15
- before :each do
16
- RmsWebService.configuration do |c|
17
- c.service_secret = 'dummy_service_secret'
18
- c.license_key = 'dummy_license_key'
19
- end
20
- end
21
-
22
- it 'can set parameters properly' do
23
- expect(config.service_secret).to eq 'dummy_service_secret'
24
- expect(config.license_key).to eq 'dummy_license_key'
29
+ context "without service_secret" do
30
+ before { config.service_secret = nil }
31
+
32
+ it "should raise ParameterError" do
33
+ expect{ config.encoded_keys }.to raise_error(RmsWebService::ParameterError, /service_secret/)
25
34
  end
26
-
27
- it 'return encoded keys' do
28
- expect(Base64.decode64(config.encoded_keys.gsub('ESA ', ''))).to eq 'dummy_service_secret:dummy_license_key'
35
+ end
36
+
37
+ context "without license_key" do
38
+ before { config.license_key = nil }
39
+
40
+ it "should raise ParameterError" do
41
+ expect{ config.encoded_keys }.to raise_error(RmsWebService::ParameterError, /license_key/)
29
42
  end
30
43
  end
31
44
  end
@@ -6,12 +6,12 @@ describe RmsWebService::Item::Delete do
6
6
  let(:api) {RmsWebService::Item.delete({:item_url => 'test001'})}
7
7
 
8
8
  before :all do
9
- RmsWebService.configuration do |c|
9
+ RmsWebService.configure do |c|
10
10
  c.service_secret = 'dummy_service_secret'
11
11
  c.license_key = 'dummy_license_key'
12
12
  end
13
13
  end
14
-
14
+
15
15
  before :each do
16
16
  stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/delete")
17
17
  .to_return(:status => 200, body: fixture('delete.xml'))
@@ -6,7 +6,7 @@ describe RmsWebService::Item::Get do
6
6
  let(:api) {RmsWebService::Item.get(:item_url => 'test001')}
7
7
 
8
8
  before do
9
- RmsWebService.configuration do |c|
9
+ RmsWebService.configure do |c|
10
10
  c.service_secret = 'dummy_service_secret'
11
11
  c.license_key = 'dummy_license_key'
12
12
  end
@@ -10,12 +10,12 @@ describe RmsWebService::Item::Insert do
10
10
  })}
11
11
 
12
12
  before :all do
13
- RmsWebService.configuration do |c|
13
+ RmsWebService.configure do |c|
14
14
  c.service_secret = 'dummy_service_secret'
15
15
  c.license_key = 'dummy_license_key'
16
16
  end
17
17
  end
18
-
18
+
19
19
  before :each do
20
20
  stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/insert")
21
21
  .to_return(:status => 200, body: fixture('insert.xml'))
@@ -9,7 +9,7 @@ describe RmsWebService::Item::ItemsUpdate do
9
9
  ])}
10
10
 
11
11
  before do
12
- RmsWebService.configuration do |c|
12
+ RmsWebService.configure do |c|
13
13
  c.service_secret = 'dummy_service_secret'
14
14
  c.license_key = 'dummy_license_key'
15
15
  end
@@ -6,7 +6,7 @@ describe RmsWebService::Item::Search do
6
6
  let(:api) {RmsWebService::Item.search(:item_name => 'test001', :item_price_from => 1)}
7
7
 
8
8
  before do
9
- RmsWebService.configuration do |c|
9
+ RmsWebService.configure do |c|
10
10
  c.service_secret = 'dummy_service_secret'
11
11
  c.license_key = 'dummy_license_key'
12
12
  end
@@ -6,12 +6,12 @@ describe RmsWebService::Item::Update do
6
6
  let(:api) {RmsWebService::Item.update({:item_url => 'test001', :item_price => '10000'})}
7
7
 
8
8
  before :all do
9
- RmsWebService.configuration do |c|
9
+ RmsWebService.configure do |c|
10
10
  c.service_secret = 'dummy_service_secret'
11
11
  c.license_key = 'dummy_license_key'
12
12
  end
13
13
  end
14
-
14
+
15
15
  before :each do
16
16
  stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/update")
17
17
  .to_return(:status => 200, body: fixture('update.xml'))
@@ -4,7 +4,7 @@ require 'rms_web_service/item'
4
4
  describe RmsWebService::Item do
5
5
  describe '.connection' do
6
6
  before do
7
- RmsWebService.configuration do |c|
7
+ RmsWebService.configure do |c|
8
8
  c.service_secret = 'dummy_service_secret'
9
9
  c.license_key = 'dummy_license_key'
10
10
  end
@@ -1 +1,11 @@
1
1
  require 'spec_helper'
2
+
3
+ describe RmsWebService do
4
+ describe '.configure' do
5
+ end
6
+
7
+ describe ".configuration" do
8
+ subject { described_class.configuration }
9
+ it { is_expected.to be_a(RmsWebService::Configuration) }
10
+ end
11
+ end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rms_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kamiya54
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2014-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
19
+ version: '0'
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.9.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.2
33
+ version: '0'
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: 1.6.2
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -130,6 +130,7 @@ extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
132
  - .gitignore
133
+ - .rspec
133
134
  - .travis.yml
134
135
  - Gemfile
135
136
  - Guardfile
@@ -165,7 +166,7 @@ files:
165
166
  - spec/rms_web_service/item_spec.rb
166
167
  - spec/rms_web_service_spec.rb
167
168
  - spec/spec_helper.rb
168
- homepage: ''
169
+ homepage: https://github.com/kamiya54/rms_web_service
169
170
  licenses:
170
171
  - MIT
171
172
  metadata: {}