records_count 0.0.1 → 0.0.2

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: fbd26314b6348292577ea5567ba66183409d2f4d
4
- data.tar.gz: 8df7297f7ffb0a51112d01bac8fd7178a6ad5bf6
3
+ metadata.gz: a25450f400477f7089905f9748afea5ac5f220f0
4
+ data.tar.gz: c825c3868068cfc1818f6abc496f370126697c66
5
5
  SHA512:
6
- metadata.gz: 1131109a4899d99ed340d53e8d072ba2bfac92d873da779ab888c01d4c41ee58cae8e538f47342b1d1ea80c032db5f51a154d0329a6a5426a6c788e8d856f3a1
7
- data.tar.gz: f28e26ee65e6a4f9f02f33891a83e51f233122feb0039b2a1e16142ab173c22242961a860bab2f10f59fdc938dfa1d1f536e4c0fd4a1b13c58be453a0b100579
6
+ metadata.gz: 63d79d74ad424424816b07b8926223dbb90fcced56435a5980e924fc9f4cb3e1d7f05a208e80294098bb3788a6dc96b5910f2e2fa7e5300dffb5b16383b5652f
7
+ data.tar.gz: 3780f35fc5fe47c6f372858483d0f5be0eeee13dc7105b868f0ebaa6d74d4c88f923da457057c2ce1df6e7026e02b5d289d9b9294066c4bf78593e9fb7d7dbc0
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- # RecordsCount
1
+ <img src="https://github.com/igorkasyanchuk/records_count/blob/master/doc/count.png?raw=true"
2
+ />
3
+
4
+ # records_count
2
5
 
3
6
  See in development logs how many records your queries returns. It can help with solving performance issues.
4
7
 
@@ -1,3 +1,3 @@
1
1
  module RecordsCount
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
data/lib/records_count.rb CHANGED
@@ -1,7 +1,17 @@
1
- require 'colorize'
2
- require 'colorized_string'
3
-
4
1
  module RecordsCount
2
+ class Colorizer
3
+ class << self
4
+ def red(str); colorize_string(str, "\e[1m\e[31m"); end
5
+ def green(str); colorize_string(str, "\e[1m\e[32m"); end
6
+ def dark_green(str); colorize_string(str, "\e[32m"); end
7
+ def yellow(str); colorize_string(str, "\e[1m\e[33m"); end
8
+ def blue(str); colorize_string(str, "\e[1m\e[34m"); end
9
+ def dark_blue(str); colorize_string(str, "\e[34m"); end
10
+ def pur(str); colorize_string(str, "\e[1m\e[35m"); end
11
+ def colorize_string(text, color_code); "#{color_code}#{text}\e[0m"; end
12
+ end
13
+ end
14
+
5
15
  class Message
6
16
  include ActionView::Helpers::TextHelper
7
17
 
@@ -12,16 +22,41 @@ module RecordsCount
12
22
  end
13
23
 
14
24
  def message
15
- " --> #{pluralize(payload[:record_count], payload[:class_name].underscore.humanize.downcase)}".colorize(:light_cyan)
25
+ " --> #{pluralize(payload[:record_count], payload[:class_name].underscore.humanize.downcase)}"
26
+ end
27
+
28
+ def format
29
+ -> { Colorizer.dark_green(yield) }
30
+ end
31
+
32
+ def print
33
+ Rails.logger.debug(format { message }.call)
34
+ end
35
+ end
36
+
37
+ class Warning
38
+ WARNING_TIME = 10 # ms
39
+
40
+ attr_reader :duration
41
+
42
+ def initialize(start, finish)
43
+ @duration = (finish - start).round(1)
44
+ end
45
+
46
+ def format
47
+ -> { Colorizer.yellow(yield) }
16
48
  end
17
49
 
18
50
  def print
19
- Rails.logger.debug(message)
51
+ if duration > WARNING_TIME
52
+ Rails.logger.debug format { " Warning instantiation time: #{duration}ms" }.call
53
+ end
20
54
  end
21
55
  end
22
56
 
23
57
  def RecordsCount.do_work!
24
58
  ActiveSupport::Notifications.subscribe('instantiation.active_record') do |name, start, finish, id, payload|
59
+ RecordsCount::Warning.new(start, finish).print
25
60
  RecordsCount::Message.new(payload).print
26
61
  end
27
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: records_count
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Kasyanchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-10 00:00:00.000000000 Z
11
+ date: 2018-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: colorize
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: sqlite3
43
29
  requirement: !ruby/object:Gem::Requirement