ns_service_pack 0.1.6 → 0.1.7
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.
- data/CHANGELOG +2 -0
- data/VERSION +1 -1
- data/lib/ns_service_pack/client.rb +33 -30
- data/lib/ns_service_pack/field_mapping.rb +3 -2
- data/lib/ns_service_pack/service_config.rb +15 -2
- data/lib/ns_service_pack/util.rb +19 -1
- data/ns_service_pack.gemspec +2 -2
- metadata +15 -15
data/CHANGELOG
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
@@ -3,45 +3,48 @@ require 'rest_client'
|
|
3
3
|
|
4
4
|
module Ns
|
5
5
|
class Client
|
6
|
-
|
7
|
-
|
8
|
-
#
|
9
|
-
|
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.
|
13
|
-
|
20
|
+
|
21
|
+
def self.config
|
22
|
+
ServiceConfig
|
14
23
|
end
|
15
24
|
|
16
|
-
def self.
|
17
|
-
|
25
|
+
def self.url(key = '', params = {})
|
26
|
+
config.service_url(key, params)
|
18
27
|
end
|
19
|
-
|
20
|
-
def self.
|
21
|
-
request(
|
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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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.
|
38
|
-
|
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.
|
44
|
-
|
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 "
|
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
|
-
|
30
|
-
|
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
|
data/lib/ns_service_pack/util.rb
CHANGED
@@ -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?
|
data/ns_service_pack.gemspec
CHANGED
@@ -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.
|
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-
|
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *82356530
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
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: *
|
35
|
+
version_requirements: *82356120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
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: *
|
46
|
+
version_requirements: *82355630
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
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: *
|
57
|
+
version_requirements: *82355350
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
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: *
|
68
|
+
version_requirements: *82354930
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
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: *
|
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:
|
144
|
+
hash: 896815169
|
145
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
146
|
none: false
|
147
147
|
requirements:
|