embulk-input-rediskeys 0.1.0 → 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: 5527062cdeec1dd043b1575d971b5b963d05d9bb
4
- data.tar.gz: f9d04b386626c6441a0e7627133f4e3f9cee9fc4
3
+ metadata.gz: 41601c5fa9eda35e65873002cad2872a1aecc8ad
4
+ data.tar.gz: d787b379178986f2757693681e53f58d12f1ca18
5
5
  SHA512:
6
- metadata.gz: 1119f58adbff986d095542f4f5fa9006021783de02a0abb719f348446bc13f3450ee83f810b6a79be9c14dc500edc5b31eadc6bc52de5831ee3d6ccd01f24a0d
7
- data.tar.gz: ea95c97378cd2366fb4535e2b275ceb14b5506b960c2663af1b35e1d91b47c97471775a33e56724fe7a18e3fab8f3dfffbb9bdba304072ae95bac5021772c004
6
+ metadata.gz: 856d69a4322eb58a5ffe4857e7a44310f6a43f68801cdc89492ef1a163366523933322c2ea22a1dd0687f7a08f55ef96bffc7fdd96b04c526d322e8a3eef282d
7
+ data.tar.gz: 5e7e0f25da7d293ef9b706f9d7ad15b9af385b0aa1719444eca2cea85b5d4d5676e3a83bfdff31962c28f6a9de9a129903b3bb1ea4033d359f56977a23562b74
@@ -1 +1 @@
1
- jruby-9.0.4.0
1
+ jruby-9.1.2.0
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
1
  source 'https://rubygems.org/'
2
+ gem 'embulk', '~> 0.8.0'
2
3
  gemspec
data/README.md CHANGED
@@ -9,11 +9,19 @@
9
9
 
10
10
  ## Configuration
11
11
 
12
- - host: Redis hostname (string, default:localhost).
12
+ - key_prefix: Prefix of column name to read (string, required).
13
+ - host: Redis hostname (string, default: localhost).
13
14
  - port: Redis port number (int, default: 6379).
14
15
  - db: Number of Redis DB to dump columns (int, default: 0).
15
- - key_prefix: Prefix of column name to read (string, required).
16
- - encode: Type of eoncoding of data to read (string, default:json).
16
+ - match_key_as_key: Use matche key for key (bool, default: true).
17
+ - encode: Type of eoncoding of data to read (string, default: json).
18
+ - colmuns: List of column name. Set match_key_as_key true, must be required(list, default: null).
19
+
20
+ Supported encode type are:
21
+
22
+ - json
23
+ - list
24
+ - hash
17
25
 
18
26
  ## Example
19
27
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "embulk-input-rediskeys"
4
- spec.version = "0.1.0"
4
+ spec.version = "0.2.0"
5
5
  spec.authors = ["dokuma"]
6
6
  spec.summary = "Redis input plugin for Embulk"
7
7
  spec.description = "Loads records from Redis."
@@ -13,8 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = spec.files.grep(%r{^(test|spec)/})
14
14
  spec.require_paths = ["lib"]
15
15
 
16
- spec.add_dependency 'redis', ['>= 3.0.5']
17
- spec.add_development_dependency 'embulk', ['>= 0.8.9']
18
- spec.add_development_dependency 'bundler', ['>= 1.10.6']
19
- spec.add_development_dependency 'rake', ['>= 10.0']
16
+ spec.add_dependency 'redis', ['~> 3.0']
17
+ spec.add_development_dependency 'embulk', ['~> 0.8']
18
+ spec.add_development_dependency 'bundler', ['~> 1.10']
19
+ spec.add_development_dependency 'rake', ['~> 10.0']
20
20
  end
@@ -14,6 +14,7 @@ module Embulk
14
14
  'port' => config.param('port', :integer, :default => 6379),
15
15
  'db' => config.param('db', :integer, :default => 0),
16
16
  'key_prefix' => config.param('key_prefix', :string, :default => ''),
17
+ 'match_key_as_key' => config.param('match_key_as_key', :bool, :default => true),
17
18
  'encode' => config.param('encode', :string, :default => 'json')
18
19
  }
19
20
 
@@ -104,12 +105,14 @@ module Embulk
104
105
  end
105
106
  end
106
107
 
107
- def run
108
+ def match_key_as_key
108
109
  records = []
109
110
  @redis.keys("#{@task['key_prefix']}*").each do |k|
110
111
  case @task['encode']
111
112
  when 'json'
112
113
  v = @redis.get(k)
114
+ when 'list'
115
+ v = @redis.lrange(k, 0, -1)
113
116
  when 'hash'
114
117
  v = @redis.hgetall(k).to_json
115
118
  end
@@ -119,6 +122,38 @@ module Embulk
119
122
  @rows += 1
120
123
  end
121
124
  @page_builder.add(records)
125
+ end
126
+
127
+ def expect_value_is_json
128
+ @redis.keys("#{@task['key_prefix']}*").each do |k|
129
+ case @task['encode']
130
+ when 'json'
131
+ @page_builder.add(JSON.parse(@redis.get(k)).each_with_object({}) {|(key, value), new_hash|
132
+ new_hash[key] = deserialize_element(key, value)
133
+ }.values)
134
+ @rows += 1
135
+ when 'list'
136
+ @redis.lrange(k, 0, -1).each do |r|
137
+ @page_builder.add(JSON.parse(r).each_with_object({}) {|(key, value), new_hash|
138
+ new_hash[key] = deserialize_element(key, value)
139
+ }.values)
140
+ @rows += 1
141
+ end
142
+ when 'hash'
143
+ @page_builder.add(JSON.parse(@redis.hgetall(k).to_json).each_with_object({}) {|(key, value), new_hash|
144
+ new_hash[key] = deserialize_element(key, value)
145
+ }.values)
146
+ @rows += 1
147
+ end
148
+ end
149
+ end
150
+
151
+ def run
152
+ if @task['match_key_as_key'] then
153
+ match_key_as_key()
154
+ else
155
+ expect_value_is_json()
156
+ end
122
157
  @page_builder.finish # don't forget to call finish :-)
123
158
 
124
159
  task_report = {
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-rediskeys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dokuma
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-29 00:00:00.000000000 Z
11
+ date: 2017-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: redis
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">="
16
+ - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 3.0.5
20
- type: :runtime
18
+ version: '3.0'
19
+ name: redis
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.0.5
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: embulk
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - ">="
30
+ - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: 0.8.9
34
- type: :development
32
+ version: '0.8'
33
+ name: embulk
35
34
  prerelease: false
35
+ type: :development
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.8.9
40
+ version: '0.8'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - ">="
44
+ - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: 1.10.6
48
- type: :development
46
+ version: '1.10'
47
+ name: bundler
49
48
  prerelease: false
49
+ type: :development
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.10.6
54
+ version: '1.10'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - ">="
58
+ - - "~>"
60
59
  - !ruby/object:Gem::Version
61
60
  version: '10.0'
62
- type: :development
61
+ name: rake
63
62
  prerelease: false
63
+ type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
69
  description: Loads records from Redis.
@@ -85,7 +85,7 @@ homepage: https://github.com/dokuma/embulk-input-rediskeys
85
85
  licenses:
86
86
  - MIT
87
87
  metadata: {}
88
- post_install_message:
88
+ post_install_message:
89
89
  rdoc_options: []
90
90
  require_paths:
91
91
  - lib
@@ -100,9 +100,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubyforge_project:
104
- rubygems_version: 2.5.1
105
- signing_key:
103
+ rubyforge_project:
104
+ rubygems_version: 2.6.4
105
+ signing_key:
106
106
  specification_version: 4
107
107
  summary: Redis input plugin for Embulk
108
108
  test_files: []