ElmerFudd 0.0.24 → 0.0.26

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 495ca1024544a93568872748bc264f6654ba8dda
4
- data.tar.gz: 4280d48353cb7746adf1858f7a4b274c9d765987
3
+ metadata.gz: fd6ca4c19eec0cfe4f1c67893e228e34de2738ff
4
+ data.tar.gz: ea6138eb02264f866a9953d3e931245393d6dcdd
5
5
  SHA512:
6
- metadata.gz: cc27f1148cc89102d73fb67c8fc4ad0bb3c5d9924d5e77eb66ae87acb34cc6817384ec9a1ba7be86dcd14cae5569f5889915625f2b5613640166301637dca760
7
- data.tar.gz: 192f28497fa7a70ce86dc2746df757144e0e22ae0721a5415d793d57143f31c3bed2d6aaf767dfa315bd7da0be23181d2fd9c397260970504d7db8862eba5a7c
6
+ metadata.gz: 218fc0908e3aeed38a67737fedccaad4282faf858a2883773ff86a793172d663756f0275957d5b392482016fd128d02f726d8171b507c5060cb52328cfc67b17
7
+ data.tar.gz: 0c71524cae5acb9e7e5995ab08863e50b50b05f1053f9124631d270f678ad9d819bc067f7f6763d0bad95fb52d0ed3616243c76e761354ede2ad30bfb2f511ba
data/lib/ElmerFudd.rb CHANGED
@@ -115,6 +115,24 @@ module ElmerFudd
115
115
  handlers << RpcHandler.new(route, handler || block, (@filters + filters).uniq)
116
116
  end
117
117
 
118
+ # Helper allowing to use any method taking hash as a handler
119
+ # def example(text:, **_)
120
+ # puts text
121
+ # end
122
+ # # then in worker
123
+ # handle_cast(...
124
+ # handler: payload_as_kwargs(method(:example)))
125
+ # Thanks to usage of **_ in arguments list it will accept
126
+ # any payload contaning 'text' key. Skipping **_ will require
127
+ # listing all payload keys in argument list
128
+ def self.payload_as_kwargs(handler, only: nil)
129
+ lambda do |_env, message|
130
+ symbolized_payload = message.payload.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
131
+ symbolized_payload = symbolized_payload.select { |k,v| Array(only).include?(k) } if only
132
+ handler.call(symbolized_payload)
133
+ end
134
+ end
135
+
118
136
  def initialize(connection, concurrency: 1, logger: Logger.new($stdout))
119
137
  @connection = connection
120
138
  @concurrency = concurrency
@@ -1,3 +1,3 @@
1
1
  module ElmerFudd
2
- VERSION = "0.0.24"
2
+ VERSION = "0.0.26"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ElmerFudd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrzej Sliwa
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-04 00:00:00.000000000 Z
12
+ date: 2015-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bunny