embulk-input-datastore 0.0.2 → 0.0.3
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 +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
|
+
[](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
|