syslog_client 0.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.
- data/.gitignore +19 -0
- data/README.md +4 -0
- data/lib/syslog_client.rb +5 -0
- data/lib/syslog_client/base.rb +20 -0
- data/lib/syslog_client/deal_flow.rb +61 -0
- data/lib/syslog_client/editor.rb +40 -0
- data/lib/syslog_client/match_shop.rb +17 -0
- data/lib/syslog_client/version.rb +3 -0
- data/syslog_client.gemspec +15 -0
- metadata +69 -0
data/.gitignore
ADDED
data/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'logglier'
|
3
|
+
module SyslogClient
|
4
|
+
class Base
|
5
|
+
cattr_accessor :logger
|
6
|
+
@@logger = Logglier.new('udp://192.168.2.180:8080', :format => :json)
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def send_log(options)
|
10
|
+
infos = log_of_options(options)
|
11
|
+
infos = infos.is_a?(::Array) ? infos : [infos]
|
12
|
+
|
13
|
+
now = Time.now
|
14
|
+
infos.each do |info|
|
15
|
+
@@logger.info(info.reverse_merge(:operation_time => now))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module SyslogClient
|
3
|
+
class DealFlow < Base
|
4
|
+
class << self
|
5
|
+
protected
|
6
|
+
def log_of_options(options)
|
7
|
+
_normalize_options(options)
|
8
|
+
options.slice(:deal_id, :operation, :operation_time, :operator, :result, :message).reverse_merge(:operator => get_operator(options[:operation])).merge(:type => 'deal_flow')
|
9
|
+
end
|
10
|
+
|
11
|
+
def _normalize_options(options)
|
12
|
+
raise ArgumentError, 'options should be instance of Hash' unless options.is_a?(::Hash)
|
13
|
+
options.symbolize_keys!
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_operator(operation)
|
17
|
+
operations.map do |k, v|
|
18
|
+
return k.to_s if v.include?(operation.to_sym)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
#和Java 爬虫相关的操作:
|
23
|
+
#operator --> java_crawler
|
24
|
+
#operations --> 操作流程名只有两个,为上面标为黄色的两个擦作。
|
25
|
+
#crawl_deal_page 为抓取页面流程,
|
26
|
+
#parse_deal_page 为解析、入库流程的名字
|
27
|
+
#和嘉伟相关的操作:
|
28
|
+
#operator --> ruby_crawler
|
29
|
+
#operations --> 操作流程名字一共有七个,为标为粉色部分
|
30
|
+
#create为新建流程、
|
31
|
+
#call_shop_match为调用商铺匹配接口流程、
|
32
|
+
#add_shop为关联Shop流程、
|
33
|
+
#push_fetch_job分配抓取任务的流程、
|
34
|
+
#receive_check_shop_match为接收到商铺匹配的Check请求的流程、
|
35
|
+
#receive_check_ext_info为接收到其他信息Check 请求的流程、
|
36
|
+
#receive_check_expire_time 为接收到Check过期时间请求的流程
|
37
|
+
|
38
|
+
#和国强相关的操作:
|
39
|
+
#operator --> ai(人工智能)
|
40
|
+
#operations --> 操作流程名一共有四个,为绿素部分
|
41
|
+
#receive_shop_match 为收到匹配商铺请求的流程
|
42
|
+
#check_shop_match 为发起Check商铺匹配的流程
|
43
|
+
#check_ext_info 为发起Check ext_info的流程
|
44
|
+
#check_expire_time 为发起Check expire_time的流程
|
45
|
+
|
46
|
+
#和文远相关的操作:
|
47
|
+
#operator --> classifier
|
48
|
+
#operation --> 操作流程名一共有两个,为蓝色部分
|
49
|
+
#push_classify_job 为分发分类任务的流程名
|
50
|
+
#classify 为设置分类的流程名
|
51
|
+
def operations
|
52
|
+
{
|
53
|
+
:java_crawler => [:crawl_deal_page, :parse_deal_page],
|
54
|
+
:ruby_crawler => [:create, :call_shop_match, :add_shop, :push_fetch_job, :receive_check_shop_match, :receive_check_ext_info, :receive_check_expire_time],
|
55
|
+
:ai => [:receive_shop_match, :check_shop_match, :check_ext_info, :check_expire_time],
|
56
|
+
:classifier => [:push_classify_job, :classify]
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module SyslogClient
|
3
|
+
class Editor < Base
|
4
|
+
class << self
|
5
|
+
protected
|
6
|
+
def log_of_options(options)
|
7
|
+
_normalize_options(options)
|
8
|
+
log_of_changes(options) if options[:changes]
|
9
|
+
end
|
10
|
+
|
11
|
+
def _normalize_options(options)
|
12
|
+
raise ArgumentError, 'options should be instance of Hash' unless options.is_a?(::Hash)
|
13
|
+
options.symbolize_keys!
|
14
|
+
|
15
|
+
if options[:changes]
|
16
|
+
_normalize_changes(options)
|
17
|
+
elsif obj = options[:object]
|
18
|
+
options.merge!({ :entry_class => obj.class.name, :entry_id => obj.id })
|
19
|
+
options[:changes] = obj.changes
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def _normalize_changes(options)
|
24
|
+
raise ArgumentError, 'changes should be instance of Hash' unless options[:changes].is_a?(::Hash)
|
25
|
+
options[:changes].stringify_keys!
|
26
|
+
end
|
27
|
+
|
28
|
+
def log_of_changes(options)
|
29
|
+
options[:changes].inject([]) do |infos, change|
|
30
|
+
infos << {
|
31
|
+
:operation => change[0],
|
32
|
+
:value => change[1][0],
|
33
|
+
:value_was => change[1][1],
|
34
|
+
:type => 'editor'
|
35
|
+
}.merge(options.slice(:user_id, :reason, :entry_class, :entry_id, :operation_time))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module SyslogClient
|
3
|
+
class MatchShop < Base
|
4
|
+
class << self
|
5
|
+
protected
|
6
|
+
def log_of_options(options)
|
7
|
+
_normalize_options(options)
|
8
|
+
options.slice(:reason, :source, :deal_id, :tuan_shop_id, :shop_info_id, :operation_time).merge(:type => 'match_shop')
|
9
|
+
end
|
10
|
+
|
11
|
+
def _normalize_options(options)
|
12
|
+
raise ArgumentError, 'options should be instance of Hash' unless options.is_a?(::Hash)
|
13
|
+
options.symbolize_keys!
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
$LOAD_PATH.unshift 'lib'
|
2
|
+
require 'syslog_client/version'
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = 'syslog_client'
|
5
|
+
s.version = SyslogClient::Version
|
6
|
+
s.date = '2012-12-28'
|
7
|
+
s.summary = "syslog client!"
|
8
|
+
s.description = "syslog client with tuan800"
|
9
|
+
s.authors = ['tumayun']
|
10
|
+
s.email = 'tumayun.2010@gmail.com'
|
11
|
+
s.files = `git ls-files`.split($/)
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
s.homepage = 'https://github.com/tumayun/syslog_client'
|
14
|
+
s.add_dependency "logglier", "~> 0.2.8"
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: syslog_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- tumayun
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-12-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: logglier
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.8
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.2.8
|
30
|
+
description: syslog client with tuan800
|
31
|
+
email: tumayun.2010@gmail.com
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- .gitignore
|
37
|
+
- README.md
|
38
|
+
- lib/syslog_client.rb
|
39
|
+
- lib/syslog_client/base.rb
|
40
|
+
- lib/syslog_client/deal_flow.rb
|
41
|
+
- lib/syslog_client/editor.rb
|
42
|
+
- lib/syslog_client/match_shop.rb
|
43
|
+
- lib/syslog_client/version.rb
|
44
|
+
- syslog_client.gemspec
|
45
|
+
homepage: https://github.com/tumayun/syslog_client
|
46
|
+
licenses: []
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
requirements: []
|
64
|
+
rubyforge_project:
|
65
|
+
rubygems_version: 1.8.24
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: syslog client!
|
69
|
+
test_files: []
|