looksist 0.1.9 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f92b64ae7a78e9d0f85c8e70e83196e3b4f4cd5
4
- data.tar.gz: 96bf142e12546274d40d9c549655a6071adb7934
3
+ metadata.gz: 41b6c0fcd98079a67f6419de4bdf1bad8a372e67
4
+ data.tar.gz: 2bcfde54ae2c0b0fbe097202b7d23609c3401c3f
5
5
  SHA512:
6
- metadata.gz: 9e4eff61111cc8a2eec151a698a2394b07bf2bac84a633432d29f1acb18f9da1e8fe6b0383cc35510b07ed4c87ab0a7149d70a651ee417c4f4f0c640104cc8ab
7
- data.tar.gz: 7507c9604eea9f68e424a8d207aac06e3eeddd543ed733e2556314700ee2ed51820eb0c9e78495a3065a2e00e9784b3d9db53f4b376b709ed4213ff7be49b8b5
6
+ metadata.gz: 3e35bc8d5a4fdf61d2b4136812101f61bfb2b1c191b56300f38954a07d4eda7675b8872b42ab3e75317b2e6429918d7b3510fe6986c5017f05b5e67db821246f
7
+ data.tar.gz: dfb89beceb5981d66fcfa128e6e2d17e4f09e781abd98375b55ef9d8048b8a422cde3f6c35a945353a4868dfe077fc3c2ea40d29d7051db2cc6f392b25d7fac7
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Looksist
2
2
 
3
3
  [![Build Status](https://travis-ci.org/jpsimonroy/looksist.png?branch=master)](https://travis-ci.org/jpsimonroy/looksist)
4
+ [![Coverage Status](https://img.shields.io/coveralls/jpsimonroy/looksist.svg)](https://coveralls.io/r/jpsimonroy/looksist?branch=master)
5
+ [![Code Climate](https://codeclimate.com/github/jpsimonroy/looksist/badges/gpa.svg)](https://codeclimate.com/github/jpsimonroy/looksist)
4
6
  [![Gem Version](https://badge.fury.io/rb/looksist.svg)](http://badge.fury.io/rb/looksist)
5
7
 
6
8
  looksist (adj) - forming positive prejudices based on appearances
@@ -2,14 +2,28 @@ require 'active_support/all'
2
2
  require 'faraday_middleware'
3
3
  require 'her'
4
4
  require 'ostruct'
5
- require 'looksist'
6
- require 'looksist/redis_service'
7
- require 'looksist/hashed'
8
- require 'looksist/safe_lru_cache'
9
5
  require 'pry'
10
6
  require 'redis'
11
7
  require 'hiredis'
12
8
  require 'jsonpath'
9
+ require 'simplecov'
10
+ require 'coveralls'
11
+
12
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
13
+ SimpleCov::Formatter::HTMLFormatter,
14
+ Coveralls::SimpleCov::Formatter
15
+ ]
16
+
17
+ SimpleCov.start do
18
+ add_filter '/spec/'
19
+ add_filter '/features/'
20
+ end
21
+
22
+ require 'looksist'
23
+ require 'looksist/redis_service'
24
+ require 'looksist/hashed'
25
+ require 'looksist/safe_lru_cache'
26
+
13
27
 
14
28
  I18n.enforce_available_locales = false
15
29
 
data/lib/looksist/core.rb CHANGED
@@ -5,21 +5,23 @@ module Looksist
5
5
 
6
6
  module ClassMethods
7
7
  def lookup(what, using, bucket = using)
8
- self.lookup_attributes ||= []
9
- self.id_and_buckets ||= []
10
- self.id_and_buckets << {id: using, bucket: bucket}
11
8
  if what.is_a? Array
12
- what.each do |method_name|
13
- define_method(method_name) do
14
- JSON.parse(Looksist.redis_service.send("#{__entity__(bucket)}_for", self.send(using).try(:to_s)) || '{}')[method_name.to_s]
15
- end
16
- self.lookup_attributes << method_name
17
- end
9
+ setup_composite_lookup(bucket, using, what)
18
10
  else
11
+ self.lookup_attributes << what.to_sym
19
12
  define_method(what) do
20
13
  Looksist.redis_service.send("#{__entity__(bucket)}_for", self.send(using).try(:to_s))
21
14
  end
22
- self.lookup_attributes << what.to_sym
15
+ end
16
+ end
17
+
18
+ private
19
+ def setup_composite_lookup(bucket, using, what)
20
+ what.each do |method_name|
21
+ define_method(method_name) do
22
+ JSON.parse(Looksist.redis_service.send("#{__entity__(bucket)}_for", self.send(using).try(:to_s)) || '{}')[method_name.to_s]
23
+ end
24
+ self.lookup_attributes << method_name
23
25
  end
24
26
  end
25
27
  end
@@ -29,7 +31,8 @@ module Looksist
29
31
  end
30
32
 
31
33
  included do |base|
32
- base.class_attribute :lookup_attributes, :id_and_buckets
34
+ base.class_attribute :lookup_attributes
35
+ base.lookup_attributes = []
33
36
  end
34
37
 
35
38
  end
@@ -37,8 +40,7 @@ module Looksist
37
40
  module Serializers
38
41
  class Her
39
42
  class << self
40
- def json_opts(obj, opts)
41
- obj.class.lookup_attributes ||= []
43
+ def json_opts(obj, _)
42
44
  obj.attributes.merge(obj.class.lookup_attributes.each_with_object({}) { |a, acc| acc[a] = obj.send(a) })
43
45
  end
44
46
  end
@@ -1,3 +1,3 @@
1
1
  module Lookist
2
- VERSION = '0.1.9'
2
+ VERSION = '0.2.0'
3
3
  end
data/looksist.gemspec CHANGED
@@ -30,6 +30,8 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'cucumber'
31
31
  spec.add_development_dependency 'redis'
32
32
  spec.add_development_dependency 'hiredis'
33
+ spec.add_development_dependency 'simplecov'
34
+ spec.add_development_dependency 'coveralls'
33
35
 
34
36
  spec.add_runtime_dependency 'jsonpath', '~> 0.5.6'
35
37
 
data/spec/spec_helper.rb CHANGED
@@ -2,11 +2,24 @@ require 'active_support/all'
2
2
  require 'faraday_middleware'
3
3
  require 'her'
4
4
  require 'ostruct'
5
+ require 'pry'
6
+ require 'simplecov'
7
+ require 'coveralls'
8
+
9
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ Coveralls::SimpleCov::Formatter
12
+ ]
13
+
14
+ SimpleCov.start do
15
+ add_filter '/spec/'
16
+ add_filter '/features/'
17
+ end
18
+
5
19
  require 'looksist'
6
20
  require 'looksist/redis_service'
7
21
  require 'looksist/hashed'
8
22
  require 'looksist/safe_lru_cache'
9
- require 'pry'
10
23
 
11
24
  module Her
12
25
  module Model
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: looksist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - RC
@@ -179,6 +179,34 @@ dependencies:
179
179
  - - ">="
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: simplecov
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: coveralls
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
182
210
  - !ruby/object:Gem::Dependency
183
211
  name: jsonpath
184
212
  requirement: !ruby/object:Gem::Requirement