boilercode 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63273b5a56cff03c055f83e22361eeef8a1a3817799f3c4f385000855d73f7d1
4
- data.tar.gz: f5161e7e999b84a56ffd92bf62394e0ab7410522bf5eb590b57879a720111baf
3
+ metadata.gz: 5062141cf6e6f9e851bc5ca5eff41250109b226f4c7e069508b0c48d061b1623
4
+ data.tar.gz: 3466097ea9ff6feeac8cea0b99602e649617a615628582493f9dc84e938d529e
5
5
  SHA512:
6
- metadata.gz: 59c22e0598cba83a472b16463d9ca6109b47d5c613aa72ee62a5fbab39058a93e161c92ac1f7c4fb97a43f93d0861f59397af9710b1806312ff186e8a5c1f7bf
7
- data.tar.gz: f05f3aee11402aca7db91b3701397079b4f0c1929c870805ddfecc3b1c5eb6f8c0005f9fc3aa6e89b3fb9536eae1c761dabe83f9a8b3137dc05d3d73eaea6607
6
+ metadata.gz: c70e8d8629d0a56d39029b3bf85166bca7bfa3cea831f26aa62275bbb523e049bcd3f35fa89d3e2abcf5273da675c8d04d6f50690cc20840b88f8d0d9c4068b5
7
+ data.tar.gz: 065a4e1155befae11c77925281889c473c869d2b8a7d7175e40883b72a525905e2eeba728452962d3031ea23c6c54c9e13d32e073d7b82b78bfc504c0c46580e
data/.standard.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  # For available configuration options, see:
2
2
  # https://github.com/testdouble/standard
3
- ruby_version: 3.2.1
3
+ ruby_version: 3.2.2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2023-04-06
3
+ ## [0.1.0] - 2023-05-28
4
4
 
5
5
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- boilercode (0.1.0)
4
+ boilercode (0.1.1)
5
5
  clipboard
6
6
  httparty
7
7
  pastel
@@ -14,7 +14,7 @@ PATH
14
14
  GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
- addressable (2.8.3)
17
+ addressable (2.8.4)
18
18
  public_suffix (>= 2.0.2, < 6.0)
19
19
  ast (2.4.2)
20
20
  byebug (11.1.3)
@@ -31,43 +31,44 @@ GEM
31
31
  kramdown (2.4.0)
32
32
  rexml
33
33
  language_server-protocol (3.17.0.3)
34
+ lint_roller (1.0.0)
34
35
  mini_mime (1.1.2)
35
36
  multi_xml (0.6.0)
36
- parallel (1.22.1)
37
- parser (3.2.2.0)
37
+ parallel (1.23.0)
38
+ parser (3.2.2.1)
38
39
  ast (~> 2.4.1)
39
40
  pastel (0.8.0)
40
41
  tty-color (~> 0.5)
41
42
  public_suffix (5.0.1)
42
43
  rainbow (3.1.1)
43
44
  rake (13.0.6)
44
- regexp_parser (2.7.0)
45
+ regexp_parser (2.8.0)
45
46
  rexml (3.2.5)
46
- rouge (4.1.0)
47
+ rouge (4.1.1)
47
48
  rspec (3.12.0)
48
49
  rspec-core (~> 3.12.0)
49
50
  rspec-expectations (~> 3.12.0)
50
51
  rspec-mocks (~> 3.12.0)
51
- rspec-core (3.12.1)
52
+ rspec-core (3.12.2)
52
53
  rspec-support (~> 3.12.0)
53
- rspec-expectations (3.12.2)
54
+ rspec-expectations (3.12.3)
54
55
  diff-lcs (>= 1.2.0, < 2.0)
55
56
  rspec-support (~> 3.12.0)
56
57
  rspec-mocks (3.12.5)
57
58
  diff-lcs (>= 1.2.0, < 2.0)
58
59
  rspec-support (~> 3.12.0)
59
60
  rspec-support (3.12.0)
60
- rubocop (1.48.1)
61
+ rubocop (1.50.2)
61
62
  json (~> 2.3)
62
63
  parallel (~> 1.10)
63
64
  parser (>= 3.2.0.0)
64
65
  rainbow (>= 2.2.2, < 4.0)
65
66
  regexp_parser (>= 1.8, < 3.0)
66
67
  rexml (>= 3.2.5, < 4.0)
67
- rubocop-ast (>= 1.26.0, < 2.0)
68
+ rubocop-ast (>= 1.28.0, < 2.0)
68
69
  ruby-progressbar (~> 1.7)
69
70
  unicode-display_width (>= 2.4.0, < 3.0)
70
- rubocop-ast (1.28.0)
71
+ rubocop-ast (1.28.1)
71
72
  parser (>= 3.2.1.0)
72
73
  rubocop-performance (1.16.0)
73
74
  rubocop (>= 1.7.0, < 2.0)
@@ -79,16 +80,23 @@ GEM
79
80
  simplecov_json_formatter (~> 0.1)
80
81
  simplecov-html (0.12.3)
81
82
  simplecov_json_formatter (0.1.4)
82
- standard (1.26.0)
83
+ standard (1.28.4)
83
84
  language_server-protocol (~> 3.17.0.2)
84
- rubocop (~> 1.48.1)
85
+ lint_roller (~> 1.0)
86
+ rubocop (~> 1.50.2)
87
+ standard-custom (~> 1.0.0)
88
+ standard-performance (~> 1.0.1)
89
+ standard-custom (1.0.0)
90
+ lint_roller (~> 1.0)
91
+ standard-performance (1.0.1)
92
+ lint_roller (~> 1.0)
85
93
  rubocop-performance (~> 1.16.0)
86
94
  strings (0.2.1)
87
95
  strings-ansi (~> 0.2)
88
96
  unicode-display_width (>= 1.5, < 3.0)
89
97
  unicode_utils (~> 1.4)
90
98
  strings-ansi (0.2.0)
91
- thor (1.2.1)
99
+ thor (1.2.2)
92
100
  tty-color (0.6.0)
93
101
  tty-cursor (0.7.1)
94
102
  tty-link (0.1.1)
@@ -119,9 +127,7 @@ GEM
119
127
  wisper (2.0.1)
120
128
 
121
129
  PLATFORMS
122
- arm64-darwin-21
123
130
  arm64-darwin-22
124
- x86_64-linux
125
131
 
126
132
  DEPENDENCIES
127
133
  boilercode!
@@ -134,4 +140,4 @@ DEPENDENCIES
134
140
  webmock
135
141
 
136
142
  BUNDLED WITH
137
- 2.4.9
143
+ 2.4.13
data/README.md CHANGED
@@ -36,4 +36,4 @@ Everyone interacting in the Boilercode project's codebases, issue trackers, chat
36
36
 
37
37
  ## Copyright
38
38
 
39
- Copyright (c) 2023 Leo Policastro. See [MIT License](LICENSE.txt) for further details.
39
+ Copyright (c) 2023 Leo Policastro. See [MIT License](LICENSE.txt) for further details.
data/boilercode.gemspec CHANGED
@@ -35,6 +35,7 @@ Gem::Specification.new do |spec|
35
35
  # For more information and examples about making a new gem, check out our
36
36
  # guide at: https://bundler.io/guides/creating_gem.html
37
37
 
38
+
38
39
  # Draw various frames and boxes in terminal window.
39
40
  # spec.add_dependency "tty-box", "~> 0.7"
40
41
 
@@ -45,7 +46,7 @@ Gem::Specification.new do |spec|
45
46
  # spec.add_dependency "tty-command", "~> 0.10"
46
47
 
47
48
  # Define, read and write app configurations.
48
- # spec.add_dependency "tty-config"
49
+ # spec.add_dependency "tty-config", "~> 0.4"
49
50
 
50
51
  # Terminal cursor positioning, visibility and text manipulation.
51
52
  # spec.add_dependency "tty-cursor", "~> 0.7"
@@ -63,13 +64,13 @@ Gem::Specification.new do |spec|
63
64
  # spec.add_dependency "tty-font", "~> 0.5"
64
65
 
65
66
  # Hyperlinks in terminal.
66
- spec.add_dependency "tty-link"
67
+ # spec.add_dependency "tty-link", "~> 0.1"
67
68
 
68
69
  # A readable, structured and beautiful logging for the terminal.
69
- spec.add_dependency "tty-logger"
70
+ # spec.add_dependency "tty-logger", "~> 0.6"
70
71
 
71
72
  # Convert a markdown document or text into a terminal friendly output.
72
- spec.add_dependency "tty-markdown"
73
+ # spec.add_dependency "tty-markdown", "~> 0.7"
73
74
 
74
75
  # Parser for command line arguments, keywords and options.
75
76
  # spec.add_dependency "tty-option", "~> 0.1"
@@ -78,22 +79,22 @@ Gem::Specification.new do |spec|
78
79
  # spec.add_dependency "tty-pager", "~> 0.14"
79
80
 
80
81
  # Draw pie charts in your terminal window.
81
- # spec.add_dependency "tty-pie"
82
+ # spec.add_dependency "tty-pie", "~> 0.4"
82
83
 
83
84
  # Detect different operating systems.
84
- # spec.add_dependency "tty-platform"
85
+ # spec.add_dependency "tty-platform", "~> 0.3"
85
86
 
86
87
  # A flexible and extensible progress bar for terminal applications.
87
- # spec.add_dependency "tty-progressbar"
88
+ # spec.add_dependency "tty-progressbar", "~> 0.18"
88
89
 
89
90
  # A beautiful and powerful interactive command line prompt.
90
- spec.add_dependency "tty-prompt"
91
+ # spec.add_dependency "tty-prompt", "~> 0.23"
91
92
 
92
93
  # Terminal screen properties detection.
93
- # spec.add_dependency "tty-screen"
94
+ # spec.add_dependency "tty-screen", "~> 0.8"
94
95
 
95
96
  # A terminal spinner for tasks with non-deterministic time.
96
- # spec.add_dependency "tty-spinner"
97
+ # spec.add_dependency "tty-spinner", "~> 0.9"
97
98
 
98
99
  # A flexible and intuitive table output generator.
99
100
  # spec.add_dependency "tty-table", "~> 0.12"
@@ -103,6 +104,10 @@ Gem::Specification.new do |spec|
103
104
 
104
105
  # Platform independent implementation of Unix which command.
105
106
  # spec.add_dependency "tty-which", "~> 0.4"
107
+ spec.add_dependency "tty-link"
108
+ spec.add_dependency "tty-logger"
109
+ spec.add_dependency "tty-markdown"
110
+ spec.add_dependency "tty-prompt"
106
111
 
107
112
  spec.add_dependency "clipboard"
108
113
  spec.add_dependency "httparty"
data/exe/boilercode CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- lib_path = File.expand_path("../lib", __dir__)
4
+ lib_path = File.expand_path('../lib', __dir__)
5
5
  $:.unshift(lib_path) if !$:.include?(lib_path)
6
- require "boilercode/cli"
6
+ require 'boilercode/cli'
7
7
 
8
- Signal.trap("INT") do
8
+ Signal.trap('INT') do
9
9
  warn("\n#{caller.join("\n")}: interrupted")
10
10
  exit(1)
11
11
  end
@@ -18,6 +18,12 @@ module Boilercode
18
18
  end
19
19
  map %w[--version -v] => :version
20
20
 
21
+ require_relative "commands/dotfiles"
22
+ register Boilercode::Commands::Dotfiles, "dotfiles", "dotfiles [SUBCOMMAND]", "Command description..."
23
+
24
+ require_relative "commands/dotfiles"
25
+ register Boilercode::Commands::Dotfiles, "dotfiles", "dotfiles [SUBCOMMAND]", "Command description..."
26
+
21
27
  require_relative "commands/drive"
22
28
  register Boilercode::Commands::Drive, "drive", "drive [SUBCOMMAND]", "Manage your file uploads"
23
29
 
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../boilercode"
4
+
5
+ module Boilercode
6
+ module Commands
7
+ class Dotfiles
8
+ class Download < Boilercode::Command
9
+ def initialize(options)
10
+ @options = options
11
+ end
12
+
13
+ def execute(input: $stdin, output: $stdout, page: 1)
14
+ res = client.get("/dotfiles?page=#{page}")
15
+ if res.success?
16
+ output.puts handle_search_response(res)
17
+ else
18
+ output.puts pastel.red res.inspect
19
+ end
20
+ end
21
+
22
+ def handle_search_response(res)
23
+ headers = res.headers
24
+ response = parse_json(res)
25
+ Dir.chdir(File.expand_path("~"))
26
+ if response.empty?
27
+ pastel.red "No uploads found, try updating your query."
28
+ elsif prompt.yes?("Do you want to download all dotfiles?")
29
+ download_all(response)
30
+ else
31
+ handle_selecting_dotfiles(response, headers)
32
+ end
33
+ end
34
+
35
+ def download_all(response)
36
+ response.each do |upload|
37
+ download(upload["url"])
38
+ puts pastel.green(upload["url"])
39
+ end
40
+ end
41
+
42
+ def handle_selecting_dotfiles(response, headers)
43
+ dotfiles = prompt.multi_select("Choose your dotfiles:", choices(response, headers))
44
+ # choice = dotfiles.first
45
+ # if choice == "Next Page"
46
+ # return execute(page: headers["Current-Page"].to_i + 1)
47
+ # end
48
+ dotfiles.each do |file|
49
+ upload = response.find { |dotfile| dotfile["filename"] == file }
50
+
51
+ download(upload["url"]) if download_file?
52
+ puts pastel.green(upload["url"])
53
+ end
54
+ end
55
+
56
+ def choices(response, headers)
57
+ choices = response.map { |upload| upload["filename"] }
58
+
59
+ choices << "Next Page" if headers["Total-Pages"].to_i > 1
60
+ choices
61
+ end
62
+
63
+ def download_file?
64
+ ask("Do you want to download the file? (y/n)") == "y"
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ # here
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../boilercode"
4
+
5
+ module Boilercode
6
+ module Commands
7
+ class Dotfiles
8
+ class Find < Boilercode::Command
9
+ def initialize(options)
10
+ @options = options
11
+ end
12
+
13
+ def execute(input: $stdin, output: $stdout)
14
+ look_in_home_directory = prompt.yes?("Search for dotfiles in home directory or specify a directory?")
15
+ directory = if look_in_home_directory
16
+ File.expand_path("~")
17
+ else
18
+ prompt.ask("Please enter the directory to search for dotfiles")
19
+ end
20
+ dotfiles = Dir.glob("#{directory}/.*")
21
+ # remove . and .. from the list of files
22
+ dotfiles = dotfiles.reject { |file| file == "." || file == ".." }
23
+ # remove directories from the list of files
24
+ dotfiles = dotfiles.reject { |file| File.directory?(file) }
25
+
26
+ files_to_upload = prompt.multi_select("Select dotfiles to upload", dotfiles)
27
+ files_to_upload.each do |file|
28
+ file_client(file).upload
29
+ puts pastel.green "Uploaded #{file}"
30
+ end
31
+ output.puts "OK"
32
+ end
33
+
34
+ def file_client(file)
35
+ Boilercode::FileClient.new(file, folder_path: "dotfiles")
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "thor"
4
+
5
+ module Boilercode
6
+ module Commands
7
+ class Dotfiles < Thor
8
+ namespace :dotfiles
9
+
10
+ desc "download", "Download dotfiles to home directory"
11
+ method_option :help, aliases: "-h", type: :boolean,
12
+ desc: "Display usage information"
13
+ def download(*)
14
+ if options[:help]
15
+ invoke :help, ["download"]
16
+ else
17
+ require_relative "dotfiles/download"
18
+ Boilercode::Commands::Dotfiles::Download.new(options).execute
19
+ end
20
+ end
21
+
22
+ desc "find", "Find local dotfiles and upload to dotfiles folder in Boilercode Drive"
23
+ method_option :help, aliases: "-h", type: :boolean,
24
+ desc: "Display usage information"
25
+ def find(*)
26
+ if options[:help]
27
+ invoke :help, ["find"]
28
+ else
29
+ require_relative "dotfiles/find"
30
+ Boilercode::Commands::Dotfiles::Find.new(options).execute
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,3 +1,5 @@
1
+ require "byebug"
2
+
1
3
  class Boilercode::FileClient < Boilercode::Client
2
4
  attr_reader :file_path, :content_type, :file, :token, :config
3
5
  def initialize(file_path = nil, options = {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Boilercode
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boilercode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leo Policastro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-21 00:00:00.000000000 Z
11
+ date: 2023-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-link
@@ -221,6 +221,9 @@ files:
221
221
  - lib/boilercode/commands/bookmarks.rb
222
222
  - lib/boilercode/commands/bookmarks/create.rb
223
223
  - lib/boilercode/commands/bookmarks/search.rb
224
+ - lib/boilercode/commands/dotfiles.rb
225
+ - lib/boilercode/commands/dotfiles/download.rb
226
+ - lib/boilercode/commands/dotfiles/find.rb
224
227
  - lib/boilercode/commands/drive.rb
225
228
  - lib/boilercode/commands/drive/search.rb
226
229
  - lib/boilercode/commands/drive/upload.rb
@@ -231,17 +234,9 @@ files:
231
234
  - lib/boilercode/commands/snippets/search.rb
232
235
  - lib/boilercode/config.rb
233
236
  - lib/boilercode/file_client.rb
234
- - lib/boilercode/templates/.gitkeep
235
- - lib/boilercode/templates/bookmarks/create/.gitkeep
236
- - lib/boilercode/templates/bookmarks/search/.gitkeep
237
- - lib/boilercode/templates/drive/search/.gitkeep
238
- - lib/boilercode/templates/drive/upload/.gitkeep
239
- - lib/boilercode/templates/login/.gitkeep
240
- - lib/boilercode/templates/news/.gitkeep
241
- - lib/boilercode/templates/snippets/create/.gitkeep
242
- - lib/boilercode/templates/snippets/search/.gitkeep
237
+ - lib/boilercode/templates/dotfiles/download/.gitkeep
238
+ - lib/boilercode/templates/dotfiles/find/.gitkeep
243
239
  - lib/boilercode/version.rb
244
- - rename.rb
245
240
  - sig/boilercode.rbs
246
241
  homepage: https://github.com/leopolicastro/boilercode
247
242
  licenses:
@@ -265,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
265
260
  - !ruby/object:Gem::Version
266
261
  version: '0'
267
262
  requirements: []
268
- rubygems_version: 3.4.10
263
+ rubygems_version: 3.4.13
269
264
  signing_key:
270
265
  specification_version: 4
271
266
  summary: BoilerCode CLI
@@ -1 +0,0 @@
1
- #
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/rename.rb DELETED
@@ -1 +0,0 @@
1
- # rename all folde