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 +4 -4
- data/.travis.yml +2 -0
- data/Rakefile +9 -1
- data/features/bucket_lookup.feature +18 -0
- data/features/env.rb +16 -0
- data/features/step_definitions/bucket_lookup_steps.rb +12 -0
- data/lib/looksist/core.rb +1 -1
- data/lib/looksist/version.rb +1 -1
- data/lib/looksist.rb +6 -0
- data/looksist.gemspec +3 -0
- metadata +50 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05e00fd33e27ccbadbb9a2cda52ec0836c00df83
|
4
|
+
data.tar.gz: 36e9090fcacd6cddbe4dfb61f1e0065bb90ddcb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ffb2876b6acc1b1d140532b7448c63a2cd0f1f26993e5cefa6d64891bc9ef9a13b2ad76d1345f142a060757aa4500209aa5f7606b400ffd3b845cca0ab44cdae
|
7
|
+
data.tar.gz: bdfee543c270c43b238b3c982492ba91dedf388848e116980a720e1661154665a70686074ef0498f91c103869790085975c70895d867e12e12e5b3b52ea4ee84
|
data/.travis.yml
CHANGED
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
data/lib/looksist/version.rb
CHANGED
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.
|
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-
|
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
|