easyeditor 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README +7 -1
- data/bin/easyeditor +5 -0
- data/bin/ee +14 -1
- data/easyeditor.gemspec +1 -0
- data/lib/easyeditor/version.rb +1 -1
- data/lib/easyeditor.rb +11 -5
- data/spec/easyeditor_spec.rb +2 -1
- metadata +14 -3
data/README
CHANGED
@@ -8,4 +8,10 @@ Useage:
|
|
8
8
|
|
9
9
|
eg.
|
10
10
|
ee li/easyedit
|
11
|
-
That will open lib/easyeditor.rb
|
11
|
+
That will open lib/easyeditor.rb
|
12
|
+
|
13
|
+
BUG:
|
14
|
+
TODO: sudo support ...Look don't work
|
15
|
+
TODO: windows....I ready don't want to do this.....
|
16
|
+
DONE: don't work on ruby -v<1.9.3
|
17
|
+
DONE: directory support, no directory show.
|
data/bin/easyeditor
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
def require_r(path) require(File.expand_path(path.to_s, File.dirname(__FILE__))) end
|
4
4
|
|
5
5
|
require_r "../lib/easyeditor"
|
6
|
+
require_r "../lib/easyeditor/version"
|
6
7
|
require "optparse"
|
7
8
|
|
8
9
|
include Easyeditor
|
@@ -13,6 +14,10 @@ option_parser = OptionParser.new do |opts|
|
|
13
14
|
opts.on('-e vim|emacs', '--editor', 'Set editor') do |editor|
|
14
15
|
options[:editor] = editor
|
15
16
|
end
|
17
|
+
opts.on('-v','--version','Show version') do
|
18
|
+
puts "ee|easyeditor -v= #{VERSION} "
|
19
|
+
exit
|
20
|
+
end
|
16
21
|
end.parse!
|
17
22
|
puts "Now open #{options[:editor]} #{ARGV.first}"
|
18
23
|
ee = EasyEditor.new(ARGV.first,options[:editor]).open
|
data/bin/ee
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
def require_r(path) require(File.expand_path(path.to_s, File.dirname(__FILE__))) end
|
4
4
|
|
5
5
|
require_r "../lib/easyeditor"
|
6
|
+
require_r "../lib/easyeditor/version"
|
6
7
|
require "optparse"
|
7
8
|
|
8
9
|
include Easyeditor
|
@@ -13,7 +14,19 @@ option_parser = OptionParser.new do |opts|
|
|
13
14
|
opts.on('-e vim|emacs', '--editor', 'Set editor') do |editor|
|
14
15
|
options[:editor] = editor
|
15
16
|
end
|
17
|
+
opts.on('-v','--version','Show version') do
|
18
|
+
puts "ee|easyeditor -v= #{VERSION} "
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
options[:directory] = "."
|
22
|
+
opts.on('-d directory', '--directory', 'Set directory') do |directory|
|
23
|
+
options[:directory] = directory
|
24
|
+
end
|
25
|
+
options[:sudo] = false
|
26
|
+
opts.on('-s','--sudo',"Open with super user.") do
|
27
|
+
options[:sudo] = true
|
28
|
+
end
|
16
29
|
end.parse!
|
17
30
|
puts "Now open #{options[:editor]} #{ARGV.first}"
|
18
|
-
ee = EasyEditor.new(ARGV.first,options
|
31
|
+
ee = EasyEditor.new(ARGV.first,options).open
|
19
32
|
|
data/easyeditor.gemspec
CHANGED
data/lib/easyeditor/version.rb
CHANGED
data/lib/easyeditor.rb
CHANGED
@@ -8,9 +8,11 @@ require "ap"
|
|
8
8
|
module Easyeditor
|
9
9
|
class EasyEditor
|
10
10
|
attr_accessor :target_files
|
11
|
-
def initialize(path,
|
12
|
-
@editor = editor
|
11
|
+
def initialize(path,options={})
|
12
|
+
@editor = options[:editor]
|
13
13
|
@target_files = []
|
14
|
+
@dir = options[:directory]
|
15
|
+
@sudo_flag = options[:sudo]
|
14
16
|
parse_path(path)
|
15
17
|
match_paths
|
16
18
|
return self
|
@@ -21,7 +23,10 @@ module Easyeditor
|
|
21
23
|
puts "Which file to open:[0-default]"
|
22
24
|
@index = $stdin.gets.to_i
|
23
25
|
end
|
24
|
-
exec "#{@editor} #{@target_files[@index || 0]}"
|
26
|
+
exec "#{sudo}#{@editor} #{@target_files[@index || 0]}"
|
27
|
+
end
|
28
|
+
def sudo
|
29
|
+
"sudo " if @sudo_flag
|
25
30
|
end
|
26
31
|
def parse_path(path)
|
27
32
|
path_a = path.split('/')
|
@@ -29,13 +34,14 @@ module Easyeditor
|
|
29
34
|
@path_str = path_a.join(".*/.*")
|
30
35
|
end
|
31
36
|
def match_paths
|
32
|
-
traverse_dir(
|
37
|
+
traverse_dir(@dir) do |file|
|
33
38
|
@target_files << file if is_match?(file)
|
34
39
|
end
|
35
40
|
end
|
36
41
|
def is_match?(path)
|
37
|
-
/#{@path_str}/.match(path) && /#{@filename_str}.*/.match(File.basename(path))
|
42
|
+
!File.directory?(path) && /#{@path_str}/.match(path) && /#{@filename_str}.*/.match(File.basename(path))
|
38
43
|
end
|
44
|
+
# 遍历文件夹
|
39
45
|
def traverse_dir(dir_path)
|
40
46
|
if File.directory? dir_path
|
41
47
|
Dir.foreach(dir_path) do |file|
|
data/spec/easyeditor_spec.rb
CHANGED
@@ -8,7 +8,8 @@ include Easyeditor
|
|
8
8
|
|
9
9
|
describe EasyEditor do
|
10
10
|
before(:each) do
|
11
|
-
|
11
|
+
options = {:editor=>"vim",:directory=>".",:sudo_flag=>false}
|
12
|
+
@ee = EasyEditor.new("lib/easyedito",options)
|
12
13
|
end
|
13
14
|
it "lib/easyeditor will get file :./lib/easyeditor.rb " do
|
14
15
|
@ee.target_files.should == ["./lib/easyeditor.rb"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easyeditor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-02-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: awesome_print
|
16
|
+
requirement: &82692220 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *82692220
|
14
25
|
description: ! 'ee path1/path2/filename will open which one that match *path1*/*path2*/*file.* '
|
15
26
|
email:
|
16
27
|
- azhao.1981@gmail.com
|