embulk-input-datastore 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +0 -1
- data/Makefile +20 -0
- data/README.md +9 -3
- data/build.gradle +7 -2
- data/classpath/annotations-13.0.jar +0 -0
- data/classpath/api-common-1.5.0.jar +0 -0
- data/classpath/commons-codec-1.3.jar +0 -0
- data/classpath/commons-logging-1.1.1.jar +0 -0
- data/classpath/datastore-v1-proto-client-1.6.0.jar +0 -0
- data/classpath/embulk-input-datastore-0.0.3.jar +0 -0
- data/classpath/error_prone_annotations-2.2.0.jar +0 -0
- data/classpath/gax-1.23.0.jar +0 -0
- data/classpath/gax-httpjson-0.40.0.jar +0 -0
- data/classpath/google-api-client-1.23.0.jar +0 -0
- data/classpath/google-auth-library-credentials-0.9.0.jar +0 -0
- data/classpath/google-auth-library-oauth2-http-0.9.0.jar +0 -0
- data/classpath/google-cloud-core-1.27.0.jar +0 -0
- data/classpath/google-cloud-core-http-1.27.0.jar +0 -0
- data/classpath/google-cloud-datastore-1.27.0.jar +0 -0
- data/classpath/google-http-client-1.23.0.jar +0 -0
- data/classpath/google-http-client-appengine-1.23.0.jar +0 -0
- data/classpath/google-http-client-jackson-1.23.0.jar +0 -0
- data/classpath/google-http-client-jackson2-1.23.0.jar +0 -0
- data/classpath/google-http-client-protobuf-1.20.0.jar +0 -0
- data/classpath/google-oauth-client-1.23.0.jar +0 -0
- data/classpath/grpc-context-1.10.1.jar +0 -0
- data/classpath/grpc-core-1.10.1.jar +0 -0
- data/classpath/gson-2.7.jar +0 -0
- data/classpath/guava-20.0.jar +0 -0
- data/classpath/httpclient-4.0.1.jar +0 -0
- data/classpath/httpcore-4.0.1.jar +0 -0
- data/classpath/jackson-core-asl-1.9.11.jar +0 -0
- data/classpath/jsr305-3.0.1.jar +0 -0
- data/classpath/kotlin-reflect-1.2.31.jar +0 -0
- data/classpath/kotlin-stdlib-1.2.31.jar +0 -0
- data/classpath/opencensus-api-0.11.1.jar +0 -0
- data/classpath/opencensus-contrib-grpc-metrics-0.11.0.jar +0 -0
- data/classpath/opencensus-contrib-http-util-0.11.1.jar +0 -0
- data/classpath/proto-google-cloud-datastore-v1-0.10.0.jar +0 -0
- data/classpath/proto-google-common-protos-1.9.0.jar +0 -0
- data/classpath/proto-google-iam-v1-0.10.0.jar +0 -0
- data/classpath/protobuf-java-3.5.1.jar +0 -0
- data/classpath/protobuf-java-util-3.5.1.jar +0 -0
- data/classpath/threetenbp-1.3.3.jar +0 -0
- data/embulk-input-datastore.gemspec +18 -0
- data/embulk-input-datastore.iml +1 -1
- data/examples/datastore2stdout.yaml +8 -0
- data/gradle.properties +1 -1
- data/src/main/java/org/embulk/input/datastore/DatastoreInputPlugin.kt +54 -30
- data/src/main/java/org/embulk/input/datastore/PluginTask.kt +3 -0
- metadata +61 -19
- data/classpath/embulk-input-datastore-0.0.2.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0418d992c45a1a40f72e4810dee870bd580daeb760f95f2725e436c401ffce25
|
4
|
+
data.tar.gz: dddd42cfa92264e2a597258cc70c093c45d5b4f1cbd816264a6fcdb4d54999e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8558927f2a5eafa9c859a911fdd10447c43cd890013e47a9dc7c526d4b31a14d149aa9e8adb056a1eeaca63982233bd9757096f602131f72904fcfb22ae6620f
|
7
|
+
data.tar.gz: a85c26e22745df865733a51f56560f58231db62168e36376264b6fee55ff624e431d1348609cd9281175a598ac68cc82ea66d62cde8e35d339aaff62d2b3328e
|
data/.gitignore
CHANGED
data/Makefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
build:
|
2
|
+
gradle build
|
3
|
+
|
4
|
+
embulk_run:
|
5
|
+
gradle embulk_run
|
6
|
+
|
7
|
+
publish_gem: build
|
8
|
+
gradle classpath
|
9
|
+
gradle gemPush
|
10
|
+
|
11
|
+
.PHONY: start_datastore_emulator
|
12
|
+
start_datastore_emulator:
|
13
|
+
gcloud beta emulators datastore start --no-store-on-disk --quiet &
|
14
|
+
sleep 1
|
15
|
+
$(gcloud beta emulators datastore env-init)
|
16
|
+
|
17
|
+
.PHONY: stop_datastore_emulator
|
18
|
+
stop_datastore_emulator:
|
19
|
+
gcloud beta emulators datastore env-unset
|
20
|
+
ps aux | grep CloudDatastore | grep -v grep | awk '{ print "kill " $2 }' | sh
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Datastore input plugin for Embulk
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/embulk-input-datastore.svg)](https://badge.fury.io/rb/embulk-input-datastore)
|
4
|
+
|
3
5
|
A embulk input plugin fetches Cloud Datastore entities.
|
4
6
|
|
5
7
|
## Overview
|
@@ -11,6 +13,7 @@ A embulk input plugin fetches Cloud Datastore entities.
|
|
11
13
|
|
12
14
|
## Configuration
|
13
15
|
|
16
|
+
- **project_id**: your GCP project_id. (string, required)
|
14
17
|
- **json_keyfile**: A path to JSON keyfile. (string, required)
|
15
18
|
- **gql**: A GQL fetches to Cloud Datastore (string, required)
|
16
19
|
- **json_column_name**: description (string, default: `"record"`)
|
@@ -20,8 +23,9 @@ A embulk input plugin fetches Cloud Datastore entities.
|
|
20
23
|
```yaml
|
21
24
|
in:
|
22
25
|
type: datastore
|
23
|
-
|
24
|
-
|
26
|
+
project_id: "your-gcppj-123"
|
27
|
+
json_keyfile: credential.json
|
28
|
+
gql: "SELECT * FROM myKind"
|
25
29
|
```
|
26
30
|
|
27
31
|
|
@@ -33,5 +37,7 @@ $ ./gradlew gem # -t to watch change of files and rebuild continuously
|
|
33
37
|
|
34
38
|
## NOTE
|
35
39
|
|
36
|
-
Currently this plugin
|
40
|
+
- Currently this plugin has below limitations:
|
41
|
+
- Aggregate fetched properties to 1 'json' type column.
|
42
|
+
- `ENTITY`, `KEY`, `LIST`, `LAT_LNG`, `NULL`, `RAW_VALUE` types are not supported.
|
37
43
|
|
data/build.gradle
CHANGED
@@ -11,7 +11,9 @@ buildscript {
|
|
11
11
|
}
|
12
12
|
}
|
13
13
|
|
14
|
+
apply plugin: "kotlin"
|
14
15
|
apply plugin: "com.github.kamatama41.embulk"
|
16
|
+
apply plugin: "net.researchgate.release"
|
15
17
|
|
16
18
|
embulk {
|
17
19
|
version = "0.8.18"
|
@@ -20,11 +22,14 @@ embulk {
|
|
20
22
|
authors = ["syucream"]
|
21
23
|
email = "syucream1031@gmail.com"
|
22
24
|
homepage = "https://github.com/syucream/embulk-input-datastore"
|
25
|
+
|
26
|
+
// for debug
|
27
|
+
configYaml = "examples/datastore2stdout.yaml"
|
23
28
|
}
|
24
29
|
|
25
30
|
dependencies {
|
26
31
|
// To refer KClass::class.java
|
27
|
-
|
32
|
+
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
28
33
|
|
29
|
-
|
34
|
+
compile 'com.google.cloud:google-cloud-datastore:1.27.0'
|
30
35
|
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "embulk-input-datastore"
|
3
|
+
spec.version = "0.0.3"
|
4
|
+
spec.authors = ["syucream"]
|
5
|
+
spec.summary = %[Datastore input plugin for Embulk]
|
6
|
+
spec.description = %[Loads records from datastore.]
|
7
|
+
spec.email = ["syucream1031@gmail.com"]
|
8
|
+
spec.licenses = ["MIT"]
|
9
|
+
spec.homepage = "https://github.com/syucream/embulk-input-datastore"
|
10
|
+
|
11
|
+
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
12
|
+
spec.test_files = spec.files.grep(%r"^(test|spec)/")
|
13
|
+
spec.require_paths = ["lib"]
|
14
|
+
|
15
|
+
#spec.add_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
|
16
|
+
spec.add_development_dependency 'bundler', ['~> 1.0']
|
17
|
+
spec.add_development_dependency 'rake', ['>= 10.0']
|
18
|
+
end
|
data/embulk-input-datastore.iml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module external.linked.project.id="embulk-input-datastore" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="0.0.
|
2
|
+
<module external.linked.project.id="embulk-input-datastore" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="0.0.3" type="JAVA_MODULE" version="4">
|
3
3
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
4
4
|
<exclude-output />
|
5
5
|
<content url="file://$MODULE_DIR$">
|
data/gradle.properties
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version=0.0.
|
1
|
+
version=0.0.3
|
@@ -1,6 +1,7 @@
|
|
1
1
|
package org.embulk.input.datastore
|
2
2
|
|
3
3
|
import com.google.auth.oauth2.GoogleCredentials
|
4
|
+
import com.google.cloud.Timestamp
|
4
5
|
import com.google.cloud.datastore.*
|
5
6
|
import org.embulk.config.TaskReport
|
6
7
|
import org.embulk.config.ConfigDiff
|
@@ -10,16 +11,15 @@ import org.embulk.spi.*
|
|
10
11
|
import org.embulk.spi.type.Types
|
11
12
|
import org.msgpack.value.ValueFactory
|
12
13
|
import java.io.FileInputStream
|
13
|
-
import java.io.IOException
|
14
14
|
|
15
15
|
class DatastoreInputPlugin : InputPlugin {
|
16
16
|
// number of run() method calls
|
17
|
-
val TASK_COUNT = 1
|
17
|
+
private val TASK_COUNT = 1
|
18
18
|
|
19
|
-
|
19
|
+
private val logger = Exec.getLogger(javaClass)
|
20
20
|
|
21
21
|
override fun transaction(config: ConfigSource,
|
22
|
-
|
22
|
+
control: InputPlugin.Control): ConfigDiff {
|
23
23
|
val task: PluginTask = config.loadConfig(PluginTask::class.java)
|
24
24
|
|
25
25
|
// Support only 1 'json' type column
|
@@ -27,33 +27,25 @@ class DatastoreInputPlugin : InputPlugin {
|
|
27
27
|
.add(task.jsonColumnName, Types.JSON)
|
28
28
|
.build()
|
29
29
|
|
30
|
-
// Setup datastore client
|
31
|
-
val cred = GoogleCredentials
|
32
|
-
.fromStream(FileInputStream(task.jsonKeyfile))
|
33
|
-
this.datastore = DatastoreOptions.newBuilder()
|
34
|
-
.setCredentials(cred)
|
35
|
-
.build()
|
36
|
-
.service
|
37
|
-
|
38
30
|
return resume(task.dump(), schema, TASK_COUNT, control)
|
39
31
|
}
|
40
32
|
|
41
33
|
override fun resume(taskSource: TaskSource,
|
42
|
-
|
43
|
-
|
34
|
+
schema: Schema, taskCount: Int,
|
35
|
+
control: InputPlugin.Control): ConfigDiff {
|
44
36
|
// XXX Unimplemented
|
45
37
|
control.run(taskSource, schema, taskCount)
|
46
38
|
return Exec.newConfigDiff()
|
47
39
|
}
|
48
40
|
|
49
41
|
override fun cleanup(taskSource: TaskSource,
|
50
|
-
|
51
|
-
|
42
|
+
schema: Schema, taskCount: Int,
|
43
|
+
successTaskReports: List<TaskReport>) {
|
52
44
|
}
|
53
45
|
|
54
46
|
override fun run(taskSource: TaskSource,
|
55
|
-
|
56
|
-
|
47
|
+
schema: Schema, taskIndex: Int,
|
48
|
+
output: PageOutput): TaskReport {
|
57
49
|
val task = taskSource.loadTask(PluginTask::class.java)
|
58
50
|
val allocator = task.getBufferAllocator()
|
59
51
|
val pageBuilder = PageBuilder(allocator, schema, output)
|
@@ -62,20 +54,37 @@ class DatastoreInputPlugin : InputPlugin {
|
|
62
54
|
.newGqlQueryBuilder(Query.ResultType.ENTITY, task.gql)
|
63
55
|
.build()
|
64
56
|
|
65
|
-
datastore
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
57
|
+
val datastore = createDatastoreClient(task)
|
58
|
+
val col = pageBuilder.schema.getColumn(0)
|
59
|
+
|
60
|
+
datastore.run(query)
|
61
|
+
.forEach { entity ->
|
62
|
+
logger.debug(entity.toString())
|
63
|
+
|
64
|
+
// TODO separate/simplify generating JSON
|
65
|
+
val pairs = entity.names.flatMap { name ->
|
66
|
+
val dsValue = entity.getValue<Value<Any>>(name)
|
67
|
+
val strVal: String? = when (dsValue.type) {
|
68
|
+
ValueType.BLOB -> (dsValue.get() as ByteArray).toString()
|
69
|
+
ValueType.BOOLEAN -> (dsValue.get() as Boolean).toString()
|
70
|
+
ValueType.DOUBLE -> (dsValue.get() as Double).toString()
|
71
|
+
ValueType.LONG -> (dsValue.get() as Long).toString()
|
72
|
+
ValueType.STRING -> "\"${dsValue.get() as String}\""
|
73
|
+
ValueType.TIMESTAMP -> (dsValue.get() as Timestamp).toString()
|
74
|
+
else -> null // NOTE, TODO: LIST, ENTITY, ... is still unsupported
|
75
|
+
}
|
76
|
+
strVal?.let { listOf(Pair<String, String>(name, it)) } ?: listOf()
|
73
77
|
}
|
78
|
+
val json = "{" + pairs.map { pair ->
|
79
|
+
"\"${pair.first}\": ${pair.second}"
|
80
|
+
}.joinToString() + "}"
|
81
|
+
|
82
|
+
val msgpackValue = ValueFactory.newString(json)
|
83
|
+
pageBuilder.setJson(col, msgpackValue)
|
84
|
+
pageBuilder.addRecord()
|
85
|
+
}
|
74
86
|
|
75
|
-
|
76
|
-
} ?: run {
|
77
|
-
throw IOException("Datastore client is unavailable.")
|
78
|
-
}
|
87
|
+
pageBuilder.finish()
|
79
88
|
|
80
89
|
return Exec.newTaskReport()
|
81
90
|
}
|
@@ -84,4 +93,19 @@ class DatastoreInputPlugin : InputPlugin {
|
|
84
93
|
// XXX Unimplemented
|
85
94
|
return Exec.newConfigDiff()
|
86
95
|
}
|
96
|
+
|
97
|
+
/**
|
98
|
+
* Setup datastore client
|
99
|
+
*
|
100
|
+
*/
|
101
|
+
private fun createDatastoreClient(task: PluginTask): Datastore {
|
102
|
+
val cred = GoogleCredentials
|
103
|
+
.fromStream(FileInputStream(task.jsonKeyfile))
|
104
|
+
|
105
|
+
return DatastoreOptions.newBuilder()
|
106
|
+
.setProjectId(task.projectId)
|
107
|
+
.setCredentials(cred)
|
108
|
+
.build()
|
109
|
+
.service
|
110
|
+
}
|
87
111
|
}
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-datastore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- syucream
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - ~>
|
17
|
+
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '1.0'
|
19
|
-
name: bundler
|
20
|
-
prerelease: false
|
21
20
|
type: :development
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '10.0'
|
33
|
-
name: rake
|
34
|
-
prerelease: false
|
35
34
|
type: :development
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
description: Loads records from datastore.
|
@@ -45,39 +45,81 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
48
|
+
- ".gitignore"
|
49
49
|
- LICENSE
|
50
|
+
- Makefile
|
50
51
|
- README.md
|
51
52
|
- build.gradle
|
53
|
+
- classpath/annotations-13.0.jar
|
54
|
+
- classpath/api-common-1.5.0.jar
|
55
|
+
- classpath/commons-codec-1.3.jar
|
56
|
+
- classpath/commons-logging-1.1.1.jar
|
57
|
+
- classpath/datastore-v1-proto-client-1.6.0.jar
|
58
|
+
- classpath/embulk-input-datastore-0.0.3.jar
|
59
|
+
- classpath/error_prone_annotations-2.2.0.jar
|
60
|
+
- classpath/gax-1.23.0.jar
|
61
|
+
- classpath/gax-httpjson-0.40.0.jar
|
62
|
+
- classpath/google-api-client-1.23.0.jar
|
63
|
+
- classpath/google-auth-library-credentials-0.9.0.jar
|
64
|
+
- classpath/google-auth-library-oauth2-http-0.9.0.jar
|
65
|
+
- classpath/google-cloud-core-1.27.0.jar
|
66
|
+
- classpath/google-cloud-core-http-1.27.0.jar
|
67
|
+
- classpath/google-cloud-datastore-1.27.0.jar
|
68
|
+
- classpath/google-http-client-1.23.0.jar
|
69
|
+
- classpath/google-http-client-appengine-1.23.0.jar
|
70
|
+
- classpath/google-http-client-jackson-1.23.0.jar
|
71
|
+
- classpath/google-http-client-jackson2-1.23.0.jar
|
72
|
+
- classpath/google-http-client-protobuf-1.20.0.jar
|
73
|
+
- classpath/google-oauth-client-1.23.0.jar
|
74
|
+
- classpath/grpc-context-1.10.1.jar
|
75
|
+
- classpath/grpc-core-1.10.1.jar
|
76
|
+
- classpath/gson-2.7.jar
|
77
|
+
- classpath/guava-20.0.jar
|
78
|
+
- classpath/httpclient-4.0.1.jar
|
79
|
+
- classpath/httpcore-4.0.1.jar
|
80
|
+
- classpath/jackson-core-asl-1.9.11.jar
|
81
|
+
- classpath/jsr305-3.0.1.jar
|
82
|
+
- classpath/kotlin-reflect-1.2.31.jar
|
83
|
+
- classpath/kotlin-stdlib-1.2.31.jar
|
84
|
+
- classpath/opencensus-api-0.11.1.jar
|
85
|
+
- classpath/opencensus-contrib-grpc-metrics-0.11.0.jar
|
86
|
+
- classpath/opencensus-contrib-http-util-0.11.1.jar
|
87
|
+
- classpath/proto-google-cloud-datastore-v1-0.10.0.jar
|
88
|
+
- classpath/proto-google-common-protos-1.9.0.jar
|
89
|
+
- classpath/proto-google-iam-v1-0.10.0.jar
|
90
|
+
- classpath/protobuf-java-3.5.1.jar
|
91
|
+
- classpath/protobuf-java-util-3.5.1.jar
|
92
|
+
- classpath/threetenbp-1.3.3.jar
|
93
|
+
- embulk-input-datastore.gemspec
|
52
94
|
- embulk-input-datastore.iml
|
95
|
+
- examples/datastore2stdout.yaml
|
53
96
|
- gradle.properties
|
54
97
|
- lib/embulk/input/datastore.rb
|
55
98
|
- src/main/java/org/embulk/input/datastore/DatastoreInputPlugin.kt
|
56
99
|
- src/main/java/org/embulk/input/datastore/PluginTask.kt
|
57
100
|
- src/test/java/org/embulk/input/datastore/TestDatastoreInputPlugin.java
|
58
|
-
- classpath/embulk-input-datastore-0.0.2.jar
|
59
101
|
homepage: https://github.com/syucream/embulk-input-datastore
|
60
102
|
licenses:
|
61
103
|
- MIT
|
62
104
|
metadata: {}
|
63
|
-
post_install_message:
|
105
|
+
post_install_message:
|
64
106
|
rdoc_options: []
|
65
107
|
require_paths:
|
66
108
|
- lib
|
67
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
68
110
|
requirements:
|
69
|
-
- -
|
111
|
+
- - ">="
|
70
112
|
- !ruby/object:Gem::Version
|
71
113
|
version: '0'
|
72
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
115
|
requirements:
|
74
|
-
- -
|
116
|
+
- - ">="
|
75
117
|
- !ruby/object:Gem::Version
|
76
118
|
version: '0'
|
77
119
|
requirements: []
|
78
|
-
rubyforge_project:
|
79
|
-
rubygems_version: 2.
|
80
|
-
signing_key:
|
120
|
+
rubyforge_project:
|
121
|
+
rubygems_version: 2.7.7
|
122
|
+
signing_key:
|
81
123
|
specification_version: 4
|
82
124
|
summary: Datastore input plugin for Embulk
|
83
125
|
test_files: []
|
Binary file
|