looksist 0.1.6 → 0.1.7

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: f3d230c832c10ad4e4ee670fce558e6cf37a4dde
4
- data.tar.gz: 84c37b806f565ac61a71ca9211e703f0dd5d8a9e
3
+ metadata.gz: 05e00fd33e27ccbadbb9a2cda52ec0836c00df83
4
+ data.tar.gz: 36e9090fcacd6cddbe4dfb61f1e0065bb90ddcb7
5
5
  SHA512:
6
- metadata.gz: 9f7f97201af1469646f6c8dc50d833ce7973588ad41bde21c014c8dbf1c3e5d0787a5ad98bb9bf6a1dbd49897bb39e17295640ecadcc08bf1dd7a7b5322cc493
7
- data.tar.gz: 4db2b2693cd497c1c11f1916c602bc71648f7064cf754e157f493995a67f56c951487ef215c836a2ef874aa46cd4157eb3ca411a867a145392c026c3c3fb8c4f
6
+ metadata.gz: ffb2876b6acc1b1d140532b7448c63a2cd0f1f26993e5cefa6d64891bc9ef9a13b2ad76d1345f142a060757aa4500209aa5f7606b400ffd3b845cca0ab44cdae
7
+ data.tar.gz: bdfee543c270c43b238b3c982492ba91dedf388848e116980a720e1661154665a70686074ef0498f91c103869790085975c70895d867e12e12e5b3b52ea4ee84
data/.travis.yml CHANGED
@@ -1,3 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - ruby-2.1.2
4
+ services:
5
+ - redis-server
data/Rakefile CHANGED
@@ -1,7 +1,15 @@
1
+ require 'rubygems'
2
+ require 'cucumber'
3
+
1
4
  require 'bundler/gem_tasks'
2
5
  require 'rspec/core/rake_task'
6
+ require 'cucumber/rake/task'
7
+
8
+ Cucumber::Rake::Task.new(:features) do |t|
9
+ t.cucumber_opts = 'features --format pretty'
10
+ end
3
11
 
4
12
  RSpec::Core::RakeTask.new(:spec)
5
13
 
6
- task :default => :spec
14
+ task :default => [:spec, :features]
7
15
 
@@ -0,0 +1,18 @@
1
+ @bucket_lookup
2
+ Feature: I should be able to look up all keys in a bucket by pattern so that I can power drop downs with them.
3
+
4
+ Scenario: Lookup keys in a bucket by pattern
5
+ Given I have the following keys setup in Redis
6
+ | key | value |
7
+ | ids/1 | ID 1 |
8
+ | ids/2 | ID 2 |
9
+ | ids/3 | ID 3 |
10
+ | ids/4 | ID 4 |
11
+ | non_matching_ids/4 | ID 4 |
12
+ When I ask looksist to lookup by pattern "id"
13
+ Then I see the response to be the following
14
+ | key | value |
15
+ | ids/1 | ID 1 |
16
+ | ids/2 | ID 2 |
17
+ | ids/3 | ID 3 |
18
+ | ids/4 | ID 4 |
data/features/env.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'active_support/all'
2
+ require 'faraday_middleware'
3
+ require 'her'
4
+ require 'ostruct'
5
+ require 'looksist'
6
+ require 'looksist/redis_service'
7
+ require 'looksist/hashed'
8
+ require 'looksist/safe_lru_cache'
9
+ require 'pry'
10
+ require 'redis'
11
+ require 'hiredis'
12
+
13
+ Looksist.configure do |looksist|
14
+ looksist.lookup_store = Redis.new(url: 'redis://localhost:6379', driver: :hiredis)
15
+ looksist.driver = Looksist::Serializers::Her
16
+ end
@@ -0,0 +1,12 @@
1
+ Given(/^I have the following keys setup in Redis$/) do |table|
2
+ Looksist.lookup_store.flushall
3
+ table.hashes.each { |row| Looksist.lookup_store.set(row[:key], row[:value]) }
4
+ end
5
+
6
+ When(/^I ask looksist to lookup by pattern "([^"]*)"$/) do |arg|
7
+ @last_response = Looksist.bucket_dump "#{arg}"
8
+ end
9
+
10
+ Then(/^I see the response to be the following$/) do |table|
11
+ expect(table.hashes.each_with_object({}){|row, acc| acc[row[:key]] = row[:value]}).to eq(@last_response)
12
+ end
data/lib/looksist/core.rb CHANGED
@@ -29,7 +29,7 @@ module Looksist
29
29
  end
30
30
 
31
31
  included do |base|
32
- base.class_attribute :lookup_attributes, :storage, :id_and_buckets
32
+ base.class_attribute :lookup_attributes, :id_and_buckets
33
33
  end
34
34
 
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module Lookist
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.7'
3
3
  end
data/lib/looksist.rb CHANGED
@@ -24,5 +24,11 @@ module Looksist
24
24
  lookup.buffer_size = self.cache_buffer_size || 50000
25
25
  end
26
26
  end
27
+
28
+ def bucket_dump(entity)
29
+ keys = Looksist.lookup_store.keys("#{entity.pluralize}*")
30
+ values = Looksist.redis_service.send("#{entity}_for", keys.collect{|i| i.split('/').last})
31
+ keys.zip(values).to_h
32
+ end
27
33
  end
28
34
  end
data/looksist.gemspec CHANGED
@@ -27,6 +27,9 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'her'
28
28
  spec.add_development_dependency 'faraday'
29
29
  spec.add_development_dependency 'faraday_middleware'
30
+ spec.add_development_dependency 'cucumber'
31
+ spec.add_development_dependency 'redis'
32
+ spec.add_development_dependency 'hiredis'
30
33
 
31
34
  spec.add_runtime_dependency 'jsonpath', '~> 0.5.6'
32
35
 
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.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - RC
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-23 00:00:00.000000000 Z
12
+ date: 2014-10-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -137,6 +137,48 @@ dependencies:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: cucumber
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: redis
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: hiredis
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
140
182
  - !ruby/object:Gem::Dependency
141
183
  name: jsonpath
142
184
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +210,9 @@ files:
168
210
  - LICENSE.txt
169
211
  - README.md
170
212
  - Rakefile
213
+ - features/bucket_lookup.feature
214
+ - features/env.rb
215
+ - features/step_definitions/bucket_lookup_steps.rb
171
216
  - lib/looksist.rb
172
217
  - lib/looksist/common.rb
173
218
  - lib/looksist/core.rb
@@ -206,6 +251,9 @@ signing_key:
206
251
  specification_version: 4
207
252
  summary: Redis backed lookup for your models
208
253
  test_files:
254
+ - features/bucket_lookup.feature
255
+ - features/env.rb
256
+ - features/step_definitions/bucket_lookup_steps.rb
209
257
  - spec/looksist/hashed_spec.rb
210
258
  - spec/looksist/looksist_spec.rb
211
259
  - spec/looksist/redis_service_spec.rb