embulk-input-rediskeys 0.1.0 → 0.2.0

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