pack_rat 0.1.3 → 1.0.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 1.0.0
@@ -0,0 +1,12 @@
1
+ module PackRat
2
+ module ActiveRecordExtension
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def inherited(child_class)
7
+ child_class.send(:include, PackRat::CacheHelper)
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,23 @@
1
+ module PackRat
2
+ module CacheHelper
3
+ module Cacher
4
+ def cache(key='', options={}, &block)
5
+ unless options[:overwrite_key]
6
+ calling_method = caller[0][/`([^']*)'/, 1]
7
+ key << calling_method << '/'
8
+ key << self.cache_key << '/'
9
+ if self.is_a? Class
10
+ key << self.file_digest
11
+ else
12
+ key << self.class.file_digest
13
+ end
14
+ end
15
+ puts key if options[:debug]
16
+ filtered_options = options.except(:overwrite_key, :debug)
17
+ Rails.cache.fetch key, filtered_options do
18
+ block.call
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,41 @@
1
+ require 'pack_rat/cache_helper/cacher'
2
+ module PackRat
3
+ module CacheHelper
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ extend Cacher
8
+ include Cacher
9
+ cattr_accessor :updated_attribute_name
10
+ self.updated_attribute_name ||= :updated_at
11
+ cattr_accessor :file_location
12
+ self.file_location = file_location_guesser
13
+ end
14
+
15
+ module ClassMethods
16
+ # Create cache_key for class, use most recently updated record
17
+ unless self.respond_to? :cache_key
18
+ define_method :cache_key do
19
+ key = order("#{self.updated_attribute_name} DESC").first.cache_key if self.superclass.to_s == "ActiveRecord::Base"
20
+ key << "/#{self.to_s}"
21
+ end
22
+ end
23
+
24
+ def file_digest
25
+ if self.file_location
26
+ begin
27
+ file = File.read(self.file_location)
28
+ Digest::MD5.hexdigest(file)
29
+ rescue
30
+ nil
31
+ end
32
+ end
33
+ end
34
+
35
+ def file_location_guesser
36
+ "#{Rails.root}/app/models/#{self.to_s.split('::').join('/').underscore.downcase}.rb" if defined? Rails
37
+ end
38
+
39
+ end
40
+ end
41
+ end
data/lib/pack_rat.rb CHANGED
@@ -1,76 +1,6 @@
1
- module PackRat
2
- module CacheHelper
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- extend Cacher
7
- include Cacher
8
- cattr_accessor :updated_attribute_name
9
- self.updated_attribute_name ||= :updated_at
10
- cattr_accessor :file_location
11
- self.file_location = file_location_guesser
12
- end
13
-
14
- module Cacher
15
- def cache(key='', options={}, &block)
16
- unless options[:overwrite_key]
17
- calling_method = caller[0][/`([^']*)'/, 1]
18
- key << calling_method << '/'
19
- key << self.cache_key << '/'
20
- if self.is_a? Class
21
- key << self.file_digest
22
- else
23
- key << self.class.file_digest
24
- end
25
- end
26
- puts key if options[:debug]
27
- filtered_options = options.except(:overwrite_key, :debug)
28
- Rails.cache.fetch key, filtered_options do
29
- block.call
30
- end
31
- end
32
- end
33
-
34
- module ClassMethods
35
- # Create cache_key for class, use most recently updated record
36
- unless self.respond_to? :cache_key
37
- define_method :cache_key do
38
- key = order("#{self.updated_attribute_name} DESC").first.cache_key if self.superclass.to_s == "ActiveRecord::Base"
39
- key << "/#{self.to_s}"
40
- end
41
- end
42
-
43
- def file_digest
44
- if self.file_location
45
- begin
46
- file = File.read(self.file_location)
47
- Digest::MD5.hexdigest(file)
48
- rescue
49
- nil
50
- end
51
- end
52
- end
53
-
54
- def file_location_guesser
55
- "#{Rails.root}/app/models/#{self.to_s.split('::').join('/').underscore.downcase}.rb" if defined? Rails
56
- end
57
-
58
- end
59
- end
60
-
61
- module ActiveRecordExtension
62
- extend ActiveSupport::Concern
63
-
64
- module ClassMethods
65
- def inherited(child_class)
66
- child_class.send(:include, PackRat::CacheHelper)
67
- super
68
- end
69
- end
70
- end
71
-
72
- end
73
-
1
+ require 'active_support'
2
+ require 'pack_rat/active_record_extension'
3
+ require 'pack_rat/cache_helper'
74
4
  if defined? ActiveRecord::Base
75
5
  ActiveRecord::Base.send(:include, PackRat::ActiveRecordExtension)
76
6
  end
data/pack_rat.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pack_rat"
8
- s.version = "0.1.3"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brian Goff"]
@@ -25,6 +25,9 @@ Gem::Specification.new do |s|
25
25
  "Rakefile",
26
26
  "VERSION",
27
27
  "lib/pack_rat.rb",
28
+ "lib/pack_rat/active_record_extension.rb",
29
+ "lib/pack_rat/cache_helper.rb",
30
+ "lib/pack_rat/cache_helper/cacher.rb",
28
31
  "pack_rat.gemspec",
29
32
  "spec/spec_helper.rb"
30
33
  ]
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: pack_rat
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.3
5
+ version: 1.0.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Goff
@@ -108,6 +108,9 @@ files:
108
108
  - Rakefile
109
109
  - VERSION
110
110
  - lib/pack_rat.rb
111
+ - lib/pack_rat/active_record_extension.rb
112
+ - lib/pack_rat/cache_helper.rb
113
+ - lib/pack_rat/cache_helper/cacher.rb
111
114
  - pack_rat.gemspec
112
115
  - spec/spec_helper.rb
113
116
  homepage: http://github.com/cpuguy83/pack_rat
@@ -124,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
127
  version: '0'
125
128
  segments:
126
129
  - 0
127
- hash: 3747594770950936656
130
+ hash: -2074664687036877359
128
131
  none: false
129
132
  required_rubygems_version: !ruby/object:Gem::Requirement
130
133
  requirements: