sanky-pf 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6d285ac85508bf85f66922d16f6aacadf50ed0c6
4
+ data.tar.gz: cf8dd2177485dfc7000947eb71bc082b92d3b3cf
5
+ SHA512:
6
+ metadata.gz: 3cb66f400f687e7516bd591364880ec468cb23c50eff65e8ffbcfec624fc30b0e2002a3258407f3798b4da1d627fd790aecff2859c92f68953dabfb54012b6cb
7
+ data.tar.gz: 8f8e1acc2b938bf4e56e157a3df1567da7977265fbc5606819c71cba447d200db42516b2dcda4fa0ff643a6e586dc5be4d1ed655d1022ca91a47fcad81784241
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # SANKY PATHFINDER
2
+
3
+ Installation is simple:
4
+
5
+ `gem install sankypf`
6
+
7
+ Usage is simple:
8
+
9
+ `sankypf escaped\ path\ to/file.txt`
data/bin/sanky-pf ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'sanky/pathfinder/runner'
3
+ Sanky::PathFinder::Runner.new(ARGV).run
@@ -0,0 +1,49 @@
1
+ require 'colorize'
2
+
3
+ module Sanky
4
+ module PathFinder
5
+ class Finder
6
+ def initialize(arguments)
7
+ @arguments = arguments
8
+ end
9
+
10
+ def to_s
11
+ @arguments
12
+ end
13
+
14
+ def convert
15
+ @arguments.map! do |original|
16
+ # subsitute windows backslashes for forwardslashes and strip whitespace
17
+ original = original.strip.gsub(/\\/, "/")
18
+ original.sub!(/L:/, "/Volumes/SankNet Drive")
19
+ original.sub!(/Z:/, "/Volumes/Sanky Direct Drive/Sanky Shared")
20
+ original.sub!(/Z:/, "/Volumes/Sanky Direct Drive/Sanky Shared")
21
+ original.sub!(/smb:\/\/sankycomserver/, "/Volumes")
22
+ # if no leading / add one
23
+ original.sub!(/^(?!\/)/, "/")
24
+ # if it doesn't start with /Volumes add it
25
+ original.sub!(/^(?!\/Volumes)/, "/Volumes")
26
+ # String.sub returns nil if no sub was performed, always return the og
27
+ original
28
+ end
29
+
30
+ self
31
+ end
32
+
33
+ def open
34
+ @arguments.each do |target|
35
+ begin
36
+ # pipe STDERR to dev null in favor of custom prompt
37
+ `open -g '#{target}' > /dev/null 2>/dev/null`
38
+ ensure
39
+ if $? == 0
40
+ puts "Opening the file in the background...".yellow
41
+ else
42
+ puts "Failed to find #{target.red}!"
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,35 @@
1
+ require 'optparse'
2
+
3
+ module Sanky
4
+ module PathFinder
5
+ class Options
6
+ attr_reader :arguments
7
+
8
+ def initialize(argv)
9
+ parse(argv)
10
+ @arguments = argv
11
+ end
12
+
13
+ private
14
+
15
+ def parse(argv)
16
+ OptionParser.new do |opts|
17
+ opts.banner = "Usage: sankypf file [ file ] ..."
18
+
19
+ opts.on("-h", "--help", "Show this message") do
20
+ puts opts
21
+ exit
22
+ end
23
+
24
+ begin
25
+ argv = ["-h"] if argv.empty?
26
+ opts.parse!(argv)
27
+ rescue OptionParser::ParseError => e
28
+ STDERR.puts e.message, "\n", opts
29
+ exit(1)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,16 @@
1
+ require_relative 'options'
2
+ require_relative 'finder'
3
+
4
+ module Sanky
5
+ module PathFinder
6
+ class Runner
7
+ def initialize(argv)
8
+ @options = Options.new(argv)
9
+ end
10
+
11
+ def run
12
+ Sanky::PathFinder::Finder.new(@options.arguments).convert.open
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module Sanky
2
+ module PathFinder
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
data/sanky-pf.gemspec ADDED
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../lib/sanky/pathfinder/version', __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "sanky-pf"
5
+ s.summary = "Open files on the sanky server"
6
+ s.description = File.read("./README.md")
7
+ s.version = Sanky::PathFinder::VERSION
8
+ s.author = "Matt Ryan"
9
+ s.email = "m@mrevd.me"
10
+ s.homepage = "https://github.com/sankynet/sankypf"
11
+ s.platform = Gem::Platform::RUBY
12
+ s.required_ruby_version = ">=1.9"
13
+ s.files = Dir['**/**']
14
+ s.executables = [ "sanky-pf" ]
15
+ s.test_files = Dir['test/test*.rb']
16
+ s.has_rdoc = false
17
+
18
+ s.add_runtime_dependency 'colorize'
19
+ s.add_development_dependency 'shoulda'
20
+ end
data/tags ADDED
@@ -0,0 +1,27 @@
1
+ !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
+ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
+ !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
4
+ !_TAG_PROGRAM_NAME Exuberant Ctags //
5
+ !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
+ !_TAG_PROGRAM_VERSION 5.8 //
7
+ Finder lib/sanky/pathfinder/finder.rb /^ class Finder$/;" c class:Sanky.PathFinder
8
+ Options lib/sanky/pathfinder/options.rb /^ class Options$/;" c class:Sanky.PathFinder
9
+ PathFinder lib/sanky/pathfinder/finder.rb /^ module PathFinder$/;" m class:Sanky
10
+ PathFinder lib/sanky/pathfinder/options.rb /^ module PathFinder$/;" m class:Sanky
11
+ PathFinder lib/sanky/pathfinder/runner.rb /^ module PathFinder$/;" m class:Sanky
12
+ PathFinder lib/sanky/pathfinder/version.rb /^ module PathFinder$/;" m class:Sanky
13
+ Runner lib/sanky/pathfinder/runner.rb /^ class Runner$/;" c class:Sanky.PathFinder
14
+ Sanky lib/sanky/pathfinder/finder.rb /^module Sanky$/;" m
15
+ Sanky lib/sanky/pathfinder/options.rb /^module Sanky$/;" m
16
+ Sanky lib/sanky/pathfinder/runner.rb /^module Sanky$/;" m
17
+ Sanky lib/sanky/pathfinder/version.rb /^module Sanky$/;" m
18
+ TestFinder test/test_finder.rb /^class TestFinder < Test::Unit::TestCase$/;" c
19
+ TestOptions test/test_options.rb /^class TestOptions < Test::Unit::TestCase$/;" c
20
+ convert lib/sanky/pathfinder/finder.rb /^ def convert$/;" f class:Sanky.PathFinder.Finder
21
+ initialize lib/sanky/pathfinder/finder.rb /^ def initialize(arguments)$/;" f class:Sanky.PathFinder.Finder
22
+ initialize lib/sanky/pathfinder/options.rb /^ def initialize(argv)$/;" f class:Sanky.PathFinder.Options
23
+ initialize lib/sanky/pathfinder/runner.rb /^ def initialize(argv)$/;" f class:Sanky.PathFinder.Runner
24
+ open lib/sanky/pathfinder/finder.rb /^ def open$/;" f class:Sanky.PathFinder.Finder
25
+ parse lib/sanky/pathfinder/options.rb /^ def parse(argv)$/;" f class:Sanky.PathFinder.Options
26
+ run lib/sanky/pathfinder/runner.rb /^ def run$/;" f class:Sanky.PathFinder.Runner
27
+ to_s lib/sanky/pathfinder/finder.rb /^ def to_s$/;" f class:Sanky.PathFinder.Finder
@@ -0,0 +1,33 @@
1
+ require 'test/unit'
2
+ require 'shoulda'
3
+ require_relative '../lib/sanky/pathfinder/finder'
4
+
5
+ class TestFinder < Test::Unit::TestCase
6
+
7
+ context "finder" do
8
+ setup do
9
+ @args = ['/test/doc1.txt', 'test/doc2.txt', 'volumes/doc3.txt', '/Volumes/doc4.txt']
10
+ @finder = Sanky::PathFinder::Finder.new(@args)
11
+ end
12
+
13
+ context "initalization" do
14
+ should "include arguements" do
15
+ assert_equal @args, @finder.to_s
16
+ end
17
+ end
18
+
19
+ context "conversion" do
20
+ should "properly parse paths" do
21
+ expected_results = [
22
+ '/Volumes/test/doc1.txt',
23
+ '/Volumes/test/doc2.txt',
24
+ '/Volumes/volumes/doc3.txt',
25
+ '/Volumes/doc4.txt'
26
+ ]
27
+
28
+ assert_equal expected_results, @finder.convert.to_s
29
+ end
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,22 @@
1
+ require 'test/unit'
2
+ require 'shoulda'
3
+ require_relative '../lib/sanky/pathfinder/options'
4
+
5
+ class TestOptions < Test::Unit::TestCase
6
+
7
+ context "specifying a file" do
8
+ should "return it" do
9
+ opts = Sanky::PathFinder::Options.new(["/Volumes/Test/document.txt"])
10
+ assert_equal ["/Volumes/Test/document.txt"], opts.arguments
11
+ end
12
+ end
13
+
14
+ context "specifying multiple files" do
15
+ should "return them" do
16
+ docs = ["/doc1.txt", "doc2.txt"]
17
+ opts = Sanky::PathFinder::Options.new(docs)
18
+ assert_equal docs, opts.arguments
19
+ end
20
+ end
21
+
22
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sanky-pf
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matt Ryan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: shoulda
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |
42
+ # SANKY PATHFINDER
43
+
44
+ Installation is simple:
45
+
46
+ `gem install sankypf`
47
+
48
+ Usage is simple:
49
+
50
+ `sankypf escaped\ path\ to/file.txt`
51
+ email: m@mrevd.me
52
+ executables:
53
+ - sanky-pf
54
+ extensions: []
55
+ extra_rdoc_files: []
56
+ files:
57
+ - bin/sanky-pf
58
+ - lib/sanky/pathfinder/finder.rb
59
+ - lib/sanky/pathfinder/options.rb
60
+ - lib/sanky/pathfinder/runner.rb
61
+ - lib/sanky/pathfinder/version.rb
62
+ - README.md
63
+ - sanky-pf.gemspec
64
+ - tags
65
+ - test/test_finder.rb
66
+ - test/test_options.rb
67
+ homepage: https://github.com/sankynet/sankypf
68
+ licenses: []
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '1.9'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubyforge_project:
86
+ rubygems_version: 2.1.11
87
+ signing_key:
88
+ specification_version: 4
89
+ summary: Open files on the sanky server
90
+ test_files:
91
+ - test/test_finder.rb
92
+ - test/test_options.rb