perforator 0.1.2 → 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: 36e87bfccb3f05943f74240cde7af547592871db
4
- data.tar.gz: a31a0f260075c7138836092f4bef8c514cc4ef40
3
+ metadata.gz: 2bf643dbc722b7dbc36bec26b4ee133740db9bc0
4
+ data.tar.gz: cd10ce8280581417049e6c03ecd04097eb2639d6
5
5
  SHA512:
6
- metadata.gz: a4759a91ba5ce3b21965f4ce7081b91da841c4b71d6a07de8a0c54a92f29d562fe439b1beaafe2c94a9488194abd854be14af43c746880b8c165825ce45c57eb
7
- data.tar.gz: 3b30c9c4a33c173bcf02e4b39666335a4414afeeed3bd898fbb346221c835d81545cc32c23b5cdc9dac487d17d872fc557a90a02618763270259ebe4103b991b
6
+ metadata.gz: 1fe922088fe59b3be5b31860f1fb70775e82c5dcc61ea755391c41192b315feac1b7e57989c16b3fef5835fe5dda76b00a0468e0e2784daad41c2557e961f631
7
+ data.tar.gz: ddc6978402ef0cbc2db3871219fd6fea473d302bcbdab58fcfe980a2d2ab41e723c56ac66152d12c8ac5fba6dc87da07ef9e4178f08d6386f16907ec6366423a
data/README.md CHANGED
@@ -79,20 +79,20 @@ my_meter.call do
79
79
  end
80
80
  ```
81
81
 
82
- Any of undefined method for meter will be added to output and log. It helps to add some custom breakpoints:
82
+ Use `log!` method to log additional info
83
83
  ```ruby
84
84
  my_meter.call do |meter|
85
- meter.some_start 'Value'
85
+ meter.log! 'Any start value'
86
86
  # put your code here
87
- meter.some_finish 'Valud'
87
+ meter.some_finish 'Some finish value'
88
88
  end
89
89
 
90
90
  # =======> your label
91
- # some_start: Value
91
+ # Any start value
92
92
  # Start: 2017-06-02 14:24:53 +0300
93
93
  # Finish: 2017-06-02 14:24:54 +0300
94
94
  # Spent: 1.000919
95
- # some_finish Value
95
+ # Some finish value
96
96
  ```
97
97
 
98
98
  ## Development
@@ -12,7 +12,7 @@ module Perforator
12
12
  def initialize(options = {})
13
13
  @name = options.fetch(:name, nil)
14
14
  @logger = options.fetch(:logger, nil)
15
- @puts = options.fetch(:puts, false)
15
+ @process_puts = options.fetch(:puts, false)
16
16
  @expected_time = options.fetch(:expected_time, nil)
17
17
  @positive_callback = options.fetch(:positive_callback, nil)
18
18
  @negative_callback = options.fetch(:negative_callback, nil)
@@ -30,12 +30,21 @@ module Perforator
30
30
  finish
31
31
  end
32
32
 
33
- def puts?
34
- @puts
33
+ def log!(content)
34
+ log_items << content
35
35
  end
36
36
 
37
37
  private
38
38
 
39
+ attr_reader :process_puts
40
+
41
+ alias_method :process_puts?, :process_puts
42
+ alias_method :process_logger?, :logger
43
+
44
+ def log_items
45
+ @log_items ||= []
46
+ end
47
+
39
48
  def start
40
49
  log! "=======> #{name}"
41
50
 
@@ -52,6 +61,7 @@ module Perforator
52
61
  log! "Spent: #{spent_time}"
53
62
 
54
63
  execute_callbacks!
64
+ release_logs!
55
65
  end
56
66
 
57
67
  def execute_callbacks!
@@ -61,14 +71,16 @@ module Perforator
61
71
  log! "Spent time less than exepcted. Executing: #{positive_callback.inspect}"
62
72
  positive_callback.call
63
73
  elsif spent_time > expected_time && negative_callback
64
- log! "Spent time more than exepcted. Executing: #{positive_callback.inspect}"
74
+ log! "Spent time more than exepcted. Executing: #{negative_callback.inspect}"
65
75
  negative_callback.call
66
76
  end
67
77
  end
68
78
 
69
- def log!(content)
70
- puts(content) if puts?
71
- logger.info(content) if logger
79
+ def release_logs!
80
+ log_items.each do |log_item|
81
+ puts(log_item) if process_puts?
82
+ logger.info(log_item) if process_logger?
83
+ end
72
84
  end
73
85
 
74
86
  def callbacks_without_expected_time?
@@ -86,10 +98,5 @@ module Perforator
86
98
  def expected_time_valid?
87
99
  expected_time.nil? || expected_time.is_a?(Fixnum)
88
100
  end
89
-
90
- # TODO Add possibility to log method_missing keys
91
- def method_missing(meth, *args, &blk)
92
- log!("#{meth}: #{args[0]}")
93
- end
94
101
  end
95
102
  end
@@ -1,3 +1,3 @@
1
1
  module Perforator
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perforator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Volodya Sveredyuk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2018-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler