looksist 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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