easyeditor 0.0.2
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 +4 -0
- data/.rspec +1 -0
- data/Gemfile +9 -0
- data/Guardfile +19 -0
- data/README +11 -0
- data/Rakefile +1 -0
- data/bin/easyeditor +18 -0
- data/bin/ee +18 -0
- data/easyeditor.gemspec +24 -0
- data/lib/easyeditor/version.rb +4 -0
- data/lib/easyeditor.rb +51 -0
- data/spec/easyeditor_spec.rb +16 -0
- metadata +59 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'rspec', :version => 2 do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
|
9
|
+
# Rails example
|
10
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
11
|
+
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
12
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
13
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
14
|
+
watch('config/routes.rb') { "spec/routing" }
|
15
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
16
|
+
# Capybara request specs
|
17
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
18
|
+
end
|
19
|
+
|
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/easyeditor
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- encoding : utf-8 -*-
|
3
|
+
def require_r(path) require(File.expand_path(path.to_s, File.dirname(__FILE__))) end
|
4
|
+
|
5
|
+
require_r "../lib/easyeditor"
|
6
|
+
require "optparse"
|
7
|
+
|
8
|
+
include Easyeditor
|
9
|
+
options = {}
|
10
|
+
option_parser = OptionParser.new do |opts|
|
11
|
+
opts.banner = 'Usage: ee -e [vim|vi..] path/file '
|
12
|
+
opts.on('-e vim|emacs', '--editor', 'Set editor') do |editor|
|
13
|
+
options[:editor] = editor
|
14
|
+
end
|
15
|
+
end.parse!
|
16
|
+
puts "Now open #{options[:editor]} #{ARGV.first}"
|
17
|
+
ee = EasyEditor.new(ARGV.first,(options[:editor] || "vim")).open
|
18
|
+
|
data/bin/ee
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- encoding : utf-8 -*-
|
3
|
+
def require_r(path) require(File.expand_path(path.to_s, File.dirname(__FILE__))) end
|
4
|
+
|
5
|
+
require_r "../lib/easyeditor"
|
6
|
+
require "optparse"
|
7
|
+
|
8
|
+
include Easyeditor
|
9
|
+
options = {}
|
10
|
+
option_parser = OptionParser.new do |opts|
|
11
|
+
opts.banner = 'Usage: ee -e [vim|vi..] path/file '
|
12
|
+
opts.on('-e vim|emacs', '--editor', 'Set editor') do |editor|
|
13
|
+
options[:editor] = editor
|
14
|
+
end
|
15
|
+
end.parse!
|
16
|
+
puts "Now open #{options[:editor]} #{ARGV.first}"
|
17
|
+
ee = EasyEditor.new(ARGV.first,(options[:editor] || "vim")).open
|
18
|
+
|
data/easyeditor.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "easyeditor/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "easyeditor"
|
7
|
+
s.version = Easyeditor::VERSION
|
8
|
+
s.authors = ["azhao"]
|
9
|
+
s.email = ["azhao.1981@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/azhao1981/easyeditor"
|
11
|
+
s.summary = %q{Tool for easy to open Project file.}
|
12
|
+
s.description = %q{ee path1/path2/filename will open which one that match *path1*/*path2*/*file.* }
|
13
|
+
|
14
|
+
s.rubyforge_project = "easyeditor"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
24
|
+
end
|
data/lib/easyeditor.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
def require_r(path) require(File.expand_path(path.to_s, File.dirname(__FILE__))) end
|
3
|
+
|
4
|
+
require_r "easyeditor/version"
|
5
|
+
require 'pathname'
|
6
|
+
require "ap"
|
7
|
+
|
8
|
+
module Easyeditor
|
9
|
+
class EasyEditor
|
10
|
+
attr_accessor :target_files
|
11
|
+
def initialize(path,editor="vim")
|
12
|
+
@editor = editor
|
13
|
+
@target_files = []
|
14
|
+
parse_path(path)
|
15
|
+
match_paths
|
16
|
+
return self
|
17
|
+
end
|
18
|
+
def open
|
19
|
+
if @target_files.length > 1
|
20
|
+
ap @target_files
|
21
|
+
puts "Which file to open:[0-default]"
|
22
|
+
@index = $stdin.gets.to_i
|
23
|
+
end
|
24
|
+
exec "#{@editor} #{@target_files[@index || 0]}"
|
25
|
+
end
|
26
|
+
def parse_path(path)
|
27
|
+
path_a = path.split('/')
|
28
|
+
@filename_str = path_a.delete_at(-1)
|
29
|
+
@path_str = path_a.join(".*/.*")
|
30
|
+
end
|
31
|
+
def match_paths
|
32
|
+
traverse_dir('.') do |file|
|
33
|
+
@target_files << file if is_match?(file)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
def is_match?(path)
|
37
|
+
/#{@path_str}/.match(path) && /#{@filename_str}.*/.match(File.basename(path))
|
38
|
+
end
|
39
|
+
def traverse_dir(dir_path)
|
40
|
+
if File.directory? dir_path
|
41
|
+
Dir.foreach(dir_path) do |file|
|
42
|
+
if file!="." and file!=".."
|
43
|
+
traverse_dir(dir_path+"/"+file){|x| yield x}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
else
|
47
|
+
yield dir_path
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
# Unit test for EasyEditor
|
3
|
+
#
|
4
|
+
#
|
5
|
+
require_relative "../lib/easyeditor"
|
6
|
+
|
7
|
+
include Easyeditor
|
8
|
+
|
9
|
+
describe EasyEditor do
|
10
|
+
before(:each) do
|
11
|
+
@ee = EasyEditor.new("lib/easyedito")
|
12
|
+
end
|
13
|
+
it "lib/easyeditor will get file :./lib/easyeditor.rb " do
|
14
|
+
@ee.target_files.should == ["./lib/easyeditor.rb"]
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: easyeditor
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- azhao
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-11 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: ! 'ee path1/path2/filename will open which one that match *path1*/*path2*/*file.* '
|
15
|
+
email:
|
16
|
+
- azhao.1981@gmail.com
|
17
|
+
executables:
|
18
|
+
- easyeditor
|
19
|
+
- ee
|
20
|
+
extensions: []
|
21
|
+
extra_rdoc_files: []
|
22
|
+
files:
|
23
|
+
- .gitignore
|
24
|
+
- .rspec
|
25
|
+
- Gemfile
|
26
|
+
- Guardfile
|
27
|
+
- README
|
28
|
+
- Rakefile
|
29
|
+
- bin/easyeditor
|
30
|
+
- bin/ee
|
31
|
+
- easyeditor.gemspec
|
32
|
+
- lib/easyeditor.rb
|
33
|
+
- lib/easyeditor/version.rb
|
34
|
+
- spec/easyeditor_spec.rb
|
35
|
+
homepage: https://github.com/azhao1981/easyeditor
|
36
|
+
licenses: []
|
37
|
+
post_install_message:
|
38
|
+
rdoc_options: []
|
39
|
+
require_paths:
|
40
|
+
- lib
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
requirements: []
|
54
|
+
rubyforge_project: easyeditor
|
55
|
+
rubygems_version: 1.8.15
|
56
|
+
signing_key:
|
57
|
+
specification_version: 3
|
58
|
+
summary: Tool for easy to open Project file.
|
59
|
+
test_files: []
|