protobuf_nested_struct 1.0.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 +7 -0
- data/.circleci/config.yml +12 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/README.md +71 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/google/type/date.proto +45 -0
- data/lib/google/type/date_pb.rb +18 -0
- data/lib/protobuf_nested_struct.rb +102 -0
- data/lib/protobuf_nested_struct/struct.proto +32 -0
- data/lib/protobuf_nested_struct/struct_pb.rb +38 -0
- data/lib/protobuf_nested_struct/version.rb +3 -0
- data/protobuf_nested_struct.gemspec +35 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bae6c6d57359ec2a06c717c132da705bec0f569e
|
4
|
+
data.tar.gz: 0d11b7bc9dc5ef4a4a10808c33bfc56ba7405e91
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9d506d70254b800a612076f2f5bfd12b12980bd58f479963fe51315e321b1e6e31177a372fe358ea291339900b85f8147f5dc76d46eb75e5bcf9141b9f4eabaf
|
7
|
+
data.tar.gz: 817930eb2167b5d9f37c1e205b59292cc18b199383ecd0006aa1135ac064b56db27229fec5c33ca8264931ed86b813cf0ae3bc18b1301d8279a4e6327a54f7fb
|
@@ -0,0 +1,12 @@
|
|
1
|
+
version: 2
|
2
|
+
jobs:
|
3
|
+
build:
|
4
|
+
macos:
|
5
|
+
xcode: "9.3.0"
|
6
|
+
steps:
|
7
|
+
- checkout
|
8
|
+
- run:
|
9
|
+
name: install+mutate
|
10
|
+
command: bundle install && bundle exec mutant --include lib --require protobuf_nested_struct --use rspec ProtobufNestedStruct*
|
11
|
+
environment:
|
12
|
+
ARCHFLAGS: "-arch x86_64"
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# ProtobufNestedStruct
|
2
|
+
|
3
|
+
Serialize your primitives, arrays and hashes using protobuf. Supports nested arrays and hashes.
|
4
|
+
|
5
|
+
Supported types:
|
6
|
+
|
7
|
+
* nil
|
8
|
+
* integer
|
9
|
+
* float
|
10
|
+
* boolean
|
11
|
+
* string
|
12
|
+
* date
|
13
|
+
* time
|
14
|
+
* hash (keys must be strings, values' types must be on this list)
|
15
|
+
* array (elements' types must be on this list)
|
16
|
+
|
17
|
+
Inspired by `google/protobuf/struct.proto` but it can additionally handle Date, Time and Integer values.
|
18
|
+
|
19
|
+
## Installation
|
20
|
+
|
21
|
+
Add this line to your application's Gemfile:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
gem 'protobuf_nested_struct'
|
25
|
+
```
|
26
|
+
|
27
|
+
And then execute:
|
28
|
+
|
29
|
+
$ bundle
|
30
|
+
|
31
|
+
Or install it yourself as:
|
32
|
+
|
33
|
+
$ gem install protobuf_nested_struct
|
34
|
+
|
35
|
+
## Usage
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
# store the serialized binary string in DB or send over network
|
39
|
+
serialized = ProtobufNestedStruct.dump(v)
|
40
|
+
|
41
|
+
|
42
|
+
# receive de-serialized binary string from DB or network
|
43
|
+
copy = ProtobufNestedStruct.load(serialized)
|
44
|
+
|
45
|
+
expect(copy).to eql(obj)
|
46
|
+
```
|
47
|
+
|
48
|
+
where `obj` can be an instance of one of the supported types.
|
49
|
+
|
50
|
+
## Development
|
51
|
+
|
52
|
+
* `bundle install`
|
53
|
+
* `bundle exec rspec`
|
54
|
+
|
55
|
+
## Contributing
|
56
|
+
|
57
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/arkency/protobuf-nested-struct
|
58
|
+
|
59
|
+
## Credits
|
60
|
+
|
61
|
+
* https://github.com/google/protobuf/blob/07b9238a1c03ef0351bcb4ca57d773eb7b7c5824/src/google/protobuf/struct.proto
|
62
|
+
* https://github.com/google/protobuf/blob/9497a657d577ebda0272711651c3dcdda3a4ac35/ruby/lib/google/protobuf/well_known_types.rb#L149
|
63
|
+
* https://github.com/google/protobuf/blob/9497a657d577ebda0272711651c3dcdda3a4ac35/ruby/tests/well_known_types_test.rb#L35
|
64
|
+
|
65
|
+
## About
|
66
|
+
|
67
|
+
<img src="https://arkency.com/images/arkency.png" alt="Arkency" width="60px" align="left" />
|
68
|
+
|
69
|
+
This repository is funded and maintained by [Arkency](https://arkency.com). Check out our other [open-source projects](https://github.com/arkency), especially [Rails Event Store](https://github.com/RailsEventStore).
|
70
|
+
|
71
|
+
Consider [hiring us](https://arkency.com/hire-us) to grow your Ruby/Rails apps and business. Make sure to check out [our blog](https://blog.arkency.com).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "protobuf_nested_struct"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
// Copyright 2016 Google Inc.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
syntax = "proto3";
|
16
|
+
|
17
|
+
package google.type;
|
18
|
+
|
19
|
+
option cc_enable_arenas = true;
|
20
|
+
option go_package = "google.golang.org/genproto/googleapis/type/date;date";
|
21
|
+
option java_multiple_files = true;
|
22
|
+
option java_outer_classname = "DateProto";
|
23
|
+
option java_package = "com.google.type";
|
24
|
+
option objc_class_prefix = "GTP";
|
25
|
+
|
26
|
+
|
27
|
+
// Represents a whole calendar date, e.g. date of birth. The time of day and
|
28
|
+
// time zone are either specified elsewhere or are not significant. The date
|
29
|
+
// is relative to the Proleptic Gregorian Calendar. The day may be 0 to
|
30
|
+
// represent a year and month where the day is not significant, e.g. credit card
|
31
|
+
// expiration date. The year may be 0 to represent a month and day independent
|
32
|
+
// of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay]
|
33
|
+
// and `google.protobuf.Timestamp`.
|
34
|
+
message Date {
|
35
|
+
// Year of date. Must be from 1 to 9999, or 0 if specifying a date without
|
36
|
+
// a year.
|
37
|
+
int32 year = 1;
|
38
|
+
|
39
|
+
// Month of year. Must be from 1 to 12.
|
40
|
+
int32 month = 2;
|
41
|
+
|
42
|
+
// Day of month. Must be from 1 to 31 and valid for the year and month, or 0
|
43
|
+
// if specifying a year/month where the day is not significant.
|
44
|
+
int32 day = 3;
|
45
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: date.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "google.type.Date" do
|
8
|
+
optional :year, :int32, 1
|
9
|
+
optional :month, :int32, 2
|
10
|
+
optional :day, :int32, 3
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module Google
|
15
|
+
module Type
|
16
|
+
Date = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.type.Date").msgclass
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'google/protobuf'
|
3
|
+
require 'google/protobuf/well_known_types'
|
4
|
+
|
5
|
+
require 'protobuf_nested_struct/version'
|
6
|
+
require 'protobuf_nested_struct/struct_pb'
|
7
|
+
|
8
|
+
module ProtobufNestedStruct
|
9
|
+
class Value
|
10
|
+
def from_ruby(obj)
|
11
|
+
case obj
|
12
|
+
when nil
|
13
|
+
self.null_value = 0
|
14
|
+
when Integer
|
15
|
+
self.int_value = obj
|
16
|
+
when Float
|
17
|
+
self.double_value = obj
|
18
|
+
when String
|
19
|
+
self.string_value = obj
|
20
|
+
when TrueClass, FalseClass
|
21
|
+
self.bool_value = obj
|
22
|
+
when Date
|
23
|
+
self.date_value = Google::Type::Date.new(day: obj.day, month: obj.month, year: obj.year)
|
24
|
+
when Time
|
25
|
+
self.timestamp_value = Google::Protobuf::Timestamp.new.tap{|gpt| gpt.from_time(obj) }
|
26
|
+
when Hash
|
27
|
+
self.string_map_value = HashMapStringValue.new.tap{|ps| ps.from_ruby(obj) }
|
28
|
+
when Array
|
29
|
+
self.list_value = ListValue.new.tap{|ps| ps.from_ruby(obj) }
|
30
|
+
else
|
31
|
+
raise ArgumentError, "not allowed: #{obj.inspect}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_ruby
|
36
|
+
case kind
|
37
|
+
when :null_value
|
38
|
+
nil
|
39
|
+
when :int_value
|
40
|
+
int_value
|
41
|
+
when :double_value
|
42
|
+
double_value
|
43
|
+
when :string_value
|
44
|
+
string_value
|
45
|
+
when :bool_value
|
46
|
+
bool_value
|
47
|
+
when :date_value
|
48
|
+
Date.new(date_value.year, date_value.month, date_value.day)
|
49
|
+
when :timestamp_value
|
50
|
+
timestamp_value.to_time
|
51
|
+
when :string_map_value
|
52
|
+
string_map_value.to_ruby
|
53
|
+
when :list_value
|
54
|
+
list_value.to_ruby
|
55
|
+
else
|
56
|
+
raise ArgumentError
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
class HashMapStringValue
|
63
|
+
def from_ruby(obj)
|
64
|
+
Hash === obj or raise ArgumentError
|
65
|
+
obj.each do |key, value|
|
66
|
+
fields[key] ||= Value.new
|
67
|
+
fields[key].from_ruby(value)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def to_ruby
|
72
|
+
fields.each_with_object({}) do |(key, value), hash|
|
73
|
+
hash[key] = value.to_ruby
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
class ListValue
|
79
|
+
def from_ruby(obj)
|
80
|
+
Array === obj or raise ArgumentError
|
81
|
+
values.clear
|
82
|
+
obj.each do |value|
|
83
|
+
values << Value.new.tap{|v| v.from_ruby(value) }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def to_ruby
|
88
|
+
values.map{|v| v.to_ruby }
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.dump(obj)
|
93
|
+
v = Value.new
|
94
|
+
v.from_ruby(obj)
|
95
|
+
Value.encode(v)
|
96
|
+
end
|
97
|
+
|
98
|
+
def self.load(string)
|
99
|
+
v = Value.decode(string)
|
100
|
+
v.to_ruby
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
import "google/protobuf/timestamp.proto";
|
3
|
+
import "google/type/date.proto";
|
4
|
+
package protobuf_nested_struct;
|
5
|
+
|
6
|
+
message HashMapStringValue {
|
7
|
+
map<string, Value> fields = 1;
|
8
|
+
}
|
9
|
+
|
10
|
+
message Value {
|
11
|
+
oneof kind {
|
12
|
+
NullValue null_value = 1;
|
13
|
+
double double_value = 2;
|
14
|
+
int64 int_value = 3;
|
15
|
+
string string_value = 4;
|
16
|
+
bool bool_value = 5;
|
17
|
+
|
18
|
+
google.type.Date date_value = 6;
|
19
|
+
google.protobuf.Timestamp timestamp_value = 7;
|
20
|
+
|
21
|
+
HashMapStringValue string_map_value = 20;
|
22
|
+
ListValue list_value = 21;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
enum NullValue {
|
27
|
+
NULL_VALUE = 0;
|
28
|
+
}
|
29
|
+
|
30
|
+
message ListValue {
|
31
|
+
repeated Value values = 1;
|
32
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: struct.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/protobuf/timestamp_pb'
|
7
|
+
require 'google/type/date_pb'
|
8
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
|
+
add_message "protobuf_nested_struct.HashMapStringValue" do
|
10
|
+
map :fields, :string, :message, 1, "protobuf_nested_struct.Value"
|
11
|
+
end
|
12
|
+
add_message "protobuf_nested_struct.Value" do
|
13
|
+
oneof :kind do
|
14
|
+
optional :null_value, :enum, 1, "protobuf_nested_struct.NullValue"
|
15
|
+
optional :double_value, :double, 2
|
16
|
+
optional :int_value, :int64, 3
|
17
|
+
optional :string_value, :string, 4
|
18
|
+
optional :bool_value, :bool, 5
|
19
|
+
optional :date_value, :message, 6, "google.type.Date"
|
20
|
+
optional :timestamp_value, :message, 7, "google.protobuf.Timestamp"
|
21
|
+
optional :string_map_value, :message, 20, "protobuf_nested_struct.HashMapStringValue"
|
22
|
+
optional :list_value, :message, 21, "protobuf_nested_struct.ListValue"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
add_message "protobuf_nested_struct.ListValue" do
|
26
|
+
repeated :values, :message, 1, "protobuf_nested_struct.Value"
|
27
|
+
end
|
28
|
+
add_enum "protobuf_nested_struct.NullValue" do
|
29
|
+
value :NULL_VALUE, 0
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module ProtobufNestedStruct
|
34
|
+
HashMapStringValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("protobuf_nested_struct.HashMapStringValue").msgclass
|
35
|
+
Value = Google::Protobuf::DescriptorPool.generated_pool.lookup("protobuf_nested_struct.Value").msgclass
|
36
|
+
ListValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("protobuf_nested_struct.ListValue").msgclass
|
37
|
+
NullValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("protobuf_nested_struct.NullValue").enummodule
|
38
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "protobuf_nested_struct/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "protobuf_nested_struct"
|
8
|
+
spec.version = ProtobufNestedStruct::VERSION
|
9
|
+
spec.authors = ["Robert Pankowecki", "Arkency"]
|
10
|
+
spec.email = ["dev@arkency.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Serialize primitives and deep structures (array, hash) to protobuf}
|
13
|
+
spec.description = %q{Serialize primitives and deep structures (array, hash) to protobuf}
|
14
|
+
spec.homepage = "https://github.com/arkency/protobuf-nested-struct"
|
15
|
+
spec.metadata = {
|
16
|
+
"homepage_uri" => "https://github.com/arkency/protobuf-nested-struct",
|
17
|
+
"changelog_uri" => "https://github.com/arkency/protobuf-nested-struct/releases",
|
18
|
+
"source_code_uri" => "https://github.com/arkency/protobuf-nested-struct",
|
19
|
+
"bug_tracker_uri" => "https://github.com/arkency/protobuf-nested-struct/issues",
|
20
|
+
}
|
21
|
+
|
22
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
23
|
+
f.match(%r{^(test|spec|features)/})
|
24
|
+
end
|
25
|
+
spec.bindir = "exe"
|
26
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
|
+
spec.require_paths = ["lib"]
|
28
|
+
spec.add_dependency "google-protobuf"
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
33
|
+
spec.add_development_dependency "pry"
|
34
|
+
spec.add_development_dependency "mutant-rspec"
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: protobuf_nested_struct
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Robert Pankowecki
|
8
|
+
- Arkency
|
9
|
+
autorequire:
|
10
|
+
bindir: exe
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-04-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: google-protobuf
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bundler
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.16'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.16'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '10.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '10.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rspec
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: pry
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: mutant-rspec
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
description: Serialize primitives and deep structures (array, hash) to protobuf
|
99
|
+
email:
|
100
|
+
- dev@arkency.com
|
101
|
+
executables: []
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".circleci/config.yml"
|
106
|
+
- ".gitignore"
|
107
|
+
- ".rspec"
|
108
|
+
- ".travis.yml"
|
109
|
+
- Gemfile
|
110
|
+
- README.md
|
111
|
+
- Rakefile
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- lib/google/type/date.proto
|
115
|
+
- lib/google/type/date_pb.rb
|
116
|
+
- lib/protobuf_nested_struct.rb
|
117
|
+
- lib/protobuf_nested_struct/struct.proto
|
118
|
+
- lib/protobuf_nested_struct/struct_pb.rb
|
119
|
+
- lib/protobuf_nested_struct/version.rb
|
120
|
+
- protobuf_nested_struct.gemspec
|
121
|
+
homepage: https://github.com/arkency/protobuf-nested-struct
|
122
|
+
licenses: []
|
123
|
+
metadata:
|
124
|
+
homepage_uri: https://github.com/arkency/protobuf-nested-struct
|
125
|
+
changelog_uri: https://github.com/arkency/protobuf-nested-struct/releases
|
126
|
+
source_code_uri: https://github.com/arkency/protobuf-nested-struct
|
127
|
+
bug_tracker_uri: https://github.com/arkency/protobuf-nested-struct/issues
|
128
|
+
post_install_message:
|
129
|
+
rdoc_options: []
|
130
|
+
require_paths:
|
131
|
+
- lib
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
requirements: []
|
143
|
+
rubyforge_project:
|
144
|
+
rubygems_version: 2.6.13
|
145
|
+
signing_key:
|
146
|
+
specification_version: 4
|
147
|
+
summary: Serialize primitives and deep structures (array, hash) to protobuf
|
148
|
+
test_files: []
|