complain 1.0.0 → 1.0.1

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: a78852e2ff4d9f535aee93606f77044efaeb0233
4
- data.tar.gz: 3b7d011692d0926f939fee3fc54c8cb77992576d
3
+ metadata.gz: faccbd58fd96f069387098f98b534ad68ea14df6
4
+ data.tar.gz: 0544e7958322b2b8b5ae1bac4f7a6692901f9666
5
5
  SHA512:
6
- metadata.gz: a4d6ae8db2e4b3a876db7cee1a8bdd352c3d1f863e39b596b58ae44392bfdc7f95c5df34c38bfadd4d9f3e140beffb677abf21bad889b09b122e645a72e80af9
7
- data.tar.gz: a3eec24b42e59a77fce35e4c8cb42e81f6581dc75e1d31f96f1ad0096663ef717c314ae198e8166eef4810b0c6794238bd3767e104300494ef2b525836e7140b
6
+ metadata.gz: d8c6aef76d026d1b6d0b52f3651841764cfb71387f09fb786f8c1f88ce898d795a77020231c60304e2f0f9059a2acca34a85376e568d7f830fc551954fa87c13
7
+ data.tar.gz: 612b7ec3fb72c233c42a08da250161e5c38ec324753d8b20bea7797a4e38c0828e970b90e46784725a035e94894289b64bf5d1d49f378cbfc3d08235da3783cd
data/README.md CHANGED
@@ -22,8 +22,6 @@ Just replace
22
22
 
23
23
  ```ruby
24
24
  rescue => exc
25
- $stderr.puts
26
- $stderr.puts Time.now
27
25
  $stderr.puts exc.message
28
26
  $stderr.puts exc.backtrace.join("\n")
29
27
  end
data/lib/complain.rb CHANGED
@@ -16,22 +16,37 @@ module Complain
16
16
  # Calls exception writer
17
17
  # @param [Exception] exc Exception to write.
18
18
  # @param [Mixed] logger Logger - can be `:stderr`, `:stdout` or should respond to `error` or `puts`
19
+ # @option [Boolean] :with_time - Write time to log, default: false
20
+ # @option [Boolean] :prefix - Prefix for entire log message (empty by default)
21
+ # @option [Boolean] :postfix - Postfix for entire log message (empty by default)
22
+ # @option [Boolean] :separator - String to use for concatenation ("\n" by default)
19
23
  # @option [Boolean] :skip_exc - By default (false) internal exceptions will be rescued and written to logger,
20
24
  # and exception will be raised only if second writing is failed;
21
25
  # when set to true exception will not be handled.
22
- def self.call(exc, logger = :stderr, skip_exc: false)
26
+ def self.call(exc,
27
+ logger = :stderr,
28
+ with_time: false,
29
+ prefix: '',
30
+ postfix: '',
31
+ separator: "\n",
32
+ skip_exc: false)
33
+
23
34
  message = if exc.is_a?(Exception)
24
- [exc.message, exc.backtrace.join("\n")].join("\n")
35
+ [exc.message, exc.backtrace.join(separator)]
25
36
  elsif exc.is_a?(String)
26
- exc
37
+ [exc]
27
38
  elsif exc.respond_to?(:to_s)
28
- exc.to_s
39
+ [exc.to_s]
29
40
  elsif exc.respond_to?(:inspect)
30
- exc.inspect
41
+ [exc.inspect]
31
42
  else
32
- "Message can't be processed at #{caller.join("\n")}"
43
+ ["Message can't be processed at #{caller.join(separator)}"]
33
44
  end
34
45
 
46
+ message.unshift(Time.now.to_s) if with_time
47
+ message = message.join(separator)
48
+ message = prefix + message + postfix
49
+
35
50
  if logger.nil? || :stderr == logger
36
51
  $stderr.puts message
37
52
  elsif :stdout == logger
@@ -1,3 +1,3 @@
1
1
  module Complain
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: complain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman