devlogs 0.2.0 → 0.3.1
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/Gemfile.lock +1 -1
- data/Makefile +16 -0
- data/lib/devlogs/cli.rb +21 -0
- data/lib/devlogs/editor.rb +3 -1
- data/lib/devlogs/executable.rb +23 -0
- data/lib/devlogs/pager.rb +11 -0
- data/lib/devlogs/prompt_utils.rb +25 -0
- data/lib/devlogs/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2023b8563770781f9708368975e70b713ec937df3331461096841e4f0fbd03a3
|
4
|
+
data.tar.gz: b1e7b12bac7c07aede0fa9dc8e8daca29db668e256c7a73067bc1f56993cad58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88c3a1909b19c35619abcaabd5815843ccb334362f2a1d5a8be7efb9f82fc64be9c43f51a1b0c76be012ef043b4a1b66bc0a4643ca2cb248ccafb3ee8a4b9fb3
|
7
|
+
data.tar.gz: 925757b3d644479dc402f2c17a762a349a9eb8b5dda7a75ecb88ec71e9712933b1fd223d239164ce4a24b8e0864040ad51c1a5f78ccce42535b1599f3b5ebfd3
|
data/Gemfile.lock
CHANGED
data/Makefile
ADDED
data/lib/devlogs/cli.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require_relative "version"
|
4
4
|
require_relative "repository"
|
5
5
|
require_relative "editor"
|
6
|
+
require_relative "pager"
|
7
|
+
require_relative "prompt_utils"
|
6
8
|
require "thor"
|
7
9
|
|
8
10
|
module Devlogs
|
@@ -10,6 +12,8 @@ module Devlogs
|
|
10
12
|
# The CLI devlogs CLI
|
11
13
|
#
|
12
14
|
class CLI < Thor
|
15
|
+
include PromptUtils
|
16
|
+
|
13
17
|
package_name "devlogs"
|
14
18
|
|
15
19
|
# Returns exit with non zero status when an exception occurs
|
@@ -68,6 +72,23 @@ module Devlogs
|
|
68
72
|
repo.sync
|
69
73
|
end
|
70
74
|
|
75
|
+
#
|
76
|
+
# Lists repository logs
|
77
|
+
#
|
78
|
+
desc "ls", "Lists the repository logs and allows you to select"
|
79
|
+
def ls
|
80
|
+
entries = repo.ls
|
81
|
+
|
82
|
+
# Use the file names as visible keys for the prompt
|
83
|
+
entry_names = entries.map { |e| File.basename(e) }
|
84
|
+
|
85
|
+
# Build the TTY:Prompt
|
86
|
+
result = build_select_prompt(data: entry_names, text: "Select a log entry...")
|
87
|
+
|
88
|
+
# Open in paging program
|
89
|
+
Pager.open(entries[result])
|
90
|
+
end
|
91
|
+
|
71
92
|
private
|
72
93
|
|
73
94
|
# Helper method for repository loading
|
data/lib/devlogs/editor.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Executable
|
4
|
+
def initialize
|
5
|
+
raise NotImplementedError, "Abstract class"
|
6
|
+
end
|
7
|
+
|
8
|
+
# Opens the file contained at the path
|
9
|
+
def open(path)
|
10
|
+
command = "#{@program} #{path}"
|
11
|
+
|
12
|
+
system command
|
13
|
+
end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# Opens the file at +path+ using system editor
|
17
|
+
def open(path)
|
18
|
+
session = new
|
19
|
+
|
20
|
+
session.open(path)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tty-prompt"
|
4
|
+
|
5
|
+
#
|
6
|
+
# Utility module for tty-prompt library
|
7
|
+
#
|
8
|
+
module PromptUtils
|
9
|
+
#
|
10
|
+
# Builds a basic select prompt using the provided data
|
11
|
+
#
|
12
|
+
# @param data [Array<String>]
|
13
|
+
#
|
14
|
+
# @returns String
|
15
|
+
#
|
16
|
+
def build_select_prompt(data:, text:)
|
17
|
+
ttyprompt = TTY::Prompt.new
|
18
|
+
|
19
|
+
ttyprompt.select(text) do |menu|
|
20
|
+
data.each_with_index do |d, index|
|
21
|
+
menu.choice d, index
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/devlogs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devlogs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aquaflamingo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rsync
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- Gemfile
|
87
87
|
- Gemfile.lock
|
88
88
|
- LICENSE.txt
|
89
|
+
- Makefile
|
89
90
|
- README.md
|
90
91
|
- Rakefile
|
91
92
|
- bin/console
|
@@ -96,6 +97,9 @@ files:
|
|
96
97
|
- lib/devlogs.rb
|
97
98
|
- lib/devlogs/cli.rb
|
98
99
|
- lib/devlogs/editor.rb
|
100
|
+
- lib/devlogs/executable.rb
|
101
|
+
- lib/devlogs/pager.rb
|
102
|
+
- lib/devlogs/prompt_utils.rb
|
99
103
|
- lib/devlogs/repository.rb
|
100
104
|
- lib/devlogs/version.rb
|
101
105
|
homepage: http://github.com/aquaflamingo/devlogs
|