quiver_toolbox 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 14ad03a459ffebc8a39a013270eec2255a6b4ca0
4
+ data.tar.gz: 3856842f0e8336615b66abcf5ec23e870bc8a9de
5
+ SHA512:
6
+ metadata.gz: 9e4e34df3765b64d865c06df8da5b8e8b08668746aa448e7a0fd060e6a8668a9820ed35a1a2f7fc1d994dca03a5122d5bedcb53deff4243a11749f74d7b2c4ae
7
+ data.tar.gz: 1474cf9d82c685df6115a0e8b29086071f896d5b94f65e75b8c026e7f9ab881350d92005ac393c0a317edfcabf7bdae34ffa8bdb97cc0bb81ed65c415a064240
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ before_install: gem install bundler -v 1.12.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in quiver_toolbox.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Masato INOUE (masainox@gmail.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # QuiverToolbox
2
+
3
+ QuiverToolbox is utility tools for Quiver (http://happenapps.com/#quiver).
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'quiver_toolbox'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install quiver_toolbox
20
+
21
+ ## Usage
22
+
23
+ $ quiver-notebook create NOTEBOOK_NAME
24
+ => f5064fa4-2840-460d-b650-8064f1819b30.qvnotebook
25
+
26
+ $ quiver-note create NOTE_TITLE NOTE_BODY --tags=mytag -p=./f5064fa4-2840-460d-b650-8064f1819b30.qvnotebook
27
+ => 451cc903-cfad-4db0-b425-7a59042fe70e.qvnote/6865295b-a3bc-40a6-aa74-951f6deba1f7.qvnote
28
+
29
+ See also
30
+
31
+ $ quiver-note help
32
+ $ quiver-notebook help
33
+
34
+ ## Development
35
+
36
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
37
+
38
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
39
+
40
+ ## Contributing
41
+
42
+ Bug reports and pull requests are welcome on GitHub at https://github.com/masainox/quiver_toolbox.
43
+
44
+
45
+ ## License
46
+
47
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
48
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "quiver_toolbox"
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
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/exe/quiver-note ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "quiver_toolbox"
5
+
6
+
7
+ class QuiverToolbox::CLI::Note
8
+ desc "version", "Show version number"
9
+ def version
10
+ puts QuiverToolbox::VERSION
11
+ end
12
+ end
13
+
14
+ QuiverToolbox::CLI::Note.start(ARGV)
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "quiver_toolbox"
5
+
6
+
7
+ class QuiverToolbox::CLI::Notebook
8
+ desc "version", "Show version number"
9
+ def version
10
+ puts QuiverToolbox::VERSION
11
+ end
12
+ end
13
+
14
+ QuiverToolbox::CLI::Notebook.start(ARGV)
@@ -0,0 +1,56 @@
1
+
2
+ module QuiverToolbox::API
3
+ end
4
+
5
+
6
+ class QuiverToolbox::API::CreateNotebook
7
+ attr_reader :result, :notebook
8
+ def initialize(name, uuid, path)
9
+ @result = nil
10
+ @notebook = QuiverToolbox::Notebook.new do |n|
11
+ n.name = name
12
+ n.uuid = uuid
13
+ n.store_path = path
14
+ end
15
+ end
16
+
17
+
18
+ def exec
19
+ self
20
+ end
21
+
22
+
23
+ def store
24
+ @notebook.store
25
+ @result = @notebook.file_with_path
26
+ self
27
+ end
28
+ end
29
+
30
+
31
+ class QuiverToolbox::API::CreateNote
32
+
33
+ attr_reader :result, :note
34
+ def initialize(title, body, attr)
35
+ @result = nil
36
+ @note = QuiverToolbox::Note.new(attr)
37
+ @note.file = File.join(attr['notebook_path'], @note.file_name)
38
+ @note.title = title
39
+ @note.cells = [
40
+ {
41
+ 'type' => attr['type'],
42
+ 'data' => body
43
+ }
44
+ ]
45
+ end
46
+
47
+ def exec
48
+ self
49
+ end
50
+
51
+ def store
52
+ @note.store
53
+ @result = @note.file
54
+ self
55
+ end
56
+ end
@@ -0,0 +1,34 @@
1
+
2
+ class QuiverToolbox::CLI::Note < Thor
3
+ class << self
4
+ def exit_on_failure?
5
+ true
6
+ end
7
+ end
8
+
9
+ attr_reader :api
10
+
11
+ desc "create NOTE_TITLE NOTE_BODY", "Create UUID.qvnote"
12
+ option :uuid, :aliases => :u
13
+ option :type, :default => 'text'#, :aliases => :b
14
+ option :path, :aliases => :p
15
+ option :tags, :aliases => :t, :type => :array
16
+
17
+ def create(title, body)
18
+ @api = QuiverToolbox::API::CreateNote.new(title, body, create_options)
19
+ @api.exec.store
20
+ self
21
+ end
22
+
23
+
24
+ private
25
+ def create_options
26
+ now_time = QuiverToolbox::Util.now_unixtime
27
+ new_options = options.dup
28
+ new_options['uuid'] ||= QuiverToolbox::Util.generate_uuid
29
+ new_options['notebook_path'] = new_options['path'] || './'
30
+ new_options['created_at'] ||= now_time
31
+ new_options['updated_at'] ||= now_time
32
+ new_options
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+
2
+ class QuiverToolbox::CLI::Notebook < Thor
3
+ class << self
4
+ def exit_on_failure?
5
+ true
6
+ end
7
+ end
8
+
9
+ attr_reader :api
10
+
11
+ desc "create NOTEBOOK_NAME", "Create UUID.qvnotebook"
12
+ option :uuid, :aliases => :u
13
+ option :path, :aliases => :p
14
+ def create(name)
15
+ @api = QuiverToolbox::API::CreateNotebook.new(name, create_options['uuid'], create_options['path'])
16
+ @api.exec.store
17
+ self
18
+ end
19
+
20
+ private
21
+ def create_options
22
+ new_options = options.dup
23
+ new_options['uuid'] ||= QuiverToolbox::Util.generate_uuid
24
+ new_options['path'] ||= './'
25
+ new_options
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+
2
+ require 'thor'
3
+
4
+ module QuiverToolbox::CLI
5
+ end
6
+
7
+ require 'quiver_toolbox/cli/note'
8
+ require 'quiver_toolbox/cli/notebook'
@@ -0,0 +1,130 @@
1
+
2
+ class QuiverToolbox::Note
3
+ EXTENSION = 'qvnote'
4
+ META_JSON_FILE_NAME = 'meta.json'
5
+ CONTENT_JSON_FILE_NAME = 'content.json'
6
+
7
+ KEY_CREATED_AT = 'created_at'
8
+ KEY_TAGS = 'tags'
9
+ KEY_TITLE = 'title'
10
+ KEY_UPDATED_AT = 'updated_at'
11
+ KEY_UUID = 'uuid'
12
+ KEY_CELLS = 'cells'
13
+
14
+ JSON_KEYS = [
15
+ KEY_CREATED_AT,
16
+ KEY_TAGS,
17
+ KEY_TITLE,
18
+ KEY_UPDATED_AT,
19
+ KEY_UUID,
20
+ KEY_CELLS
21
+ ]
22
+
23
+
24
+ def self.open(note_file_path)
25
+ dir = note_file_path
26
+ content_json_file = File.join(dir, 'content.json')
27
+ content_json = JSON.load(File.open(content_json_file).read)
28
+
29
+ meta_json_file = File.join(dir, 'meta.json')
30
+ meta_json = JSON.load(File.open(meta_json_file).read)
31
+
32
+ QuiverToolbox::Note.new do |n|
33
+ n.created_at = meta_json['created_at']
34
+ n.tags = meta_json['tags']
35
+ n.title = meta_json['title']
36
+ n.updated_at = meta_json['updated_at']
37
+ n.uuid = meta_json['uuid']
38
+ n.cells = content_json['cells']
39
+ end
40
+ end
41
+
42
+
43
+ JSON_KEYS.each {|key| attr_accessor key.to_sym }
44
+ attr_accessor :file, :notebook_path
45
+ def initialize(attributes = nil)
46
+ attributes.each do |k, v|
47
+ send("#{k.to_s}=", v) if respond_to?("#{k.to_s}=")
48
+ end if attributes
49
+ yield self if block_given?
50
+ end
51
+
52
+
53
+ def file_name
54
+ "#{uuid}.#{EXTENSION}"
55
+ end
56
+
57
+
58
+ def notebook_path
59
+ @notebook_path ||= './'
60
+ end
61
+
62
+
63
+ def file_name_with_path
64
+ File.join(notebook_path, file_name)
65
+ end
66
+
67
+
68
+ def meta_json_file
69
+ File.join(file_name_with_path, META_JSON_FILE_NAME)
70
+ end
71
+
72
+
73
+ def meta_json_hash
74
+ {
75
+ KEY_CREATED_AT => @created_at,
76
+ KEY_TAGS => @tags,
77
+ KEY_TITLE => @title,
78
+ KEY_UPDATED_AT => @updated_at,
79
+ KEY_UUID => @uuid
80
+ }
81
+ end
82
+
83
+
84
+ def meta_json_string
85
+ JSON.pretty_generate(meta_json_hash)
86
+ end
87
+
88
+
89
+ def content_json_file
90
+ File.join(file_name_with_path, CONTENT_JSON_FILE_NAME)
91
+ end
92
+
93
+
94
+ def content_json_hash
95
+ {
96
+ KEY_TITLE => @title,
97
+ KEY_CELLS => @cells
98
+ }
99
+ end
100
+
101
+
102
+ def content_json_string
103
+ JSON.pretty_generate(content_json_hash)
104
+ end
105
+
106
+
107
+ def store
108
+ store_meta_json
109
+ store_content_json
110
+ end
111
+
112
+
113
+ def store_meta_json(store_file = meta_json_file)
114
+ FileUtils.mkdir_p(file_name_with_path)
115
+ File.open(store_file, 'w') do |f|
116
+ f.puts meta_json_string
117
+ end
118
+ self
119
+ end
120
+
121
+
122
+ def store_content_json(store_file = content_json_file)
123
+ FileUtils.mkdir_p(file_name_with_path)
124
+ File.open(store_file, 'w') do |f|
125
+ f.puts content_json_string
126
+ end
127
+ self
128
+ end
129
+
130
+ end
@@ -0,0 +1,83 @@
1
+
2
+ class QuiverToolbox::Notebook
3
+ EXTENSION = 'qvnotebook'
4
+ META_JSON_FILE = 'meta.json'
5
+ JSON_KEY_NAME = 'name'
6
+ JSON_KEY_UUID = 'uuid'
7
+
8
+
9
+ def self.open(notebook_file)
10
+ meta_json_file = File.join(notebook_file, META_JSON_FILE)
11
+ meta_json = JSON.load(File.open(meta_json_file).read)
12
+
13
+ new do |n|
14
+ n.name = meta_json[JSON_KEY_NAME]
15
+ n.uuid = meta_json[JSON_KEY_UUID]
16
+ n.file = notebook_file
17
+ end
18
+ end
19
+
20
+
21
+ attr_accessor :name, :uuid, :store_path, :file
22
+ def initialize(attributes = nil)
23
+ attributes.each do |k, v|
24
+ instance_variable_set("@#{k}", v)
25
+ end if attributes
26
+ yield self if block_given?
27
+ end
28
+
29
+
30
+ def uuid
31
+ @uuid ||= QuiverToolbox::Util.generate_uuid
32
+ end
33
+
34
+
35
+ def store_path
36
+ @store_path ||= './'
37
+ end
38
+
39
+
40
+ def file
41
+ @file ||= "#{uuid}.#{EXTENSION}"
42
+ end
43
+
44
+
45
+ def file_with_path
46
+ @file_with_path ||= File.join("#{store_path}", file)
47
+ end
48
+
49
+
50
+ def meta_json_file
51
+ @meta_json_file ||= File.join(file_with_path, "meta.json")
52
+ end
53
+
54
+
55
+ def meta_json_hash
56
+ {
57
+ 'name' => @name,
58
+ 'uuid' => @uuid
59
+ }
60
+ end
61
+
62
+
63
+ def meta_json_string
64
+ JSON.pretty_generate(meta_json_hash)
65
+ end
66
+
67
+
68
+ def store
69
+ FileUtils.mkdir_p(file_with_path)
70
+ File.open(meta_json_file, 'w') do |f|
71
+ f.puts meta_json_string
72
+ end
73
+ self
74
+ end
75
+
76
+
77
+ def build_note(note_hash)
78
+ note = QuiverToolbox::Note.new(note_hash)
79
+ note.notebook_path = file_with_path
80
+ note
81
+ end
82
+
83
+ end
@@ -0,0 +1,12 @@
1
+
2
+ require 'securerandom'
3
+
4
+ module QuiverToolbox::Util
5
+ def self.generate_uuid
6
+ SecureRandom.uuid
7
+ end
8
+
9
+ def self.now_unixtime
10
+ Time.now.to_i
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module QuiverToolbox
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,12 @@
1
+
2
+ require 'json'
3
+
4
+ module QuiverToolbox
5
+ end
6
+
7
+ require "quiver_toolbox/version"
8
+ require "quiver_toolbox/notebook"
9
+ require "quiver_toolbox/util"
10
+ require "quiver_toolbox/api"
11
+ require "quiver_toolbox/note"
12
+ require "quiver_toolbox/cli"
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'quiver_toolbox/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "quiver_toolbox"
8
+ spec.version = QuiverToolbox::VERSION
9
+ spec.authors = ["masainox"]
10
+ spec.email = ["masainox@gmail.com"]
11
+
12
+ spec.summary = %q{QuiverToolbox is utility tools for Quiver.}
13
+ spec.description = %q{QuiverToolbox is utility tools for Quiver.}
14
+ spec.homepage = "https://github.com/masainox/quiver_toolbox"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ #spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.12"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_development_dependency "rspec", "~> 3.0"
33
+ spec.add_development_dependency "simplecov", "~> 0.14.1"
34
+ spec.add_development_dependency "timecop", "~> 0.9.1"
35
+
36
+ spec.add_dependency "thor", "~> 0.19.4"
37
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: quiver_toolbox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - masainox
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-07-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.14.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: timecop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.9.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.9.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: thor
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.19.4
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.19.4
97
+ description: QuiverToolbox is utility tools for Quiver.
98
+ email:
99
+ - masainox@gmail.com
100
+ executables:
101
+ - quiver-note
102
+ - quiver-notebook
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - ".rspec"
108
+ - ".travis.yml"
109
+ - Gemfile
110
+ - LICENSE.txt
111
+ - README.md
112
+ - Rakefile
113
+ - bin/console
114
+ - bin/setup
115
+ - exe/quiver-note
116
+ - exe/quiver-notebook
117
+ - lib/quiver_toolbox.rb
118
+ - lib/quiver_toolbox/api.rb
119
+ - lib/quiver_toolbox/cli.rb
120
+ - lib/quiver_toolbox/cli/note.rb
121
+ - lib/quiver_toolbox/cli/notebook.rb
122
+ - lib/quiver_toolbox/note.rb
123
+ - lib/quiver_toolbox/notebook.rb
124
+ - lib/quiver_toolbox/util.rb
125
+ - lib/quiver_toolbox/version.rb
126
+ - quiver_toolbox.gemspec
127
+ homepage: https://github.com/masainox/quiver_toolbox
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.6.4
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: QuiverToolbox is utility tools for Quiver.
151
+ test_files: []