looksy 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,49 +1,48 @@
1
1
  module Looksy
2
2
  module Cacheable
3
- def cache_key
4
- @@cache_key ||= [self.name.downcase, 'all'].join('/')
5
- end
3
+ def self.included(base)
4
+ base.extend(ClassMethods)
5
+ base.class_eval do
6
+ def self.cache_key
7
+ @cache_key ||= [self.name.downcase, 'all'].join('/')
8
+ end
6
9
 
7
- def cache_key=(key)
8
- @@cache_key = key
9
- end
10
+ def self.cache_key=(key)
11
+ @cache_key = key
12
+ end
10
13
 
11
- def cache_options
12
- @@cache_options ||= {}
13
- end
14
+ def self.cache_options
15
+ @cache_options ||= {}
16
+ end
14
17
 
15
- def cache_options=(options = {})
16
- @@cache_options = options
17
- end
18
+ def self.cache_options=(options = {})
19
+ @cache_options = options
20
+ end
18
21
 
19
- def fetch_all
20
- lookup.all
21
- end
22
+ private
22
23
 
23
- def fetch_by_id(id)
24
- lookup.find_by_id(id)
24
+ def self.lookup
25
+ @lookup ||= Looksy::Lookup.new(self, defined?(Rails) ? Rails.cache : Looksy::NullCache.new)
26
+ end
27
+ end
25
28
  end
26
29
 
27
- def method_missing(method, *args, &block)
28
- if method.match(/^fetch/)
29
- method = method.to_s.gsub(/^fetch/, 'find')
30
- lookup.send(method, *args, &block)
31
- else
32
- super
30
+ module ClassMethods
31
+ def fetch_all
32
+ lookup.all
33
33
  end
34
- end
35
34
 
36
- private
35
+ def fetch_by_id(id)
36
+ lookup.find_by_id(id)
37
+ end
37
38
 
38
- def lookup
39
- @lookup ||= begin
40
- cache = if defined?(Rails)
41
- Rails.cache
39
+ def method_missing(method, *args, &block)
40
+ if method.match(/^fetch/)
41
+ method = method.to_s.gsub(/^fetch/, 'find')
42
+ lookup.send(method, *args, &block)
42
43
  else
43
- Looksy::NullCache.new
44
+ super
44
45
  end
45
-
46
- Looksy::Lookup.new(self, cache)
47
46
  end
48
47
  end
49
48
  end
@@ -1,3 +1,3 @@
1
1
  module Looksy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  class Record < Struct.new(:id, :name, :type)
2
- extend Looksy::Cacheable
2
+ include Looksy::Cacheable
3
3
 
4
4
  def self.all
5
5
  @all ||= [
@@ -14,12 +14,29 @@ class Record < Struct.new(:id, :name, :type)
14
14
  all.first
15
15
  end
16
16
 
17
- def self.second
18
- all[1]
17
+ def self.last
18
+ all.last
19
19
  end
20
20
 
21
- def self.third
22
- all[2]
21
+ def attributes
22
+ {
23
+ "id" => id,
24
+ "name" => name,
25
+ "type" => type
26
+ }
27
+ end
28
+ end
29
+
30
+ =begin
31
+ class OtherRecord < Struct.new(:id)
32
+ include Looksy::Cacheable
33
+
34
+ def self.all
35
+ @all ||= [new(1), new(2), new(3)]
36
+ end
37
+
38
+ def self.first
39
+ all.first
23
40
  end
24
41
 
25
42
  def self.last
@@ -28,9 +45,8 @@ class Record < Struct.new(:id, :name, :type)
28
45
 
29
46
  def attributes
30
47
  {
31
- "id" => id,
32
- "name" => name,
33
- "type" => type
48
+ "id" => id
34
49
  }
35
50
  end
36
- end
51
+ end
52
+ =end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: looksy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &77085200 !ruby/object:Gem::Requirement
17
+ requirement: &17430820 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *77085200
25
+ version_requirements: *17430820
26
26
  description: Add a caching layer to your ActiveRecord models that represent look up
27
27
  tables
28
28
  email: