memsizable 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/memsizable.rb +19 -0
  3. metadata +46 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0324c8a0dd60f6592b93c260c59a4cc8fd7d0bc3
4
+ data.tar.gz: fc512a7b701ea33ea719e3284ac2beabf0c2280b
5
+ SHA512:
6
+ metadata.gz: bfd3d89d714299b29b6ac24aeecd5611ca4b3473875c07cab3feb3a72ce471cf8ed0876c4a3d13f2394eb441452c275751f3e07601e1d05d08275c805a518469
7
+ data.tar.gz: 9ffe53225df2123a8e733cae6d06959677c49c5c8af6ecf20633e8cbe449dab878c8261ffea22e40215845748302dcb22af712c6a7b86e61db1c3580e6196e3c
@@ -0,0 +1,19 @@
1
+ module Memsizable
2
+ extend ActiveSupport::Concern
3
+
4
+ module ClassMethods
5
+ def memsize
6
+ sum = 0
7
+ self.find_each{ |r| sum += r.memsize }
8
+ sum
9
+ end
10
+
11
+ def average_memsize
12
+ memsize / self.count
13
+ end
14
+ end
15
+
16
+ def memsize
17
+ self.attributes.keys.map{ |attr_name| self.send(attr_name)}.inject{|sum, attr| sum + (attr.respond_to?(:size) ? attr.size : attr.to_s.size) }
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memsizable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Marko Bošković
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Adds methods for calculating the record size (in bytes) and Model record
14
+ average size.
15
+ email: marko@bosskovic@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/memsizable.rb
21
+ homepage: http://rubygems.org/gems/memsizable
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.4.3
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Adds methods for calculating the record size (in bytes) and Model record
45
+ average size.
46
+ test_files: []