looksist 0.1.6 → 0.1.7

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: 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