ns_service_pack 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  #==============History:
4
4
  #==0.1.7
5
+ Fix and release 0.1.7
6
+
5
7
 
6
8
  #==0.1.6
7
9
  * Fix README 文件中的忘加Ns::的bug
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -3,45 +3,48 @@ require 'rest_client'
3
3
 
4
4
  module Ns
5
5
  class Client
6
- #delegate :new, :get, :post, :to=>RestClient::Resource TODO ??
7
- def self.get(url = '', params = {})
8
- #params TODO
9
- request('get', url, params)
6
+ def self.request(action = 'get', url = '', data_params = {})
7
+ #TODO 网路异常处理 #use RestClient now
8
+ #get specific handle FIXME
9
+ if action == 'get'
10
+ ps = data_params[:data].dup
11
+ ps.delete(:id)
12
+ url = Util.params_query(url, ps)
13
+ end
14
+ Rails.logger.debug "====#{action} to #{url} with params: #{data_params.inspect}"
15
+ puts "====#{action} to #{url} with params: #{data_params.inspect}"
16
+ json_response = RestClient.send(action, url, data_params)
17
+ result = JSON.parse(json_response)
18
+ result
10
19
  end
11
-
12
- def self.post(url = '', params = {})
13
- request('post', url, params)
20
+
21
+ def self.config
22
+ ServiceConfig
14
23
  end
15
24
 
16
- def self.put(url = '', params = {})
17
- request('put', url, params)
25
+ def self.url(key = '', params = {})
26
+ config.service_url(key, params)
18
27
  end
19
-
20
- def self.delete()
21
- request('delete', url, params)
28
+ #service request
29
+ def self.service_request(service_key = '', params = {}, request_method = 'get')
30
+ request(request_method, url(service_key, params[:data]), params)
22
31
  end
23
-
24
- def self.request(action = 'get', url = '', data_params = {})
25
- #TODO 网路异常处理
26
- #use RestClient now
27
- json_response = RestClient.send(action, url, :data=>data_params)
28
- result = unpack(json_response)
29
- if result.ok?
30
- return result.data.symbolize_keys if result.data.is_a?(Hash)
31
- result.data
32
- else
33
- raise ResultError.new(result)
34
- end
32
+
33
+ #==service端统一从:data参数中接传来的额外请求数据
34
+ def self.get(key = '', params = {})
35
+ service_request(key, {:data=>params}, 'get')
36
+ end
37
+
38
+ def self.delete(key = '', params = {})
39
+ service_request(key, {:data=>params}, 'delete')
35
40
  end
36
41
 
37
- def self.ajax_request(action = 'get', url = '', data_params = {})
38
- #TODO 网路异常处理
39
- json_response = RestClient.send(action, url, :data=>data_params)
40
- #render :json=>json_response
42
+ def self.post(key = '', params = {})
43
+ service_request(key, {:data=>params}, 'post')
41
44
  end
42
45
 
43
- def self.unpack(json_response_str = nil)
44
- Result.new(JSON.parse(json_response_str))
46
+ def self.put(key = '', params = {})
47
+ service_request(key, {:data=>params}, 'put')
45
48
  end
46
49
  end
47
50
  end
@@ -133,13 +133,13 @@ module Ns
133
133
  end
134
134
 
135
135
  if mapping_hash.present?
136
- cond_str << " and "
136
+ cond_str << " and " unless cond_str.blank?
137
137
  cond_str << mapping_hash.map do |buz_key, db_key|
138
138
  "#{db_key} = :#{buz_key}"
139
139
  end.join(" and ")
140
140
  end
141
141
  unless erp_admin?(params) && mapping.keys.include?(:status)
142
- cond_str << " and " if cond_str.present?
142
+ cond_str << " and " unless cond_str.blank?
143
143
  cond_str << " #{mapping[:status]} != -1" #TODO FIXME -1 use
144
144
  end
145
145
 
@@ -225,6 +225,7 @@ module Ns
225
225
 
226
226
  #业务层到数据层字段参数转换并做一定值处理
227
227
  def db_hashize(params = {})
228
+ return {} if params.blank?
228
229
  new_params = params.symbolize_keys
229
230
  common_keys = new_params.keys & mapping.keys
230
231
  common_keys.inject({}) do |result, key|
@@ -26,5 +26,18 @@ module Ns
26
26
  end #/if
27
27
  @@services
28
28
  end #/def
29
- end
30
- end
29
+
30
+ def self.service_url(service_key = '', params = {}, force_sub = true)
31
+ #fixed a bug here, using dup to avoid modify the original templages
32
+ the_url = services[service_key.to_sym].to_s.dup rescue ''
33
+ if force_sub && params[:id]
34
+ the_url.sub!(':id', params[:id].to_s)
35
+ end
36
+ #TODO REMOVE THIS
37
+ if force_sub && params[:customer_id]
38
+ the_url.sub!(':customer_id', params[:customer_id].to_s)
39
+ end
40
+ block_given? ? yield(the_url) : the_url
41
+ end
42
+ end #class
43
+ end #module
@@ -3,12 +3,30 @@ require 'fileutils'
3
3
  module Ns
4
4
  module Util
5
5
  extend self
6
+
6
7
  def concat_url(prefix_url = '', url = '')
7
8
  prefix_url = prefix_url.to_s
8
9
  sep = (prefix_url[-1, 1] == '/' || url[0, 1] == '/') ? '' : '/'
9
10
  "#{prefix_url}#{sep}#{url}"
10
11
  end
11
-
12
+
13
+ def params_query(base_url = '', query_params = {})
14
+ query_str = query_params.respond_to?(:to_query) ? query_params.to_query : query_params.to_a.map{|a| a.join('=')}.join('&')
15
+ base_url = base_url.to_s
16
+ unless query_str.blank?
17
+ sep = if base_url[-1, 1] =~ /\?|&/
18
+ ''
19
+ else
20
+ if base_url.include?('?')
21
+ '&'
22
+ else
23
+ '?'
24
+ end
25
+ end
26
+ end
27
+ "#{base_url}#{sep}#{query_str}"
28
+ end
29
+
12
30
  #将一个hash和array写入data下的yaml结构中
13
31
  def yamlize(hash_or_array = {}, file_name = nil)
14
32
  return if hash_or_array.nil?
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ns_service_pack"
8
- s.version = "0.1.6"
8
+ s.version = "0.1.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Caory, Shang, Geogeous"]
12
- s.date = "2011-12-07"
12
+ s.date = "2011-12-17"
13
13
  s.description = "abstract some common pattern to service pack"
14
14
  s.email = "cao7113@hotmail.com"
15
15
  s.executables = ["nsp"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ns_service_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-07 00:00:00.000000000Z
12
+ date: 2011-12-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &85246320 !ruby/object:Gem::Requirement
16
+ requirement: &82356530 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *85246320
24
+ version_requirements: *82356530
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thor
27
- requirement: &85246000 !ruby/object:Gem::Requirement
27
+ requirement: &82356120 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.14.6
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *85246000
35
+ version_requirements: *82356120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &85245700 !ruby/object:Gem::Requirement
38
+ requirement: &82355630 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *85245700
46
+ version_requirements: *82355630
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &85245420 !ruby/object:Gem::Requirement
49
+ requirement: &82355350 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *85245420
57
+ version_requirements: *82355350
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &85245180 !ruby/object:Gem::Requirement
60
+ requirement: &82354930 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *85245180
68
+ version_requirements: *82354930
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &85244940 !ruby/object:Gem::Requirement
71
+ requirement: &82354540 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *85244940
79
+ version_requirements: *82354540
80
80
  description: abstract some common pattern to service pack
81
81
  email: cao7113@hotmail.com
82
82
  executables:
@@ -141,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
141
  version: '0'
142
142
  segments:
143
143
  - 0
144
- hash: -447924557
144
+ hash: 896815169
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  none: false
147
147
  requirements: