yahoo_store_api 0.1.1
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 +7 -0
- data/.gitignore +13 -0
- data/.travis.yml +12 -0
- data/Gemfile +4 -0
- data/README.md +123 -0
- data/Rakefile +10 -0
- data/lib/yahoo_store_api/helper.rb +71 -0
- data/lib/yahoo_store_api/item/delete_item.rb +14 -0
- data/lib/yahoo_store_api/item/edit_item.rb +14 -0
- data/lib/yahoo_store_api/item/get_item.rb +13 -0
- data/lib/yahoo_store_api/item.rb +3 -0
- data/lib/yahoo_store_api/publish/reserve_publish.rb +17 -0
- data/lib/yahoo_store_api/publish.rb +1 -0
- data/lib/yahoo_store_api/stock/get_stock.rb +12 -0
- data/lib/yahoo_store_api/stock/set_stock.rb +14 -0
- data/lib/yahoo_store_api/stock.rb +2 -0
- data/lib/yahoo_store_api/version.rb +3 -0
- data/lib/yahoo_store_api.rb +62 -0
- data/yahoo_store_api.gemspec +37 -0
- metadata +229 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b74be565c454130d107b1bd5705a7ef39afa9396
|
4
|
+
data.tar.gz: ba27dbbccbe6b8f7487baabd81385a3112a6893b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0753da206fbf5b090afa7a748662b5ea13cd6902cb13ef90ef654177099ec48aeb0ad1811f6be8450c3d02cd0f04a7dc220dfa13980da73ae0e3442c8fcc78c6
|
7
|
+
data.tar.gz: 4428a024aa947261f26b852bb0a20e19f3beedc2c8fca285f45fcbbf72968b3144225879df91695820d1b437f47ad10144a0d4110b728ff04e530e2b5fc1297e
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
# YahooStoreApi
|
2
|
+
|
3
|
+
[](https://travis-ci.org/t4traw/yahoo_store_api)
|
4
|
+
[](https://codeclimate.com/github/t4traw/yahoo_store_api)
|
5
|
+
|
6
|
+
Yahoo!ショッピング プロフェッショナル出店ストア向けAPIを簡単に叩けるrubyラッパーです。
|
7
|
+
|
8
|
+
現在開発中です🐛 まだ商品情報のCRUDと在庫情報の取得・更新、反映予約しかできません。順次機能追加をしていきたいと思います。
|
9
|
+
|
10
|
+
## できること
|
11
|
+
|
12
|
+
* 商品に関連するAPI
|
13
|
+
* 商品参照API(`get_item`)
|
14
|
+
* 商品登録API(`set_item`)
|
15
|
+
* 商品削除API(`delete_item`)
|
16
|
+
* 在庫に関連するAPI
|
17
|
+
* 在庫参照API(`get_stock`)
|
18
|
+
* 在庫更新API(`set_stock`)
|
19
|
+
* 出品管理に関連するAPI
|
20
|
+
* 全反映予約API(`reserve_publish`)
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
gem 'yahoo_store_api'
|
26
|
+
```
|
27
|
+
|
28
|
+
## 事前準備
|
29
|
+
|
30
|
+
事前にストア出品アカウントと連携した認証コードが必要になります。
|
31
|
+
|
32
|
+
まず、Yahooデベロッパーネットワークの[Yahoo!ショッピングのストア運営をサポートするAPIを利用したアプリケーション](https://e.developer.yahoo.co.jp/shopping/register)にアプリケーションを登録します。
|
33
|
+
|
34
|
+
登録が終えたら、次に[認可コードを取得](https://developer.yahoo.co.jp/yconnect/server_app/explicit/authorization.html)する必要があります。ページに表示するかリダイレクトした時のパラメーターにある認証コードを取得します。
|
35
|
+
|
36
|
+
※シンプルにページ上に認証コードを表示させる例: https://auth.login.yahoo.co.jp/yconnect/v1/authorization?response_type=code+id_token&client_id=[上で登録したアプリケーションID]&state=foobar&redirect_uri=oob&nonce=hogehoge
|
37
|
+
|
38
|
+
stateやnonceなどは[Authorizationエンドポイント](https://developer.yahoo.co.jp/yconnect/server_app/explicit/authorization.html)に詳細がありますので、適宜変更してください。
|
39
|
+
|
40
|
+
## Initialize
|
41
|
+
|
42
|
+
ストアアカウント、上で登録したアプリケーションid、シークレット、取得した認証コードでインスタンスを生成します。
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
client = RmsItemApi::Client.new(
|
46
|
+
seller_id: YOUR_STORE_ID, # ストアアカウントid
|
47
|
+
application_id: YOUR_APPLICATION_ID, # アプリケーションid
|
48
|
+
application_secret: YOUR_SECRET, # シークレット
|
49
|
+
authorization_code: AUTHORIZATION_CODE # 認証コード
|
50
|
+
)
|
51
|
+
```
|
52
|
+
|
53
|
+
なお、この認証コードは1回のみ使用可能で、次からはリフレッシュトークンを使用するか、再度認証コードを取得する必要があります。リフレッシュトークンは生成したインスタンスから取得する事ができます。
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
puts client.refresh_token
|
57
|
+
```
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
client = RmsItemApi::Client.new(
|
61
|
+
seller_id: YOUR_STORE_ID, # ストアアカウントid
|
62
|
+
application_id: YOUR_APPLICATION_ID, # アプリケーションid
|
63
|
+
application_secret: YOUR_SECRET, # シークレット
|
64
|
+
refresh_token: YOUR_REFRESH_TOKEN # リフレッシュトークン
|
65
|
+
)
|
66
|
+
```
|
67
|
+
|
68
|
+
## Usage
|
69
|
+
|
70
|
+
### 商品情報の参照
|
71
|
+
|
72
|
+
ストアに登録されている商品情報を取得できます。
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
item = client.get_item('test123')
|
76
|
+
|
77
|
+
# 商品名を取得
|
78
|
+
item.name
|
79
|
+
# 通常販売価格を取得
|
80
|
+
item.price
|
81
|
+
# 取得したすべての情報をhashで出力
|
82
|
+
item.all
|
83
|
+
```
|
84
|
+
|
85
|
+
### 商品情報の登録/更新
|
86
|
+
|
87
|
+
商品情報を登録・更新できます。
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
item = client.edit_item({
|
91
|
+
item_code: 'test1234',
|
92
|
+
name: 'test_item',
|
93
|
+
path: 'test_category',
|
94
|
+
price: 1000,
|
95
|
+
})
|
96
|
+
|
97
|
+
# 送信結果をhashで出力
|
98
|
+
item.all
|
99
|
+
```
|
100
|
+
|
101
|
+
### 在庫情報の参照
|
102
|
+
|
103
|
+
ストアに登録されている商品の在庫情報を取得できます。
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
stock = client.get_stock('test123')
|
107
|
+
|
108
|
+
# 在庫数の取得
|
109
|
+
stock.quantity
|
110
|
+
# 取得したすべての情報をhashで出力
|
111
|
+
stock.all
|
112
|
+
```
|
113
|
+
|
114
|
+
### 全反映予約
|
115
|
+
|
116
|
+
反映予約をします。
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
pub = client.reserve_publish
|
120
|
+
|
121
|
+
# 結果を取得
|
122
|
+
stock.status
|
123
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
module YahooStoreApi
|
2
|
+
module Helper
|
3
|
+
|
4
|
+
ENDPOINT = "https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/".freeze
|
5
|
+
def connection(method)
|
6
|
+
Faraday.new(url: ENDPOINT + method) do |c|
|
7
|
+
c.adapter Faraday.default_adapter
|
8
|
+
c.headers['Authorization'] = "Bearer " + @access_token
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def handler(response)
|
13
|
+
rexml = REXML::Document.new(response.body)
|
14
|
+
if rexml.elements['ResultSet/Result']
|
15
|
+
response_parser(rexml, xpoint: 'ResultSet/Result')
|
16
|
+
elsif rexml.elements['ResultSet/Status']
|
17
|
+
response_parser(rexml, xpoint: 'ResultSet')
|
18
|
+
elsif rexml.elements['Error/Message']
|
19
|
+
error_parser(rexml)
|
20
|
+
else
|
21
|
+
puts rexml
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def response_parser(rexml, xpoint:)
|
26
|
+
attributes = {}
|
27
|
+
rexml.elements.each(xpoint) do |result|
|
28
|
+
result.children.each do |el|
|
29
|
+
next if el.to_s.strip.blank?
|
30
|
+
if el.has_elements?
|
31
|
+
el_ary = el.children.reject{|v| v.to_s.blank?}.map{|v| v.text.try!(:force_encoding, 'utf-8')}.reject{|v| v.to_s.blank?}
|
32
|
+
attributes[el.name.underscore] = el_ary
|
33
|
+
begin
|
34
|
+
self.define_singleton_method(el.name.underscore) {
|
35
|
+
el_ary
|
36
|
+
}
|
37
|
+
rescue => e
|
38
|
+
puts e
|
39
|
+
end # begin
|
40
|
+
else
|
41
|
+
attributes[el.name.underscore] = el.text
|
42
|
+
begin
|
43
|
+
self.define_singleton_method(el.name.underscore) {
|
44
|
+
el.text.try!(:force_encoding, 'utf-8')
|
45
|
+
}
|
46
|
+
rescue => e
|
47
|
+
puts e
|
48
|
+
end
|
49
|
+
end # if el.has_elements?
|
50
|
+
end # result.children.each
|
51
|
+
self.define_singleton_method('all') {
|
52
|
+
attributes
|
53
|
+
}
|
54
|
+
end # xml.elements.each(xpoint)
|
55
|
+
self
|
56
|
+
end # def response_parser
|
57
|
+
|
58
|
+
def error_parser(rexml)
|
59
|
+
result = {
|
60
|
+
status: 'NG',
|
61
|
+
message: rexml.elements['Error/Message'].text
|
62
|
+
}
|
63
|
+
result.each do |k, v|
|
64
|
+
self.define_singleton_method(k) { v }
|
65
|
+
end
|
66
|
+
self.define_singleton_method('all') { result }
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module YahooStoreApi
|
2
|
+
module Item
|
3
|
+
include YahooStoreApi::Helper
|
4
|
+
|
5
|
+
def delete_item(str)
|
6
|
+
request = "seller_id=#{@seller_id}&item_code=#{URI.encode_www_form_component(str)}"
|
7
|
+
|
8
|
+
handler connection('deleteItem').post { |r|
|
9
|
+
r.body = request
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module YahooStoreApi
|
2
|
+
module Publish
|
3
|
+
include YahooStoreApi::Helper
|
4
|
+
|
5
|
+
def reserve_publish(mode: 1, reserve_time: nil)
|
6
|
+
request = []
|
7
|
+
request << "seller_id=#{@seller_id}"
|
8
|
+
request << "mode=#{mode}"
|
9
|
+
request << "seller_id=#{reserve_time}" if reserve_time
|
10
|
+
|
11
|
+
handler connection('reservePublish').post { |r|
|
12
|
+
r.body = request.join('&')
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'yahoo_store_api/publish/reserve_publish'
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require "yahoo_store_api/version"
|
2
|
+
require 'yahoo_store_api/helper.rb'
|
3
|
+
require 'yahoo_store_api/item.rb'
|
4
|
+
require 'yahoo_store_api/stock.rb'
|
5
|
+
require 'yahoo_store_api/publish.rb'
|
6
|
+
|
7
|
+
require 'rexml/document'
|
8
|
+
require 'yaml'
|
9
|
+
require 'uri'
|
10
|
+
require 'faraday'
|
11
|
+
require 'active_support'
|
12
|
+
require 'active_support/core_ext'
|
13
|
+
require 'active_model'
|
14
|
+
|
15
|
+
module YahooStoreApi
|
16
|
+
class Client
|
17
|
+
attr_reader :refresh_token
|
18
|
+
include YahooStoreApi::Item
|
19
|
+
include YahooStoreApi::Stock
|
20
|
+
include YahooStoreApi::Publish
|
21
|
+
|
22
|
+
def initialize(seller_id:, application_id:, application_secret:, authorization_code: nil, refresh_token: nil)
|
23
|
+
@seller_id = seller_id
|
24
|
+
@application_id = application_id
|
25
|
+
@application_secret = application_secret
|
26
|
+
@access_token = reflesh_access_token(refresh_token) || get_access_token(authorization_code)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
ACCESS_TOKEN_ENDPOINT = 'https://auth.login.yahoo.co.jp/yconnect/v1/token'.freeze
|
32
|
+
def access_token_connection
|
33
|
+
Faraday.new(url: ACCESS_TOKEN_ENDPOINT) do |c|
|
34
|
+
c.adapter Faraday.default_adapter
|
35
|
+
c.authorization :Basic, Base64.strict_encode64("#{@application_id}:#{@application_secret}")
|
36
|
+
c.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_access_token(authorization_code)
|
41
|
+
param = "grant_type=authorization_code&code=#{authorization_code}&redirect_uri=oob"
|
42
|
+
obj = access_token_connection.post{|r| r.body = param}
|
43
|
+
result = hash_converter(obj)
|
44
|
+
@refresh_token = result[:refresh_token]
|
45
|
+
result[:access_token]
|
46
|
+
end
|
47
|
+
|
48
|
+
def reflesh_access_token(refresh_token)
|
49
|
+
param = "grant_type=refresh_token&refresh_token=#{refresh_token}"
|
50
|
+
obj = access_token_connection.post{|r| r.body = param}
|
51
|
+
result = hash_converter(obj)
|
52
|
+
@refresh_token = refresh_token
|
53
|
+
result[:access_token]
|
54
|
+
end
|
55
|
+
|
56
|
+
def hash_converter(str)
|
57
|
+
ary = str.body.delete('"{}').split(/[:,]/)
|
58
|
+
ary.each_slice(2).map{|k, v| [k.to_sym, v]}.to_h
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'yahoo_store_api/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "yahoo_store_api"
|
8
|
+
spec.version = YahooStoreApi::VERSION
|
9
|
+
spec.authors = ["t4traw"]
|
10
|
+
spec.email = ["t4traw@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Yahoo!ショッピング プロフェッショナル出店ストア向けAPIを簡単に叩けるrubyラッパー}
|
13
|
+
spec.description = %q{Yahoo!ショッピング プロフェッショナル出店ストア向けAPIを簡単に叩けるrubyラッパー}
|
14
|
+
spec.homepage = "https://github.com/t4traw/yahoo_store_api"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_dependency "faraday", '~> 0.12.1'
|
25
|
+
spec.add_dependency "activesupport", '~> 5.1.0'
|
26
|
+
spec.add_dependency "activemodel", '~> 5.1.0'
|
27
|
+
spec.add_dependency "builder"
|
28
|
+
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
+
spec.add_development_dependency "pry", "~> 0.10.4"
|
32
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
33
|
+
spec.add_development_dependency "minitest-reporters"
|
34
|
+
spec.add_development_dependency "webmock"
|
35
|
+
spec.add_development_dependency "vcr"
|
36
|
+
spec.add_development_dependency "dotenv"
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yahoo_store_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- t4traw
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-05-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.12.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.12.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 5.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 5.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activemodel
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 5.1.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 5.1.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: builder
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.14'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.14'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '10.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '10.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.10.4
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.10.4
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: minitest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '5.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '5.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: minitest-reporters
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: webmock
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: vcr
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: dotenv
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
description: Yahoo!ショッピング プロフェッショナル出店ストア向けAPIを簡単に叩けるrubyラッパー
|
182
|
+
email:
|
183
|
+
- t4traw@gmail.com
|
184
|
+
executables: []
|
185
|
+
extensions: []
|
186
|
+
extra_rdoc_files: []
|
187
|
+
files:
|
188
|
+
- ".gitignore"
|
189
|
+
- ".travis.yml"
|
190
|
+
- Gemfile
|
191
|
+
- README.md
|
192
|
+
- Rakefile
|
193
|
+
- lib/yahoo_store_api.rb
|
194
|
+
- lib/yahoo_store_api/helper.rb
|
195
|
+
- lib/yahoo_store_api/item.rb
|
196
|
+
- lib/yahoo_store_api/item/delete_item.rb
|
197
|
+
- lib/yahoo_store_api/item/edit_item.rb
|
198
|
+
- lib/yahoo_store_api/item/get_item.rb
|
199
|
+
- lib/yahoo_store_api/publish.rb
|
200
|
+
- lib/yahoo_store_api/publish/reserve_publish.rb
|
201
|
+
- lib/yahoo_store_api/stock.rb
|
202
|
+
- lib/yahoo_store_api/stock/get_stock.rb
|
203
|
+
- lib/yahoo_store_api/stock/set_stock.rb
|
204
|
+
- lib/yahoo_store_api/version.rb
|
205
|
+
- yahoo_store_api.gemspec
|
206
|
+
homepage: https://github.com/t4traw/yahoo_store_api
|
207
|
+
licenses: []
|
208
|
+
metadata: {}
|
209
|
+
post_install_message:
|
210
|
+
rdoc_options: []
|
211
|
+
require_paths:
|
212
|
+
- lib
|
213
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - ">="
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
218
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
requirements: []
|
224
|
+
rubyforge_project:
|
225
|
+
rubygems_version: 2.5.2
|
226
|
+
signing_key:
|
227
|
+
specification_version: 4
|
228
|
+
summary: Yahoo!ショッピング プロフェッショナル出店ストア向けAPIを簡単に叩けるrubyラッパー
|
229
|
+
test_files: []
|