serf_handler 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4381f72083c0b8c045b85e2d394eb05768e7ea6
4
- data.tar.gz: 57d31e2825da8617e2f6f8b94843a44d03269da4
3
+ metadata.gz: d33048b27550b3dca5819f6169b83bae581b64be
4
+ data.tar.gz: 8b9b281100c01c077e04c3fc8babe5246e91c598
5
5
  SHA512:
6
- metadata.gz: e898353f579b8bb641768ed3e12950dd5f31587fd5f464b4146ecd2b57aa6958f2db736f957c6d9ac734fd4a43ee918f9958b7f0fcb087a829a94445a95d4f20
7
- data.tar.gz: d7f63cef8c8a35b124978a806afb8263d80da55f5aca6e31c852469f2f475747692bc6a4052270184c0e5bd0d47ddc03c4890b7802b55f9799807423e411f921
6
+ metadata.gz: 7e65bf47996eadf228055a613601549c9fd61a2182f54c1e4e3e39168eef2a07e29b1bbf1d49a8e56fae7338d3100562d65c5d8ef518db9eb02580c444db09d5
7
+ data.tar.gz: 0682ee1ea57d4839e7fb94f46cb3be42d3cb9fb93071d25ecbca52d2e6018a7bdf1034b355603cbfe9ed603a5e596f09f68abe27e7ab90d18277be058a31a91c
data/README.md CHANGED
@@ -19,13 +19,20 @@ gem install serf_handler
19
19
  require 'serf_handler'
20
20
 
21
21
  class MyEventHandler < SerfHandler
22
- # called by SerfHandler when member-join event occurs
22
+ def initialize
23
+ # if logfile not specified, log outputs to STDOUT.
24
+ super("/path/to/logfile")
25
+ end
26
+
27
+ # called by SerfHandlerProxy when member-join event occurs
23
28
  def member_join
29
+ log "start processing member-join event"
24
30
  # write your code
25
31
  end
26
32
 
27
- # called by SerfHandler when your custome event occurs
33
+ # called by SerfHandlerProxy when your custome event occurs
28
34
  def your_custome_event
35
+ log "start processing custom event"
29
36
  # write your code
30
37
  end
31
38
  end
@@ -33,6 +40,8 @@ end
33
40
  if __FILE__ == $0
34
41
  handler = SerfHandlerProxy.new
35
42
  handler.register('MyRole', MyEventHandler.new)
43
+ # another code
44
+ # handler.regiter('default', MyEventHandler.new)
36
45
  handler.run
37
46
  end
38
47
  ```
data/lib/serf_handler.rb CHANGED
@@ -19,12 +19,29 @@ class SerfHandler
19
19
  end
20
20
  @name = ENV['SERF_SELF_NAME']
21
21
  @role = ENV['SERF_TAG_ROLE'] || ENV['SERF_SELF_ROLE']
22
- @event = ENV['SERF_EVENT'] == 'user'? ENV['SERF_USER_EVENT'] : ENV['SERF_EVENT'].gsub(/-/, '_')
22
+ @event = case ENV['SERF_EVENT']
23
+ when 'user'
24
+ ENV['SERF_USER_EVENT']
25
+ when 'query'
26
+ ENV['SERF_QUERY_NAME']
27
+ else
28
+ ENV['SERF_EVENT'].gsub(/-/, '_')
29
+ end
23
30
  end
24
31
 
25
32
  def log(msg)
26
33
  @logger.info(msg)
27
34
  end
35
+
36
+ def response(msg)
37
+ if msg.bytesize > 1024
38
+ message = "message exceeds limit of 1024 bytes."
39
+ log message
40
+ puts message
41
+ else
42
+ puts msg
43
+ end
44
+ end
28
45
  end
29
46
 
30
47
  class SerfHandlerProxy < SerfHandler
data/serf_handler.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'serf_handler'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = 'serf_handler'
8
- gem.version = '0.1.1'
8
+ gem.version = '0.2.0'
9
9
  gem.authors = ['KONNO Katsuyuki']
10
10
  gem.email = 'konno.katsuyuki@nifty.com'
11
11
  gem.description = 'Serf event handler for ruby'
@@ -65,7 +65,7 @@ describe "SerfHandlerProxy" do
65
65
  logger = double('Logger')
66
66
  expect(logger).to receive(:info).with("no handler for role").and_return(true)
67
67
  handler = SerfHandlerProxy.new(logger)
68
- handler.run
68
+ expect(handler.run).to be true
69
69
  end
70
70
 
71
71
  it "has no method implemented" do
@@ -73,7 +73,7 @@ describe "SerfHandlerProxy" do
73
73
  expect(logger).to receive(:info).with("member_join event not implemented by class").and_return(true)
74
74
  handler = SerfHandlerProxy.new(logger)
75
75
  handler.register('default', SerfHandler.new)
76
- handler.run
76
+ expect(handler.run).to be true
77
77
  end
78
78
  end
79
79
 
@@ -90,7 +90,41 @@ describe "SerfHandlerProxy" do
90
90
  sample = double('SerfHandler')
91
91
  expect(sample).to receive(:implemented).and_return(true)
92
92
  handler.register('default', sample)
93
- handler.run
93
+ expect(handler.run).to be true
94
+ end
95
+ end
96
+
97
+ context "Test custom query" do
98
+ before do
99
+ ENV['SERF_SELF_NAME'] = nil
100
+ ENV['SERF_SELF_ROLE'] = nil
101
+ ENV['SERF_EVENT'] = 'query'
102
+ ENV['SERF_QUERY_NAME'] = 'query_command'
103
+ end
104
+
105
+ it "has method to process custom event" do
106
+ handler = SerfHandlerProxy.new
107
+ sample = double('SerfHandler')
108
+ expect(sample).to receive(:query_command).and_return(true)
109
+ handler.register('default', sample)
110
+ expect(handler.run).to be true
111
+ end
112
+
113
+ it "exceeds limitation" do
114
+ handler = SerfHandler.new
115
+ message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at purus sapien. Fusce vitae odio tristique,
116
+ lacinia purus sed, dictum risus. Nullam rhoncus auctor sapien, nec interdum diam interdum sed. Nulla quis
117
+ posuere justo. Donec porta, odio eget mollis laoreet, elit leo sollicitudin nisl, luctus vehicula velit
118
+ erat eu est. Fusce ligula urna, blandit a iaculis nec, suscipit ut purus. Donec sed magna ac mi cursus
119
+ faucibus. Maecenas vehicula turpis sit amet lacus cursus, quis ultricies nisi porta. Donec risus ligula,
120
+ elementum eget est nec, vestibulum aliquet nisi. Sed lacinia adipiscing risus, id vulputate leo posuere in.
121
+ Duis rutrum varius magna, eget feugiat orci tempor vel. Vestibulum massa lacus, dictum in rutrum tristique,
122
+ varius ultrices neque. Donec fringilla odio eget elementum dignissim. Aliquam ut lectus neque.
123
+ Donec nec hendrerit dolor. Phasellus ac augue lobortis, vestibulum lacus at, ornare enim. Donec condimentum
124
+ quis tellus vulputate auctor. Fusce eu tortor vel velit gravida eleifend id a lorem. Maecenas porta est vel
125
+ sollicitudin ornare. Morbi et commodo diam, non congue nisi. Pellentesque mattis enim lobortis, hendrerit
126
+ nulla eget, tempus diam. Donec orci aliquam."
127
+ expect{ handler.response(message) }.to output("message exceeds limit of 1024 bytes.\n").to_stdout
94
128
  end
95
129
  end
96
130
 
@@ -105,7 +139,7 @@ describe "SerfHandlerProxy" do
105
139
  sample = double('SerfHandler')
106
140
  expect(sample).to receive(:member_join).and_return(true)
107
141
  handler.register('default', sample)
108
- handler.run
142
+ expect(handler.run).to be true
109
143
  end
110
144
  end
111
145
 
@@ -121,7 +155,7 @@ describe "SerfHandlerProxy" do
121
155
  sample = double('SerfHandler')
122
156
  expect(sample).to receive(:member_join).and_return(true)
123
157
  handler.register('web', sample)
124
- handler.run
158
+ expect(handler.run).to be true
125
159
  end
126
160
  end
127
161
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serf_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - KONNO Katsuyuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-03 00:00:00.000000000 Z
11
+ date: 2014-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger