cachethod 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjFlYTUwMmIwOWZmZjk4MDlkN2M3OWI2YzY4MTliMGVhNjU3OTM0NA==
4
+ MzBhZGIxMGYzMDQxMDY1ZjJmZDRlOGQyZTRjMjg2MWVhM2UxNzA2OQ==
5
5
  data.tar.gz: !binary |-
6
- NjI3YmRlZTFkN2M0MDc1YTI2NTM2ZWYxMTViOGI0NjlkNmVmMjVjNQ==
6
+ Yjc1Nzc1MGQ1MGNjZDE4OGUxMmE2MGI5MjIwNzQ4ODBhMTM3NmVlZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjRmY2QwNDY3YTUyNjlmNTMyNGE0YmM4NzZiOTJlYWM3NWNjNzcxMDNhMDc0
10
- M2I5NDJkYWNiOWIzOGU4ZTA0OWEzN2I4NzM2YmVhOTc1ZjIwOGYzYjk1ZDQy
11
- YTA5ZjllNjU0OWJmMWIyN2NjY2VkNzIyMmVhNWE4NWVmMTg0YzQ=
9
+ MGQ5N2JiOWM0MGU2N2VkZWFlODQ0Y2NjZGQ1Y2E0N2Y1ZjA2MmQ4NDhhMjFm
10
+ MjFjYjA5MDdlYzgyNjA3NjFiYzE3OWZmMjBkZTYxNDk2MTVlZjdiMGY5YTI4
11
+ YmE3ODFlNWZjOTdmZDk1ZTY3YThmMmM3NTBlODhhZmY3ZWNiNjM=
12
12
  data.tar.gz: !binary |-
13
- MzUyNTg3YTQyOWRlZWVmNzMzMDdkOGYzZjYwOGU5N2Y5ZjBkOTIxMzE0YWFm
14
- YjQ5NGIyMWRjN2U2NWM0YTBiNjMwY2RiNWQ2MDU1OTUyYzI5OGI5N2UwYmYw
15
- N2E3NjAzNzZjYzUwOGE1Y2M4ZjFmNzllYzU4ODM4MmFjYjg4OTY=
13
+ NWFiOTZjMTYwMWRlNjk5NTAwMDk2MTM0MmIxZThiZWViM2E3Y2FlYTA5Yjc1
14
+ ZmUyYmRjOGE3ODUyN2IwNTVjYmZhNzRiZmFiMGViMjRmNjVhMzA4MmYwZDAw
15
+ YWE2MGZiMWE2MDIxMGYyNzJmYWUxOTQ4ZjdhMWJmNzJjZTdiNTQ=
data/README.md CHANGED
@@ -19,7 +19,7 @@ will be reflected also on Cachethod methods.
19
19
  In Gemfile
20
20
 
21
21
  ```ruby
22
- gem 'cachethod'
22
+ gem 'cachethod', '~> 0.1.2'
23
23
  ```
24
24
 
25
25
  Then run
@@ -32,6 +32,14 @@ bundle install
32
32
 
33
33
  First step is including **Cachethod** module to your class.
34
34
 
35
+ ```ruby
36
+ class User < ActiveRecord::Base
37
+ include Cachethod
38
+
39
+ ...
40
+ end
41
+ ```
42
+
35
43
  Next you can choose one of following methods:
36
44
 
37
45
  ```ruby
@@ -53,7 +61,7 @@ class User < ActiveRecord::Base
53
61
 
54
62
  cache_method :some_io_method, expires_in: 10.minutes
55
63
 
56
- def some_io_method
64
+ def some_io_method arg1
57
65
  ...
58
66
  end
59
67
  end
@@ -63,11 +71,16 @@ Then invoke cached method multiple times in the usual way and you will
63
71
  see the difference:
64
72
 
65
73
  ```ruby
66
- user.some_io_method
67
- user.some_io_method
68
- user.some_io_method
74
+ user.some_io_method(2) # this will take a long time
75
+ user.some_io_method(2) # you get cached result instantly
76
+ user.some_io_method(3) # this will take a long time again
77
+ user.some_io_method(3) # you get cached result instantly
78
+ user.some_io_method(2) # you get cached result instantly
69
79
  ```
70
80
 
81
+ Note that Cachethod takes method arguments into the account and when you change
82
+ arguments it will need to cache method result also.
83
+
71
84
  If you want to access uncached version of your method then you can do:
72
85
 
73
86
  ```ruby
@@ -98,13 +111,13 @@ into the equivalent of:
98
111
 
99
112
  ```ruby
100
113
  class Stormtrooper < ActiveRecord::Base
101
- def some_io_method
114
+ def some_io_method *args
102
115
  Rails.cache.fetch(:some_key, expires_in: 10.minutes) do
103
116
  ...
104
117
  end
105
118
  end
106
119
 
107
- def another_io_method
120
+ def another_io_method *args
108
121
  Rails.cache.fetch(:another_key, expires_in: 10.minutes) do
109
122
  ...
110
123
  end
@@ -1,3 +1,3 @@
1
1
  module Cachethod
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
data/lib/cachethod.rb CHANGED
@@ -31,7 +31,7 @@ module Cachethod
31
31
  define_method "#{name}_cached" do
32
32
  cache_key = "cachethod.#{self.class.to_s.underscore}."
33
33
  cache_key += "#{hash}.#{name}."
34
- cache_key += args.map{|a| a.hash}.reduce(:^).to_s
34
+ cache_key += args.hash.to_s
35
35
 
36
36
  Rails.cache.fetch(cache_key, *args) do
37
37
  send("#{name}!")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cachethod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rene Klacan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-09 00:00:00.000000000 Z
11
+ date: 2014-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails