spath 0.0.1 → 0.0.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
  SHA1:
3
- metadata.gz: 5594e6a86f11550e680bd16f75370edde09eb132
4
- data.tar.gz: ac0b0c48d7e5ee6ab93a49c1e5ba13306519c151
3
+ metadata.gz: e7d49c015ba3a6ae33e809dbb66d615e4d1f8558
4
+ data.tar.gz: 600c48f74a64fac517fbafe1c74ff3690ac6db84
5
5
  SHA512:
6
- metadata.gz: 34b27d6977ff187dfec0dd4ad1e8dd59f18ebb51b6b8f512e6634dc5830943a0577724330c801f807c7d18fae3e5cc46665e98cb9ae3292727a39d5a57fee5b3
7
- data.tar.gz: 4b0c0984f7b621cf7fa90a88f899361a6a27d0e0e47eac39af8718e4f705a7d9f3574fed12759291cdbae7e2799ee0416d2af360adecbdcd5e0a2d702d977d83
6
+ metadata.gz: 463814c89a66055c57132f91e6c92744d21f6a9595b1e2794d0dcad3458a7c8db75ebdc634535e5645c90046d15ab1100269ff339751131cc299cd123c08e408
7
+ data.tar.gz: e93f5f63fe2fd71752cf9e482caff56d23f09a0ee2505a0319f1a4681a109d4b88fdb2ea44e89a1547d9949bf31119387abc1dcdb62007687f1b290e6dd45643
data/README.md CHANGED
@@ -13,36 +13,42 @@ Install it as:
13
13
 
14
14
  $ gem install spath
15
15
 
16
- Add this to your .bashrc:
16
+ Add this to your .bashrc (suggested):
17
17
 
18
- function c(){cd $(spath c $*||echo .)}
18
+ alias s='spath create'
19
+ alias l='spath list'
20
+ function c(){cd $(spath path $*||echo .)}
19
21
 
20
- ( This is required because a Ruby script can not change the working directory of its parent process. )
22
+ ( c is required to be defined as a function because a Ruby script can not change the working directory of its parent process. )
21
23
 
22
24
  ## To do:
23
25
 
24
26
  Add configuration options.
27
+ Add tests.
28
+ Add better error handling.
25
29
 
26
30
  ## Usage
27
31
 
28
- Create shortcuts for common places with the command 's [nick] [path]'
32
+ Create shortcuts for common places with the command 'spath create [nick] [path]'
29
33
 
30
- you@computer ~ $ s foo ~/files/something/lol/whatever/ok
34
+ $ spath create ltr /home/you/docs/letters
31
35
 
32
- you@computer ~ $ cd /net/user/you/some/thing/releases/v01-02-03/doc/
33
- you@computer ~ $ s ok .
36
+ Non-absolute paths are acceptable.
34
37
 
35
- then visit them with the shortcut you made with the command 'c [nick]'.
38
+ $ cd /home/you/public/long/path/skynet/releases/v01-02-03/doc/
39
+ $ spath create snet ../
36
40
 
37
- you@computer ~ $ c foo
38
- you@computer ~/files/something/lol/whatever/ok $
41
+ Visit them with the shortcut you made with the function 'c [nick]'.
39
42
 
40
- List all available shortcuts with the command 'l'.
43
+ you@computer $ c snet
44
+ you@computer $ pwd
45
+ /home/you/public/long/path/skynet/releases/v01-02-03/
41
46
 
42
- you@computer ~ $ l
43
- l: list spath shortcuts.
44
- ok => /net/user/you/some/thing/releases/v01-02-03/doc/
45
- abin => /usr/share/Adobe/doc/example/android_vm/root/sbin
46
- foo => /home/you/files/something/lol/whatever/ok
47
+ List all available shortcuts with the command 'spath list'.
48
+
49
+ you@computer ~ $ spath list
50
+ snetdoc => /home/you/public/long/path/skynet/releases/v01-02-03/
51
+ ltr => /home/you/docs/letters
52
+ mu => /home/you
47
53
 
48
54
  Shortcuts are stored at ~/.spath in YAML format.
data/bin/spath CHANGED
@@ -1,29 +1,50 @@
1
1
  #!/usr/bin/env ruby
2
- # coding: utf-8
3
2
 
4
- # spath: provide all functions, about message, configuration
5
-
6
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/../lib")
7
3
  require "spath"
8
4
 
9
5
  def usage
10
- abort "spath: create shortcuts. Usage: `spath c [nick]`."
6
+ abort <<EOF
7
+ spath (v#{SPath::VERSION}): create shortcuts. Usage:
8
+ spath path [nick]
9
+ spath list
10
+ spath create [nick] [path]
11
+ EOF
11
12
  end
12
13
 
13
- usage unless (mode = ARGV[0])
14
+ mode, nickname, path = ARGV
15
+ usage unless mode
16
+
17
+ config_file = SPath::ConfigFile.load
14
18
 
15
19
  case mode
16
- when "c"
20
+ when "path"
17
21
 
18
- usage unless (nickname = ARGV[1])
22
+ usage unless nickname
19
23
 
20
- config_file = SPath::ConfigFile.load
21
24
  begin
22
25
  puts config_file.path_for(nickname)
23
26
  rescue ArgumentError => msg
24
27
  abort "spath: error: #{msg}"
25
28
  end
26
29
 
30
+ when "list"
31
+
32
+ usage if nickname or path
33
+
34
+ shortcuts = config_file.shortcuts
35
+ shortcuts.each { |s| puts "#{s.nickname.to_s.rjust(8)} => #{s.path}" }
36
+
37
+ when "create"
38
+
39
+ usage unless nickname and path
40
+
41
+ path = File.expand_path(path)
42
+ abort "spath: error: #{path} is not a valid path. :(" \
43
+ unless File.exists?(path)
44
+
45
+ config_file << SPath::Shortcut.new(nickname, path)
46
+ config_file.write!
47
+
27
48
  else
28
49
  usage
29
50
  end
data/lib/spath.rb CHANGED
@@ -35,6 +35,10 @@ module SPath
35
35
  end
36
36
 
37
37
  def self.load(path = DEFAULT_CONFIG_PATH)
38
+ path = File.expand_path(path)
39
+
40
+ return new unless File.exists?(File.expand_path(path))
41
+
38
42
  data = YAML.load(File.read(path))
39
43
 
40
44
  # If config file returns empty, use the default
data/lib/spath/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SPath
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/spath.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["jack@attac.us"]
11
11
  spec.description = "spath creates shortcuts for paths"
12
12
  spec.summary = "shortcuts for paths"
13
- spec.homepage = ""
13
+ spec.homepage = "http://github.com/jackwillis/spath"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spath
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Willis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-28 00:00:00.000000000 Z
11
+ date: 2013-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,9 +42,6 @@ description: spath creates shortcuts for paths
42
42
  email:
43
43
  - jack@attac.us
44
44
  executables:
45
- - c
46
- - l
47
- - s
48
45
  - spath
49
46
  extensions: []
50
47
  extra_rdoc_files: []
@@ -53,14 +50,11 @@ files:
53
50
  - LICENSE
54
51
  - README.md
55
52
  - Rakefile
56
- - bin/c
57
- - bin/l
58
- - bin/s
59
53
  - bin/spath
60
54
  - lib/spath.rb
61
55
  - lib/spath/version.rb
62
56
  - spath.gemspec
63
- homepage: ''
57
+ homepage: http://github.com/jackwillis/spath
64
58
  licenses:
65
59
  - MIT
66
60
  metadata: {}
data/bin/c DELETED
@@ -1,5 +0,0 @@
1
- #!/bin/sh
2
-
3
- # ruby command can not change directory by itself
4
- echo "attempt cd $(spath c $*)"
5
- cd $(spath c $*)
data/bin/l DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- # l: list shortcuts
5
-
6
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/../lib")
7
- require "spath"
8
-
9
- abort unless ARGV.empty?
10
-
11
- puts "l: list spath shortcuts."
12
-
13
- config_file = SPath::ConfigFile.load
14
- shortcuts = config_file.shortcuts
15
-
16
- shortcuts.each { |s| puts "#{s.nickname.to_s.rjust(8)} => #{s.path}" }
data/bin/s DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- # s: create shortcut
5
-
6
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/../lib")
7
- require "spath"
8
-
9
- nickname, path = ARGV
10
- abort "s: create spath shortcut. Usage: s [nickname] [path]" \
11
- unless nickname and path
12
-
13
- path = File.expand_path(path)
14
- abort "s: error: #{path} is not a valid path. :(" unless File.exists? path
15
-
16
- config_file = SPath::ConfigFile.load
17
- config_file << SPath::Shortcut.new(nickname, path)
18
- config_file.write!