open_taobao 0.0.3 → 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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a0d2cd1f2224327805d2a53d744fa6a2e48bde17
4
+ data.tar.gz: 902d65b7f744defc6380de2ac0f66037a20d17c4
5
+ SHA512:
6
+ metadata.gz: 281732d45349bbaf20424eb940c272d7494571d19f74605328e95dc37342040b4107c10e7d8868d30cb1136002f53aef10706d7c09f645502f2fedea8cc7873f
7
+ data.tar.gz: aefdde07064cc319103cf3203e371c233c8e142a3db835f800c6846a28aa3d0aaf0b137566531b1a67174000c61bbc4a96fc9d7a41f7416f8bf072226cd9303d
@@ -0,0 +1,3 @@
1
+ ## 2013-05-12
2
+
3
+ pid is not required in config file, but will be loaded to config for back compatibility.
data/README.md CHANGED
@@ -3,12 +3,19 @@ OpenTaobao [![Build Status](https://secure.travis-ci.org/wongyouth/open_taobao.p
3
3
 
4
4
  Taobao Open Platform client for ruby. Rails3 is supported.
5
5
 
6
+ ## NOTICE
7
+
8
+ `pid` is removed from config file, it's not required any more.
9
+
6
10
  ## Installation
7
11
 
8
12
  Add this line to your application's Gemfile:
9
13
 
10
14
  gem 'open_taobao'
11
- gem 'patron' # add this line if you want to use [patron][] instead of Net::HTTP
15
+
16
+ If you want to use [patron][] as http client instead of Net::HTTP, add line below to your Gemfile
17
+
18
+ gem 'patron'
12
19
 
13
20
  And then execute:
14
21
 
@@ -18,18 +25,20 @@ Or install it yourself as:
18
25
 
19
26
  $ gem install open_taobao
20
27
 
21
- Run generate to complete install:
28
+ ## Usage
22
29
 
23
- $ rails g open_taobao:install
30
+ ### Rails with yaml file configured
24
31
 
25
- 在你的`Rails`项目的`config`目录下会生成一个`taobao.yml`文件,
26
- 打开taobao.yml文件,设置你自己的`app_key`, `secret_key`, 淘宝客的`pid`
32
+ Run generator to generate config file:
27
33
 
28
- ## Usage
34
+ $ rails g open_taobao:install
29
35
 
30
- ### Rails with yaml file configured
36
+ It will generate a `taobao.yml` file under your Rails' config dir.
37
+ Open the file and configure it with your taobao info.
38
+
39
+ Notice: `app_key`, `secret_key`, `endpoint` must be included in your YAML file, otherwise OpenTaobao.load will fail.
31
40
 
32
- 调用`OpenTaobao.get`方法,传入相应参数:
41
+ call `OpenTaobao.get`,with taobao parameters:
33
42
 
34
43
  hash = OpenTaobao.get(
35
44
  :method => "taobao.itemcats.get",
@@ -37,14 +46,13 @@ Run generate to complete install:
37
46
  :parent_cid => 0
38
47
  )
39
48
 
40
- 返回内容将自动转化为hash格式。
49
+ The return data will be converted to a Hash automatically.
41
50
 
42
51
  ### plain ruby
43
52
 
44
53
  OpenTaobao.config = {
45
54
  'app_key' => 'test',
46
55
  'secret_key' => 'test',
47
- 'pid' => 'test',
48
56
  'endpoint' => "http://gw.api.tbsandbox.com/router/rest"
49
57
  }
50
58
 
@@ -56,6 +64,17 @@ Run generate to complete install:
56
64
  :parent_cid => 0
57
65
  )
58
66
 
67
+ ### get query string
68
+
69
+ If you want the query string with some params just pass the params to OpenTaobao.url() the same as OpenTaobao.get().
70
+ The query string will change every time your executed because timestamps changed.
71
+
72
+ OpenTaobao.url(
73
+ :method => "taobao.itemcats.get",
74
+ :fields => "cid,parent_id,name,is_parent",
75
+ :parent_cid => 0
76
+ )
77
+
59
78
  ## Contributing
60
79
 
61
80
  1. Fork it
@@ -1,18 +1,15 @@
1
1
  development:
2
2
  app_key: 'test'
3
3
  secret_key: 'test'
4
- pid: 'test'
5
4
  endpoint: "http://gw.api.tbsandbox.com/router/rest"
6
5
 
7
6
  test:
8
7
  app_key: 'test'
9
8
  secret_key: 'test'
10
- pid: 'test'
11
9
  endpoint: "http://gw.api.tbsandbox.com/router/rest"
12
10
 
13
11
  production:
14
12
  app_key: 'YOUR-KEY'
15
13
  secret_key: 'YOUR-KEY'
16
- pid: 'YOUR-PID'
17
14
  endpoint: "http://gw.api.taobao.com/router/rest"
18
15
 
@@ -34,7 +34,6 @@ module OpenTaobao
34
34
  #
35
35
  # app_key: "YOUR APP KEY"
36
36
  # secret_key: "YOUR SECRET KEY"
37
- # pid: "YOUR TAOBAOKE pid"
38
37
  # endpoint: "TAOBAO GATEWAY API URL"
39
38
  #
40
39
  def load(config_file)
@@ -55,7 +54,7 @@ module OpenTaobao
55
54
  # raise exception if config key missed in YAML file
56
55
  def check_config
57
56
  list = []
58
- %w(app_key secret_key pid endpoint).map do |k|
57
+ %w(app_key secret_key endpoint).map do |k|
59
58
  list << k unless config.has_key? k
60
59
  end
61
60
 
@@ -74,7 +73,7 @@ module OpenTaobao
74
73
  ENV['TAOBAO_API_KEY'] = config['app_key']
75
74
  ENV['TAOBAO_SECRET_KEY'] = config['secret_key']
76
75
  ENV['TAOBAO_ENDPOINT'] = config['endpoint']
77
- ENV['TAOBAOKE_PID'] = config['pid']
76
+ ENV['TAOBAOKE_PID'] = config['pid'] # for compatible with v0.0.3
78
77
  end
79
78
 
80
79
  # Initialize http sesison
@@ -91,7 +90,11 @@ module OpenTaobao
91
90
 
92
91
  # Return request signature with MD5 signature method
93
92
  def sign(params)
94
- Digest::MD5::hexdigest("#{config['secret_key']}#{sorted_option_string params}#{config['secret_key']}").upcase
93
+ Digest::MD5::hexdigest(wrap_with_secret sorted_option_string(params)).upcase
94
+ end
95
+
96
+ def wrap_with_secret(s)
97
+ config['secret_key'] + s + config['secret_key']
95
98
  end
96
99
 
97
100
  # Return sorted request parameter by request key
@@ -1,3 +1,3 @@
1
1
  module OpenTaobao
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -4,7 +4,7 @@ require File.expand_path('../lib/open_taobao/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["wongyouth"]
6
6
  gem.email = ["wongyouth@gmail.com"]
7
- gem.description = %q{淘宝开放平台ruby版,支持Rails3}
7
+ gem.description = %q{淘宝开放平台ruby版,支持Rails3~}
8
8
  gem.summary = %q{Open Taobao API for ruby}
9
9
  gem.homepage = "http://github.com/wongyouth/open_taobao"
10
10
 
@@ -5,45 +5,42 @@ require 'tempfile'
5
5
  describe OpenTaobao do
6
6
  ENDPOINT = "http://gw.api.tbsandbox.com/router/rest"
7
7
 
8
- before(:each) do
9
- @now = Time.parse('2012-10-29 23:30')
10
- Time.stub(:now) { @now }
11
- end
12
-
13
8
  let(:config_file) do
14
9
  file = Tempfile.new 'taobao.yml'
15
10
  File.open file.path, 'w+' do |f|
16
11
  f.write <<-EOS.gsub(/^ +/, '')
17
12
  app_key: 'test'
18
13
  secret_key: 'test'
19
- pid: 'test'
20
14
  endpoint: '#{ENDPOINT}'
21
15
  EOS
22
16
  end
23
17
  file
24
18
  end
25
19
 
20
+ before(:each) do
21
+ @now = Time.parse('2012-10-29 23:30')
22
+ Time.stub(:now) { @now }
23
+ OpenTaobao.load(config_file.path)
24
+ end
25
+
26
26
  # we only need to load config file here once for all test
27
27
  it "should load config file" do
28
- OpenTaobao.load(config_file.path)
29
28
  OpenTaobao.config.should == {
30
29
  'app_key' => 'test',
31
30
  'secret_key' => 'test',
32
- 'pid' => 'test',
33
31
  'endpoint' => "http://gw.api.tbsandbox.com/router/rest"
34
32
  }
35
33
  end
36
34
 
37
35
  it "should raise exception if config yaml does not include correct keys" do
38
36
  OpenTaobao.config = {
39
- 'app_key' => 'test',
40
37
  'secret_key' => 'test',
41
38
  'endpoint' => "http://gw.api.tbsandbox.com/router/rest"
42
39
  }
43
40
 
44
41
  expect {
45
42
  OpenTaobao.check_config
46
- }.to raise_error('[pid] not included in your yaml file.')
43
+ }.to raise_error('[app_key] not included in your yaml file.')
47
44
  end
48
45
 
49
46
  it "should merge with default options" do
metadata CHANGED
@@ -1,113 +1,100 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open_taobao
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - wongyouth
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-10 00:00:00.000000000 Z
11
+ date: 2013-05-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: faraday
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: autotest
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rake
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
- description: 淘宝开放平台ruby版,支持Rails3
97
+ description: 淘宝开放平台ruby版,支持Rails3~
111
98
  email:
112
99
  - wongyouth@gmail.com
113
100
  executables: []
@@ -117,6 +104,7 @@ files:
117
104
  - .gitignore
118
105
  - .rspec
119
106
  - .travis.yml
107
+ - CHNAGELOG.md
120
108
  - Gemfile
121
109
  - LICENSE
122
110
  - README.md
@@ -132,33 +120,26 @@ files:
132
120
  - spec/spec_helper.rb
133
121
  homepage: http://github.com/wongyouth/open_taobao
134
122
  licenses: []
123
+ metadata: {}
135
124
  post_install_message:
136
125
  rdoc_options: []
137
126
  require_paths:
138
127
  - lib
139
128
  required_ruby_version: !ruby/object:Gem::Requirement
140
- none: false
141
129
  requirements:
142
- - - ! '>='
130
+ - - '>='
143
131
  - !ruby/object:Gem::Version
144
132
  version: '0'
145
- segments:
146
- - 0
147
- hash: -1746376069650641682
148
133
  required_rubygems_version: !ruby/object:Gem::Requirement
149
- none: false
150
134
  requirements:
151
- - - ! '>='
135
+ - - '>='
152
136
  - !ruby/object:Gem::Version
153
137
  version: '0'
154
- segments:
155
- - 0
156
- hash: -1746376069650641682
157
138
  requirements: []
158
139
  rubyforge_project:
159
- rubygems_version: 1.8.23
140
+ rubygems_version: 2.0.0
160
141
  signing_key:
161
- specification_version: 3
142
+ specification_version: 4
162
143
  summary: Open Taobao API for ruby
163
144
  test_files:
164
145
  - spec/open_taobao_spec.rb