aka 0.5.4 → 0.5.8

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.
data/.gitignore CHANGED
@@ -3,3 +3,4 @@ results.html
3
3
  pkg
4
4
  html
5
5
  .idea
6
+ *.gem
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aka (0.5.4)
4
+ aka (0.5.8)
5
5
  methadone (~> 1.2.4)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -50,7 +50,7 @@ I really like this app, but I've got other things I want to work on. But there a
50
50
 
51
51
  1. Support for a config file that will let you use a file other than `~/.alias` for your aliases
52
52
  1. Grouping aliases
53
- 1. Aliases sorted alphabetically by default.
53
+ 1. Aliases sorted alphabetically by default. -**DONE!**
54
54
 
55
55
 
56
56
  [David Copeland]:http://www.naildrivin5.com/
data/bin/aka CHANGED
@@ -4,6 +4,7 @@ require 'optparse'
4
4
  require 'methadone'
5
5
  require 'aka'
6
6
  require 'fileutils'
7
+ require 'yaml'
7
8
 
8
9
  class App
9
10
  include Methadone::Main
@@ -11,13 +12,15 @@ class App
11
12
  include Aka
12
13
 
13
14
  main do |aliasString,value|
14
- al = AliasList.new
15
- options.each do |key, value|
16
- debug("#{key} : #{value}")
17
- end
15
+
16
+ al = AliasList.new options["alias-file"]
17
+ #options.each do |key, value|
18
+ # debug("#{key} : #{value}")
19
+ #end
18
20
  al.backup if options[:backup]
19
21
  al.list if options[:list]
20
22
  al.showAll if options[:L]
23
+ al.change_defaults 'random', options[:D] if options[:D]
21
24
  if options[:show]
22
25
  if aliasString == nil
23
26
  fatal("Needs an alias string to show the related command!")
@@ -44,7 +47,7 @@ class App
44
47
  end
45
48
 
46
49
  # supplemental methods here
47
-
50
+
48
51
  # Declare command-line interface here
49
52
 
50
53
  description "Manage your aliases without editing dot files."
@@ -55,7 +58,11 @@ class App
55
58
  on("-s", "--show", "Show what the specified alias does")
56
59
  on("-b", "--backup", "Create a backup copy of your alias file")
57
60
  on("-d", "--delete", "Delete all keys from your alias file")
58
- on("-L", "--list-all","Display all aliases and their associated commands.")
61
+ on("-L", "--list-all","Display all aliases and commands.")
62
+ on("--alias-file FILENAME","Create and use a new alias file.")
63
+ #on("-D NEW", "Create a random default value for testing purposes.")
64
+
65
+ defaults_from_config_file '.aka'
59
66
 
60
67
  arg :alias, :optional
61
68
  arg :value, :optional
@@ -3,5 +3,5 @@ Feature: Delete the entire file
3
3
  I can delete my alias file entirely
4
4
 
5
5
  Scenario: short code
6
- When I run `aka -d`
6
+ When I run `aka -d` interactively
7
7
  Then the alias file should be empty.
@@ -0,0 +1,18 @@
1
+ Feature: Use an alternate alias file
2
+ In order to fit my personal workflow better
3
+ I want to be able to use a file other than `~/.alias` to store my aliases
4
+ So that I can be large and in charge.
5
+
6
+ Scenario: Create a new alias file
7
+ When I run `aka --alias-file .shortcuts` interactively
8
+ And I type "y"
9
+ And I close the stdin stream
10
+ Then a file named "/tmp/akaTest/.shortcuts" should exist
11
+ And the file "/tmp/akaTest/.shortcuts" should contain "alias test"
12
+
13
+ Scenario: Check for a configuration file
14
+ When I run `aka --alias-file .newcuts` interactively
15
+ And I type "y"
16
+ And I close the stdin stream
17
+ Then a file named "/tmp/akaTest/.aka" should exist
18
+ And the file "/tmp/akaTest/.aka" should contain ".newcuts"
@@ -17,3 +17,7 @@ Then /^the alias "(.*?)" should no longer be in the alias file\.$/ do |arg1|
17
17
  worked = false if line.start_with? "alias #{arg1}"
18
18
  end
19
19
  end
20
+
21
+ When /^I close the stdin stream$/ do
22
+ @interactive.stdin.close()
23
+ end
data/lib/aka/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Aka
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.8"
3
3
  end
data/lib/aka.rb CHANGED
@@ -1,20 +1,33 @@
1
1
  require "aka/version"
2
2
  require "fileutils"
3
3
  require "methadone"
4
+ require "yaml"
4
5
  module Aka
5
6
 
6
7
  class AliasList
7
8
  include Methadone::CLILogging
8
9
 
9
- def initialize
10
+ def initialize incoming_alias_file = nil
10
11
  @aliasPattern = /alias (\S+)="(.+)"/
11
12
  @aliases = {}
12
- @fileName = "#{ENV["HOME"]}/.alias"
13
+ @defaults_file = "#{ENV["HOME"]}/.aka"
14
+ @defaults = get_defaults_from_file
15
+ debug "Incoming Alias file is #{incoming_alias_file}"
16
+ if incoming_alias_file
17
+ @fileName = "#{ENV["HOME"]}/#{incoming_alias_file}"
18
+ if incoming_alias_file != @defaults['alias-file']
19
+ change_alias_file incoming_alias_file
20
+ change_defaults "alias-file", incoming_alias_file
21
+ end
22
+ else
23
+ @fileName = "#{ENV["HOME"]}/.alias"
24
+ end
25
+ debug "The File we're looking at is #{@fileName}"
13
26
  if !File.exists? @fileName
14
27
  FileUtils.touch @fileName
15
28
  end
16
- debug ("made it to the class. filenName is #{@fileName}, aliasPattern is #{@aliasPattern}.")
17
- #Open the alias list
29
+ debug ("made it to the class. fileName is #{@fileName}, aliasPattern is #{@aliasPattern}.")
30
+
18
31
  File.foreach(@fileName) do |line|
19
32
  @aliasPattern.match(line)do |match|
20
33
  #read them all into an array
@@ -82,5 +95,42 @@ module Aka
82
95
  @aliases.sort.each { |key, value| filestring = filestring + "alias #{key}=\"#{value}\"\n" }
83
96
  File.open(@fileName, "w") { |file| file.write filestring }
84
97
  end
98
+
99
+ def change_alias_file new_file_name
100
+ new_file_name = "#{ENV['HOME']}/#{new_file_name}"
101
+ info "Copy current aliases into the new file?(Yna)"
102
+ copy = gets.chomp.downcase
103
+
104
+ if copy == "n"
105
+ FileUtils.touch(new_file_name)
106
+ @fileName = new_file_name
107
+ elsif copy == "a"
108
+ "creation of new aliases aborted!"
109
+ else
110
+ debug "Copying aliases from #{@defaults['alias-file']} to #{new_file_name}"
111
+ FileUtils.copy("#{ENV['HOME']}/#{@defaults['alias-file']}",new_file_name)
112
+ @fileName = new_file_name
113
+ end
114
+ end
115
+
116
+ def get_defaults_from_file
117
+ if File.exists? @defaults_file
118
+ YAML::load(File.read(@defaults_file))
119
+ else
120
+ {'alias-file'=>".alias"}
121
+ end
122
+ end
123
+
124
+ def change_defaults name, value
125
+ if @defaults[name] == nil ||@defaults[name] != value
126
+ @defaults[name] = value
127
+ File.open(@defaults_file,"w"){|file| file.write @defaults.to_yaml}
128
+ info "Changed the default for #{name} to #{value}"
129
+ true
130
+ else
131
+ debug "No changes required!"
132
+ false
133
+ end
134
+ end
85
135
  end
86
- end
136
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-09 00:00:00.000000000 Z
12
+ date: 2013-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
@@ -90,7 +90,6 @@ files:
90
90
  - README.md
91
91
  - README.rdoc
92
92
  - Rakefile
93
- - aka-0.5.2.gem
94
93
  - aka.gemspec
95
94
  - bin/aka
96
95
  - features/add.feature
@@ -98,6 +97,7 @@ files:
98
97
  - features/backup.feature
99
98
  - features/delete.feature
100
99
  - features/list.feature
100
+ - features/new_file.feature
101
101
  - features/remove.feature
102
102
  - features/show.feature
103
103
  - features/step_definitions/aka_steps.rb
@@ -135,6 +135,7 @@ test_files:
135
135
  - features/backup.feature
136
136
  - features/delete.feature
137
137
  - features/list.feature
138
+ - features/new_file.feature
138
139
  - features/remove.feature
139
140
  - features/show.feature
140
141
  - features/step_definitions/aka_steps.rb
data/aka-0.5.2.gem DELETED
Binary file