agen 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fff6346fa930fe70a1f586b9bb6d0441f3cce432e799f11722eb61da51fc6a4
4
- data.tar.gz: ccb5265d8550cfb15d152d8a1044aefee4596199571e218c6b9fa12117e3d8de
3
+ metadata.gz: ed987efd2447a05d6ae754c1213294c75b83076223b8a86ba19f920c5dc8f9a6
4
+ data.tar.gz: 90e0549611cc1a2849100ff5659ae4cbc4607a4492b9d8d0f438265baff8a496
5
5
  SHA512:
6
- metadata.gz: 607ad6a1cc1c7dd89bead3464dd0b0fa047c9eace831aaa26c0d4bc779b14973a26e45690636486885de4cdbdfc707a546ec7019a8ef927a3fa5860d8cf65fe7
7
- data.tar.gz: 9c4bf033685b91a936892f3a761943b0584903e8306d545d7fd0ce3ad72d060255e2bd76c4de675456fbb30e0274431a7e0905d7fc7177cd7a8e70dd89321ba1
6
+ metadata.gz: 21298d135a781bcc0b86417fb651371058103fb3004941686db63311464ab19d6c17dab56fa5dba24eff32cb2a86b21a745f6e7e1abfc9ce2293d20b692cc471
7
+ data.tar.gz: 706f73381f921ac29b7a3ca858040b4d8bfe253829824b3b653a28e5d7d45a11f5b44b9b3ff32d5d00469c072823004e9431548513503a415666bc1a5c29116a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  ## [Released]
2
2
 
3
+ ## [0.3.2] - 2021-06-26
4
+ - Adds ability to ignore commands forever.
5
+
3
6
  ## [0.3.1] - 2021-06-17
4
7
  - Adds support for bash shell.
5
8
  - Adds ability to pass custom rcfile and histfile options.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- agen (0.3.1)
4
+ agen (0.3.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -25,6 +25,9 @@ Usage: agen [options]
25
25
  Right now, this will only work with `zsh` or `bash`, but you can specify unique shell config files using the `-r` and `-h` options (though there is no guarantee that your history file will be read properly). By default, agen reads from `.zsh_history` and
26
26
  writes to `.zshrc`.
27
27
 
28
+ When editing aliases interactively (which is the default), any commands that are
29
+ ignored (via the `i` command) will be stored in the ~/.agen configuration file.
30
+
28
31
  ## Development
29
32
 
30
33
  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,10 +40,10 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/Jonath
37
40
 
38
41
  ## Roadmap
39
42
 
40
- * CLI will let you "ignore" commands you don't want to alias, forever.
41
43
  * CLI will raise user friendly errors if you specify shell configuration files that don't exist.
42
44
  * CLI will let you specify "meta" vs "full" commands.
43
45
  - Full command would be `git checkout branch-name`, meta command would be `git checkout`.
46
+ * Update video in README to reflect `i` command.
44
47
 
45
48
  ## License
46
49
 
data/lib/agen/finder.rb CHANGED
@@ -5,8 +5,9 @@ module Agen
5
5
  LIMIT = 5
6
6
  MIN_CHARS = 6
7
7
 
8
- def initialize(histfile)
8
+ def initialize(histfile, config_file = Runner::CONFIG_FILE)
9
9
  @histfile = histfile
10
+ @config_file = config_file
10
11
  end
11
12
 
12
13
  def commands(limit: LIMIT, min_chars: MIN_CHARS)
@@ -21,11 +22,22 @@ module Agen
21
22
  .to_h
22
23
  .keys
23
24
  .select { |cmd| cmd.length >= min_chars }
25
+ .select { |cmd| !ignored?(cmd) }
24
26
  .first(limit)
25
27
  end
26
28
 
27
29
  private
28
30
 
31
+ attr_reader :config_file
32
+
33
+ def ignored?(cmd)
34
+ File.readlines(config_file).detect do |line|
35
+ line.delete("\n") == cmd
36
+ end
37
+ rescue Errno::ENOENT
38
+ # User hasn't ignored anything yet, so doesn't have a config file
39
+ end
40
+
29
41
  def lines
30
42
  File.readlines(@histfile).reverse
31
43
  end
data/lib/agen/runner.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Agen
4
4
  class Runner
5
+ CONFIG_FILE = "#{Dir.home}/.agen"
5
6
  DEFAULT_HISTFILE = ZshOptions::HISTFILE
6
7
  DEFAULT_RCFILE = ZshOptions::RCFILE
7
8
  DEFAULT_NUMBER = 5
@@ -12,12 +13,14 @@ module Agen
12
13
  histfile: DEFAULT_HISTFILE,
13
14
  rcfile: DEFAULT_RCFILE,
14
15
  number: DEFAULT_NUMBER,
15
- auto: false
16
+ auto: false,
17
+ config_file: CONFIG_FILE
16
18
  )
17
19
  @histfile = histfile
18
20
  @rcfile = rcfile
19
21
  @number = number
20
22
  @auto = auto
23
+ @config_file = config_file
21
24
  end
22
25
 
23
26
  def run
@@ -40,7 +43,7 @@ module Agen
40
43
 
41
44
  private
42
45
 
43
- attr_reader :auto, :builder
46
+ attr_reader :auto, :builder, :config_file
44
47
 
45
48
  def write_auto(file, full_alias)
46
49
  puts full_alias
@@ -49,13 +52,15 @@ module Agen
49
52
 
50
53
  def write_interactive(file, aliaz)
51
54
  puts "Proposed alias: #{aliaz[:full_alias]}"
52
- print "Accept? [n to reject, m to modify alias, any other key to accept]: "
55
+ print "Accept? [n to reject, m to modify alias, i to ignore forever, any other key to accept]: "
53
56
  response = gets.chomp
54
57
  case response
55
58
  when "n"
56
59
  puts "Alias skipped"
57
60
  when "m"
58
61
  modify_alias(file, aliaz)
62
+ when "i"
63
+ ignore_alias(aliaz)
59
64
  else
60
65
  file.puts(aliaz[:full_alias])
61
66
  puts "Alias written"
@@ -64,6 +69,12 @@ module Agen
64
69
  puts
65
70
  end
66
71
 
72
+ def ignore_alias(aliaz)
73
+ command = aliaz[:command]
74
+ File.open(config_file, "a") { |f| f.puts(command) }
75
+ puts "Ignoring command '#{command}' forever"
76
+ end
77
+
67
78
  def modify_alias(file, aliaz)
68
79
  print "Enter new alias [replacing #{aliaz[:alias]}]: "
69
80
  replacement = gets.chomp
data/lib/agen/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Agen
4
- VERSION = "0.3.1"
4
+ VERSION = "0.3.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Thom
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-18 00:00:00.000000000 Z
11
+ date: 2021-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake