zoi 0.1.2 → 0.1.5
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 +4 -4
- data/.github/workflows/test.yml +3 -1
- data/.rubocop.yml +2 -0
- data/CHANGELOG.adoc +28 -1
- data/Gemfile +6 -4
- data/README.adoc +24 -7
- data/Rakefile +11 -4
- data/exe/zoi +4 -2
- data/lib/zoi/cli.rb +52 -14
- data/lib/zoi/version.rb +1 -1
- data/lib/zoi.rb +2 -2
- data/zoi.gemspec +14 -14
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c66fdddee8d9cf4c04ae744033d4bd5d50993bfde2bbbdd1875991243afe99b
|
4
|
+
data.tar.gz: bc77049d0e91608bdea93c0455a5cbcca4b8030ba4a945bf5f05cc979e58897c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aeeb78165262b8cb11cae553007172d6c8baa1066b461a5e7683321a4f26e758270825375235ae238af0af8d09c1c754fbfbcb2ead5d406eb1f15ad1f7ee3061
|
7
|
+
data.tar.gz: 935fdfd8dd33edca57db92e93e00c946c61a576c1c1ed27ef4f0aa4f867b12ffe00e75bbc17fda0a75dcd4e86849c0acd8d5e9dc582a62aa9b92e91225a61e7d
|
data/.github/workflows/test.yml
CHANGED
data/.rubocop.yml
ADDED
data/CHANGELOG.adoc
CHANGED
@@ -1,4 +1,31 @@
|
|
1
|
-
== 0.1.
|
1
|
+
== 0.1.5 (April 12, 2022)
|
2
|
+
|
3
|
+
=== Enhancements
|
4
|
+
* Add `version` command
|
5
|
+
|
6
|
+
== 0.1.4 (January 6, 2022)
|
7
|
+
|
8
|
+
=== Enhancements
|
9
|
+
* Add a configuration file, __~/.zoirc.json__ https://github.com/9sako6/zoi/pull/17[#17]
|
10
|
+
** You can optionally save the settings used by zoi to a configuration file, __~/.zoirc.json__. +
|
11
|
+
The type of editor used by zoi can be specified in the __~/.zoirc.json__ file. +
|
12
|
+
The following is the example of the __~/.zoirc.json__ file.
|
13
|
+
+
|
14
|
+
[source,json]
|
15
|
+
----
|
16
|
+
{
|
17
|
+
"editor": "code"
|
18
|
+
}
|
19
|
+
----
|
20
|
+
+
|
21
|
+
In that case, there is no need to pass the `EDITOR` environment variable at runtime.
|
22
|
+
|
23
|
+
== 0.1.3 (September 15, 2021)
|
24
|
+
|
25
|
+
=== Enhancements
|
26
|
+
* Add `memo` command https://github.com/9sako6/zoi/pull/11[#11]
|
27
|
+
|
28
|
+
== 0.1.2 (September 11, 2021)
|
2
29
|
|
3
30
|
=== Enhancements
|
4
31
|
* Add `root` command https://github.com/9sako6/zoi/pull/8[#8]
|
data/Gemfile
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
gemspec
|
6
6
|
|
7
|
-
gem
|
7
|
+
gem "thor"
|
8
8
|
|
9
9
|
group :development do
|
10
|
-
gem
|
10
|
+
gem "rake", "~> 12.0"
|
11
|
+
gem "rubocop-shopify", require: false
|
11
12
|
end
|
12
13
|
|
13
14
|
group :test do
|
14
|
-
gem
|
15
|
+
gem "mocha"
|
16
|
+
gem "timecop"
|
15
17
|
end
|
data/README.adoc
CHANGED
@@ -18,6 +18,7 @@ zoi create ruby/foo.rb
|
|
18
18
|
zoi create <filepath>
|
19
19
|
zoi open <filepath>
|
20
20
|
zoi list [-d]
|
21
|
+
zoi memo
|
21
22
|
zoi root
|
22
23
|
zoi help
|
23
24
|
|
@@ -36,6 +37,12 @@ list::
|
|
36
37
|
List all files under zoi root directory. +
|
37
38
|
With '-d' option, list all directories under zoi root directory.
|
38
39
|
|
40
|
+
memo::
|
41
|
+
Create today's memo file and open the file with the editor specified by `$EDITOR`. +
|
42
|
+
The file name is `YYYY-MM-DD.md` +
|
43
|
+
For example: `EDITOR=code zoi open memo/20210101.md` +
|
44
|
+
If it's September 9th in 2021, a new file ~/zoi/2021-09-09.md is created and is opend with the VSCode editor.
|
45
|
+
|
39
46
|
root::
|
40
47
|
Print zoi root directory.
|
41
48
|
|
@@ -46,14 +53,24 @@ help::
|
|
46
53
|
|
47
54
|
gem install zoi
|
48
55
|
|
49
|
-
==
|
56
|
+
== CONFIGURATION
|
50
57
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
58
|
+
You can optionally save the settings used by zoi to a configuration file, __~/.zoirc.json__.
|
59
|
+
|
60
|
+
The type of editor used by zoi can be specified in the __~/.zoirc.json__ file.
|
61
|
+
|
62
|
+
The following is the example of the __~/.zoirc.json__ file.
|
63
|
+
|
64
|
+
[source,json]
|
65
|
+
----
|
66
|
+
{
|
67
|
+
"editor": "code"
|
68
|
+
}
|
69
|
+
----
|
70
|
+
|
71
|
+
In that case, there is no need to pass the `EDITOR` environment variable at runtime.
|
72
|
+
|
73
|
+
== EXAMPLES
|
57
74
|
|
58
75
|
* Change directories
|
59
76
|
+
|
data/Rakefile
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rake/testtask"
|
5
|
+
require "rubocop/rake_task"
|
5
6
|
|
6
|
-
|
7
|
+
task default: [:"rubocop:auto_correct", :test]
|
7
8
|
|
8
|
-
|
9
|
+
Rake::TestTask.new do |test|
|
10
|
+
test.test_files = FileList["./test/*.rb"]
|
11
|
+
# Display detail information.
|
12
|
+
test.verbose = true
|
13
|
+
end
|
14
|
+
|
15
|
+
RuboCop::RakeTask.new
|
data/exe/zoi
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require
|
4
|
+
require "zoi"
|
5
5
|
|
6
|
-
args = File.pipe?(
|
6
|
+
args = File.pipe?($stdin) ? ARGV + $stdin.gets.chomp.split : ARGV
|
7
|
+
|
8
|
+
ENV["THOR_SILENCE_DEPRECATION"] = "true"
|
7
9
|
|
8
10
|
Zoi::CLI.start(args)
|
data/lib/zoi/cli.rb
CHANGED
@@ -1,23 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
3
|
+
require "date"
|
4
|
+
require "fileutils"
|
5
|
+
require "find"
|
6
|
+
require "json"
|
7
|
+
require "open3"
|
8
|
+
require "pathname"
|
9
|
+
require "thor"
|
8
10
|
|
9
11
|
module Zoi
|
10
|
-
ROOT_DIR_NAME =
|
12
|
+
ROOT_DIR_NAME = "zoi"
|
13
|
+
CONFIG_FILE_NAME = ".zoirc.json"
|
11
14
|
|
12
15
|
class CLI < Thor
|
13
|
-
desc
|
16
|
+
desc "version", "Show version."
|
17
|
+
def version
|
18
|
+
puts Zoi::VERSION
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "create <filepath>", "Create a new file under zoi root directory."
|
14
22
|
def create(file_path)
|
15
23
|
return if file_path.nil?
|
16
24
|
|
17
25
|
puts create_file(file_path)
|
18
26
|
end
|
19
27
|
|
20
|
-
desc
|
28
|
+
desc "open <filepath>", <<~DESCRIPTION
|
29
|
+
Execute `create` command and open the file with the editor specified by $EDITOR.
|
30
|
+
For example: `EDITOR=code zoi open foobar.rb`
|
31
|
+
DESCRIPTION
|
21
32
|
def open(file_path)
|
22
33
|
return if editor.nil? || file_path.nil?
|
23
34
|
|
@@ -28,26 +39,41 @@ module Zoi
|
|
28
39
|
open_file(created_file_path)
|
29
40
|
end
|
30
41
|
|
31
|
-
desc
|
32
|
-
option
|
42
|
+
desc "list [-d]", "List all files under zoi root directory."
|
43
|
+
option "d", type: :boolean
|
33
44
|
def list
|
34
|
-
only_directory = options[
|
45
|
+
only_directory = options["d"]
|
35
46
|
|
36
47
|
puts(Find.find(root_path).select { |path| only_directory ? File.directory?(path) : File.file?(path) })
|
37
48
|
end
|
38
49
|
|
39
|
-
desc
|
50
|
+
desc "memo", "Create today's memo file and open the file with the editor specified by `$EDITOR`."
|
51
|
+
def memo
|
52
|
+
return if editor.nil?
|
53
|
+
|
54
|
+
created_file_path = create_file("#{Date.today}.md")
|
55
|
+
|
56
|
+
puts created_file_path
|
57
|
+
|
58
|
+
open_file(created_file_path)
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "root", "Print zoi root directory."
|
40
62
|
def root_command
|
41
63
|
puts root_path
|
42
64
|
end
|
43
65
|
|
44
66
|
# NOTE: Resolve the following error.
|
45
67
|
# `"root" is a Thor reserved word and cannot be defined as command`
|
46
|
-
map
|
68
|
+
map "root" => "root_command"
|
47
69
|
|
48
70
|
no_tasks do
|
49
71
|
def editor
|
50
|
-
|
72
|
+
if File.exist?(config_file_path)
|
73
|
+
load_envs_from_config_file
|
74
|
+
end
|
75
|
+
|
76
|
+
ENV["EDITOR"]
|
51
77
|
end
|
52
78
|
|
53
79
|
def create_file(file_path)
|
@@ -69,6 +95,18 @@ module Zoi
|
|
69
95
|
def root_path
|
70
96
|
@root_path ||= Pathname(Dir.home).join(ROOT_DIR_NAME).to_s
|
71
97
|
end
|
98
|
+
|
99
|
+
def config_file_path
|
100
|
+
@config_file_path ||= Pathname(Dir.home).join(CONFIG_FILE_NAME).to_s
|
101
|
+
end
|
102
|
+
|
103
|
+
def config_json
|
104
|
+
@config_json ||= JSON.parse(File.open(config_file_path, "r", &:read))
|
105
|
+
end
|
106
|
+
|
107
|
+
def load_envs_from_config_file
|
108
|
+
ENV["EDITOR"] = config_json["editor"] unless ENV["EDITOR"]
|
109
|
+
end
|
72
110
|
end
|
73
111
|
end
|
74
112
|
end
|
data/lib/zoi/version.rb
CHANGED
data/lib/zoi.rb
CHANGED
data/zoi.gemspec
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
3
|
+
require_relative "lib/zoi/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
6
|
+
spec.name = "zoi"
|
7
7
|
spec.version = Zoi::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
spec.email = [
|
8
|
+
spec.authors = ["9sako6"]
|
9
|
+
spec.email = ["31821663+9sako6@users.noreply.github.com"]
|
10
10
|
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
spec.homepage =
|
14
|
-
spec.required_ruby_version = Gem::Requirement.new(
|
11
|
+
spec.summary = "management snippets"
|
12
|
+
spec.description = "management snippets"
|
13
|
+
spec.homepage = "https://github.com/9sako6/zoi"
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
15
15
|
|
16
|
-
spec.metadata[
|
17
|
-
spec.metadata[
|
18
|
-
spec.metadata[
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/9sako6/zoi"
|
18
|
+
spec.metadata["changelog_uri"] = "https://github.com/9sako6/zoi"
|
19
19
|
|
20
20
|
# Specify which files should be added to the gem when it is released.
|
21
21
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
22
22
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
23
|
-
|
23
|
+
%x(git ls-files -z).split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
24
|
end
|
25
|
-
spec.bindir =
|
25
|
+
spec.bindir = "exe"
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
|
-
spec.require_paths = [
|
27
|
+
spec.require_paths = ["lib"]
|
28
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zoi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 9sako6
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: management snippets
|
14
14
|
email:
|
@@ -20,6 +20,7 @@ extra_rdoc_files: []
|
|
20
20
|
files:
|
21
21
|
- ".github/workflows/test.yml"
|
22
22
|
- ".gitignore"
|
23
|
+
- ".rubocop.yml"
|
23
24
|
- CHANGELOG.adoc
|
24
25
|
- Gemfile
|
25
26
|
- LICENSE
|