skillme 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56b29a9df63a256900713335803df0035a290d77bb7c19c2a26c48b4365708ba
4
- data.tar.gz: abee98c8703a0a633c36ad0e752c5f6d288f6c0588e13ebe582d6ac133648849
3
+ metadata.gz: 35946eed35490e4da444050875d432a2232615342ad3b377634f0a81634a6f43
4
+ data.tar.gz: d1a162023793a9ff39d0a052d2903b062046eacd77e7af2df05dcf078eb6c97e
5
5
  SHA512:
6
- metadata.gz: 0c0bae8b473c873ccac48f3c41a84acf64c90e9caa4d6390252176787cbb8d3a639ee086d509341e4a5cb7b3a56c7f7cef0a8742e46cfce75f3c1ae6f952ea6e
7
- data.tar.gz: 763765e7c24758b1f767a332512ecdb28d0af5d9a504f1c601a81dabcd560f2771f587af7fc0e95e2ec6c8ed4be46d9d80c0770acc300c0434c7f179f54cbd71
6
+ metadata.gz: 1f653de4b4bb5ec0cda7ce8ebb9714a8c0a36bb3c838785b236c1a1da13d9ec3eb39e77166224ac04e11a3e1b5f7b268eeee8ec2d4de2e98a228666b907447aa
7
+ data.tar.gz: d5b3888aaf80888ae3dc93a38c8c01b1a79157cc8e5f41995d9e72753e7a3e58996068045301cab8cd3a61d48f52f18f77f051671ff11e1b6a144dd744982901
@@ -0,0 +1,11 @@
1
+ Gem.pre_uninstall do |uninstaller|
2
+ next unless uninstaller.spec.name == "skillme"
3
+
4
+ skills_dir = File.expand_path("~/.claude/skills")
5
+ if Dir.exist?(skills_dir) && !(Dir.entries(skills_dir) - %w[. ..]).empty?
6
+ installed = (Dir.entries(skills_dir) - %w[. ..]).join(", ")
7
+ puts "Removing installed skills: #{installed}"
8
+ FileUtils.rm_rf(skills_dir)
9
+ puts "Cleaned up #{skills_dir}"
10
+ end
11
+ end
data/lib/skillme/deps.rb CHANGED
@@ -22,6 +22,17 @@ module Skillme
22
22
  system("command -v #{cmd} > /dev/null 2>&1")
23
23
  end
24
24
 
25
+ def resolve!(dependencies)
26
+ return unless dependencies
27
+
28
+ if dependencies['npm']
29
+ ensure_node!
30
+ dependencies['npm'].each { |pkg| ensure_npm_package!(pkg) }
31
+ end
32
+ end
33
+
34
+ private
35
+
25
36
  def ensure_node!
26
37
  return if command_exists?('node') && command_exists?('npm')
27
38
 
@@ -49,12 +60,9 @@ module Skillme
49
60
  end
50
61
 
51
62
  def ensure_npm_package!(package)
52
- # Check if the package binary exists (e.g. gws for @googleworkspace/cli)
53
- bin_name = package.split('/').last.sub(/^cli$/, 'gws')
63
+ bin_name = package.split('/').last.sub(/^cli$/, package.split('/').first.tr('@', ''))
54
64
  return if command_exists?(bin_name)
55
65
 
56
- ensure_node!
57
-
58
66
  puts "Installing #{package}..."
59
67
  unless system("npm install -g #{package} > /dev/null 2>&1")
60
68
  abort "Failed to install #{package}. Try manually: npm install -g #{package}"
@@ -63,52 +71,21 @@ module Skillme
63
71
  puts "#{package} installed successfully."
64
72
  end
65
73
 
66
- def resolve!(dependencies)
67
- return unless dependencies
68
-
69
- if dependencies['npm']
70
- dependencies['npm'].each do |package|
71
- ensure_npm_package!(package)
72
- end
73
- end
74
-
75
- ensure_gws_auth! if dependencies.dig('npm')&.include?('@googleworkspace/cli')
76
- end
77
-
78
- def ensure_gws_auth!
79
- # Check if gws is already authenticated
80
- return if system("gws auth export > /dev/null 2>&1")
81
-
82
- puts "Setting up Google authentication (opens browser)..."
83
- system("gws auth setup")
84
- end
85
-
86
- private
87
-
88
74
  def install_node_macos
89
75
  unless command_exists?('brew')
90
76
  puts "Homebrew not found. Installing Homebrew..."
91
77
  system('/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"')
92
- unless command_exists?('brew')
93
- abort "Failed to install Homebrew. Please install Node.js manually."
94
- end
78
+ abort "Failed to install Homebrew. Please install Node.js manually." unless command_exists?('brew')
95
79
  end
96
-
97
80
  system("brew install node")
98
81
  end
99
82
 
100
83
  def install_node_debian
101
- system(<<~SH)
102
- curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - > /dev/null 2>&1 && \
103
- sudo apt-get install -y nodejs > /dev/null 2>&1
104
- SH
84
+ system('curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - > /dev/null 2>&1 && sudo apt-get install -y nodejs > /dev/null 2>&1')
105
85
  end
106
86
 
107
87
  def install_node_fedora
108
- system(<<~SH)
109
- curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - > /dev/null 2>&1 && \
110
- sudo yum install -y nodejs > /dev/null 2>&1
111
- SH
88
+ system('curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - > /dev/null 2>&1 && sudo yum install -y nodejs > /dev/null 2>&1')
112
89
  end
113
90
 
114
91
  def install_node_arch
@@ -1,3 +1,3 @@
1
1
  module Skillme
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skillme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Alves
@@ -21,6 +21,7 @@ files:
21
21
  - LICENSE
22
22
  - README.md
23
23
  - bin/skillme
24
+ - lib/rubygems_plugin.rb
24
25
  - lib/skillme/cli.rb
25
26
  - lib/skillme/deps.rb
26
27
  - lib/skillme/version.rb