utils 0.0.15 → 0.0.16

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/README.rdoc CHANGED
@@ -8,7 +8,7 @@ This ruby gem provides some useful command line utilities.
8
8
 
9
9
  Florian Frank <mailto:flori@ping.de>
10
10
 
11
- == License
11
+ == License
12
12
 
13
13
  This is free software; you can redistribute it and/or modify it under the
14
14
  terms of the GNU General Public License Version 2 as published by the Free
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.15
1
+ 0.0.16
data/bin/probe ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ require 'spruz/xt'
5
+ require 'spruz/go'
6
+ include Spruz::GO
7
+ require 'utils'
8
+ include Utils
9
+
10
+ def cmd(*args)
11
+ puts args * ' '
12
+ system *args
13
+ end
14
+
15
+ filename = ARGV.shift or fail "require filename or filename:linenumber as first argument"
16
+ $opt = go 'n:'
17
+ if testname = $opt['n']
18
+ cmd "testrb", '-I', 'lib:test:ext', '-n', testname , filename
19
+ elsif filename =~ /^\s*([^:]+):(\d+)/
20
+ filename, linenumber = $1, $2
21
+ lf = LinesFile.for_filename filename, linenumber
22
+ if testname = lf.match_backward(/def\s+(\S+?)(?:\(|\s*$)/).full?(:first)
23
+ cmd "testrb", '-I', 'lib:test:ext', '-n', testname , filename
24
+ else
25
+ warn "no test found before line #{linenumber}"
26
+ exit 1
27
+ end
28
+ else
29
+ cmd "testrb", '-Ilib:test:ext', filename
30
+ end
data/bin/strip_spaces CHANGED
@@ -9,9 +9,10 @@ class ::File
9
9
  include Utils::FileXt
10
10
  end
11
11
 
12
- argv = ARGV.empty? ? %w[.] : ARGV
12
+ pathes = ARGV.empty? ? %w[.] : ARGV
13
+ pathes = pathes.map { |p| File.expand_path(p) }
13
14
 
14
- find(*argv) do |path|
15
+ find(*pathes) do |path|
15
16
  File.basename(path) =~ /\A\./ and prune
16
17
  File.directory?(path) and next
17
18
  File.ascii?(path) or next
data/lib/utils.rb CHANGED
@@ -8,4 +8,5 @@ module Utils
8
8
  require 'utils/editor'
9
9
  require 'utils/finder'
10
10
  require 'utils/grepper'
11
+ require 'utils/lines_file'
11
12
  end
@@ -35,7 +35,7 @@ set nopaste
35
35
  set nosmartcase
36
36
  set nosmartindent
37
37
  set nowrap
38
- set nonumber
38
+ set number
39
39
  set ruler
40
40
  set shortmess=atI
41
41
  set showcmd
@@ -0,0 +1,122 @@
1
+ class Utils::LinesFile
2
+ module LineExtension
3
+ attr_reader :line_number
4
+
5
+ def filename
6
+ lines_file.filename.dup
7
+ end
8
+ end
9
+
10
+ include Enumerable
11
+
12
+ def self.for_filename(filename, line_number = nil)
13
+ obj = new(File.readlines(filename), line_number)
14
+ obj.filename = filename
15
+ obj
16
+ end
17
+
18
+ def self.for_file(file, line_number)
19
+ obj = new(file.readlines, line_number)
20
+ obj.filename = filename
21
+ obj
22
+ end
23
+
24
+ def self.for_lines(lines, line_number = nil)
25
+ new(lines, line_number)
26
+ end
27
+
28
+ def initialize(lines, line_number = nil)
29
+ @lines = lines
30
+ @lines.each_with_index do |line, i|
31
+ line.extend LineExtension
32
+ line.instance_variable_set :@line_number, i + 1
33
+ line.instance_variable_set :@lines_file, self
34
+ end
35
+ self.line_number = line_number || (@lines.empty? ? 0 : 1)
36
+ end
37
+
38
+ attr_accessor :filename
39
+
40
+ attr_reader :line_number
41
+
42
+ def rewind
43
+ self.line_number = 1
44
+ self
45
+ end
46
+
47
+ def next!
48
+ self.line_number += 1
49
+ self
50
+ end
51
+
52
+ def previous!
53
+ self.line_number -= 1
54
+ self
55
+ end
56
+
57
+ def line_number=(number)
58
+ number = number.to_i
59
+ if number > 0 && number <= last_line_number
60
+ @line_number = number
61
+ end
62
+ end
63
+
64
+ def last_line_number
65
+ @lines.size
66
+ end
67
+
68
+ def empty?
69
+ @lines.empty?
70
+ end
71
+
72
+ def each(&block)
73
+ @lines.empty? and return
74
+ old_line_number = line_number
75
+ 1.upto(last_line_number) do |number|
76
+ self.line_number = number
77
+ block.call(line)
78
+ end
79
+ self
80
+ ensure
81
+ self.line_number = old_line_number
82
+ end
83
+
84
+ def line
85
+ index = line_number - 1
86
+ @lines[index] if index >= 0
87
+ end
88
+
89
+ def file_linenumber
90
+ "#{filename}:#{line_number}"
91
+ end
92
+
93
+ def match_backward(regexp, previous_after_match = false)
94
+ empty? and return
95
+ while line_number >= 1
96
+ if line =~ regexp
97
+ previous_after_match and previous!
98
+ return $~.captures
99
+ end
100
+ previous!
101
+ end
102
+ end
103
+
104
+ def match_forward(regexp, next_after_match = false)
105
+ empty? and return
106
+ begin
107
+ if line =~ regexp
108
+ next_after_match and next!
109
+ return $~.captures
110
+ end
111
+ next!
112
+ end while line_number < last_line_number
113
+ end
114
+
115
+ def to_s
116
+ "#{line_number} #{line.chomp}"
117
+ end
118
+
119
+ def inspect
120
+ "#<#{self.class}: #{to_s.inspect}>"
121
+ end
122
+ end
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.0.15'
3
+ VERSION = '0.0.16'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/utils.gemspec CHANGED
@@ -2,20 +2,20 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{utils}
5
- s.version = "0.0.15"
5
+ s.version = "0.0.16"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [%q{Florian Frank}]
9
- s.date = %q{2011-08-08}
9
+ s.date = %q{2011-08-10}
10
10
  s.description = %q{This ruby gem provides some useful command line utilities}
11
11
  s.email = %q{flori@ping.de}
12
- s.executables = [%q{untest}, %q{chroot-libs}, %q{edit_wait}, %q{chroot-exec}, %q{number_files}, %q{search}, %q{strip_spaces}, %q{path}, %q{edit}, %q{git-empty}, %q{classify}, %q{utils-install-config}, %q{xmp}, %q{discover}, %q{sshscreen}, %q{myex}, %q{errf}, %q{same_files}, %q{unquarantine_apps}, %q{vacuum_firefox_sqlite}, %q{sedit}]
13
- s.extra_rdoc_files = [%q{README.rdoc}, %q{lib/utils/finder.rb}, %q{lib/utils/version.rb}, %q{lib/utils/find.rb}, %q{lib/utils/config.rb}, %q{lib/utils/editor.rb}, %q{lib/utils/grepper.rb}, %q{lib/utils/file_xt.rb}, %q{lib/utils/md5.rb}, %q{lib/utils/patterns.rb}, %q{lib/utils.rb}]
14
- s.files = [%q{.gitignore}, %q{.rvmrc}, %q{COPYING}, %q{Gemfile}, %q{README.rdoc}, %q{Rakefile}, %q{VERSION}, %q{bin/chroot-exec}, %q{bin/chroot-libs}, %q{bin/classify}, %q{bin/discover}, %q{bin/edit}, %q{bin/edit_wait}, %q{bin/errf}, %q{bin/git-empty}, %q{bin/myex}, %q{bin/number_files}, %q{bin/path}, %q{bin/same_files}, %q{bin/search}, %q{bin/sedit}, %q{bin/sshscreen}, %q{bin/strip_spaces}, %q{bin/unquarantine_apps}, %q{bin/untest}, %q{bin/utils-install-config}, %q{bin/vacuum_firefox_sqlite}, %q{bin/xmp}, %q{lib/utils.rb}, %q{lib/utils/config.rb}, %q{lib/utils/config/gdb/asm}, %q{lib/utils/config/gdb/ruby}, %q{lib/utils/config/gdbinit}, %q{lib/utils/config/irbrc}, %q{lib/utils/config/rdebugrc}, %q{lib/utils/config/screenrc}, %q{lib/utils/config/vim/autoload/Align.vim}, %q{lib/utils/config/vim/autoload/AlignMaps.vim}, %q{lib/utils/config/vim/autoload/rails.vim}, %q{lib/utils/config/vim/autoload/rubycomplete.vim}, %q{lib/utils/config/vim/autoload/sqlcomplete.vim}, %q{lib/utils/config/vim/autoload/vimball.vim}, %q{lib/utils/config/vim/colors/flori.vim}, %q{lib/utils/config/vim/compiler/eruby.vim}, %q{lib/utils/config/vim/compiler/ruby.vim}, %q{lib/utils/config/vim/compiler/rubyunit.vim}, %q{lib/utils/config/vim/ftdetect/ragel.vim}, %q{lib/utils/config/vim/ftdetect/ruby.vim}, %q{lib/utils/config/vim/ftplugin/eruby.vim}, %q{lib/utils/config/vim/ftplugin/ruby.vim}, %q{lib/utils/config/vim/ftplugin/xml.vim}, %q{lib/utils/config/vim/indent/IndentAnything_html.vim}, %q{lib/utils/config/vim/indent/eruby.vim}, %q{lib/utils/config/vim/indent/javascript.vim}, %q{lib/utils/config/vim/indent/ruby.vim}, %q{lib/utils/config/vim/plugin/AlignMapsPlugin.vim}, %q{lib/utils/config/vim/plugin/AlignPlugin.vim}, %q{lib/utils/config/vim/plugin/Decho.vim}, %q{lib/utils/config/vim/plugin/IndentAnything.vim}, %q{lib/utils/config/vim/plugin/bufexplorer.vim}, %q{lib/utils/config/vim/plugin/cecutil.vim}, %q{lib/utils/config/vim/plugin/fugitive.vim}, %q{lib/utils/config/vim/plugin/lusty-explorer.vim}, %q{lib/utils/config/vim/plugin/rails.vim}, %q{lib/utils/config/vim/plugin/rubyextra.vim}, %q{lib/utils/config/vim/plugin/surround.vim}, %q{lib/utils/config/vim/plugin/taglist.vim}, %q{lib/utils/config/vim/plugin/test/IndentAnything/test.js}, %q{lib/utils/config/vim/plugin/vimballPlugin.vim}, %q{lib/utils/config/vim/syntax/Decho.vim}, %q{lib/utils/config/vim/syntax/eruby.vim}, %q{lib/utils/config/vim/syntax/javascript.vim}, %q{lib/utils/config/vim/syntax/ragel.vim}, %q{lib/utils/config/vim/syntax/ruby.vim}, %q{lib/utils/config/vimrc}, %q{lib/utils/editor.rb}, %q{lib/utils/file_xt.rb}, %q{lib/utils/find.rb}, %q{lib/utils/finder.rb}, %q{lib/utils/grepper.rb}, %q{lib/utils/md5.rb}, %q{lib/utils/patterns.rb}, %q{lib/utils/version.rb}, %q{utils.gemspec}]
12
+ s.executables = [%q{chroot-exec}, %q{chroot-libs}, %q{classify}, %q{discover}, %q{edit}, %q{edit_wait}, %q{errf}, %q{git-empty}, %q{myex}, %q{number_files}, %q{path}, %q{probe}, %q{same_files}, %q{search}, %q{sedit}, %q{sshscreen}, %q{strip_spaces}, %q{unquarantine_apps}, %q{untest}, %q{utils-install-config}, %q{vacuum_firefox_sqlite}, %q{xmp}]
13
+ s.extra_rdoc_files = [%q{README.rdoc}, %q{lib/utils/config.rb}, %q{lib/utils/editor.rb}, %q{lib/utils/file_xt.rb}, %q{lib/utils/find.rb}, %q{lib/utils/finder.rb}, %q{lib/utils/grepper.rb}, %q{lib/utils/lines_file.rb}, %q{lib/utils/md5.rb}, %q{lib/utils/patterns.rb}, %q{lib/utils/version.rb}, %q{lib/utils.rb}]
14
+ s.files = [%q{.gitignore}, %q{.rvmrc}, %q{COPYING}, %q{Gemfile}, %q{README.rdoc}, %q{Rakefile}, %q{VERSION}, %q{bin/chroot-exec}, %q{bin/chroot-libs}, %q{bin/classify}, %q{bin/discover}, %q{bin/edit}, %q{bin/edit_wait}, %q{bin/errf}, %q{bin/git-empty}, %q{bin/myex}, %q{bin/number_files}, %q{bin/path}, %q{bin/probe}, %q{bin/same_files}, %q{bin/search}, %q{bin/sedit}, %q{bin/sshscreen}, %q{bin/strip_spaces}, %q{bin/unquarantine_apps}, %q{bin/untest}, %q{bin/utils-install-config}, %q{bin/vacuum_firefox_sqlite}, %q{bin/xmp}, %q{lib/utils.rb}, %q{lib/utils/config.rb}, %q{lib/utils/config/gdb/asm}, %q{lib/utils/config/gdb/ruby}, %q{lib/utils/config/gdbinit}, %q{lib/utils/config/irbrc}, %q{lib/utils/config/rdebugrc}, %q{lib/utils/config/screenrc}, %q{lib/utils/config/vim/autoload/Align.vim}, %q{lib/utils/config/vim/autoload/AlignMaps.vim}, %q{lib/utils/config/vim/autoload/rails.vim}, %q{lib/utils/config/vim/autoload/rubycomplete.vim}, %q{lib/utils/config/vim/autoload/sqlcomplete.vim}, %q{lib/utils/config/vim/autoload/vimball.vim}, %q{lib/utils/config/vim/colors/flori.vim}, %q{lib/utils/config/vim/compiler/eruby.vim}, %q{lib/utils/config/vim/compiler/ruby.vim}, %q{lib/utils/config/vim/compiler/rubyunit.vim}, %q{lib/utils/config/vim/ftdetect/ragel.vim}, %q{lib/utils/config/vim/ftdetect/ruby.vim}, %q{lib/utils/config/vim/ftplugin/eruby.vim}, %q{lib/utils/config/vim/ftplugin/ruby.vim}, %q{lib/utils/config/vim/ftplugin/xml.vim}, %q{lib/utils/config/vim/indent/IndentAnything_html.vim}, %q{lib/utils/config/vim/indent/eruby.vim}, %q{lib/utils/config/vim/indent/javascript.vim}, %q{lib/utils/config/vim/indent/ruby.vim}, %q{lib/utils/config/vim/plugin/AlignMapsPlugin.vim}, %q{lib/utils/config/vim/plugin/AlignPlugin.vim}, %q{lib/utils/config/vim/plugin/Decho.vim}, %q{lib/utils/config/vim/plugin/IndentAnything.vim}, %q{lib/utils/config/vim/plugin/bufexplorer.vim}, %q{lib/utils/config/vim/plugin/cecutil.vim}, %q{lib/utils/config/vim/plugin/fugitive.vim}, %q{lib/utils/config/vim/plugin/lusty-explorer.vim}, %q{lib/utils/config/vim/plugin/rails.vim}, %q{lib/utils/config/vim/plugin/rubyextra.vim}, %q{lib/utils/config/vim/plugin/surround.vim}, %q{lib/utils/config/vim/plugin/taglist.vim}, %q{lib/utils/config/vim/plugin/test/IndentAnything/test.js}, %q{lib/utils/config/vim/plugin/vimballPlugin.vim}, %q{lib/utils/config/vim/syntax/Decho.vim}, %q{lib/utils/config/vim/syntax/eruby.vim}, %q{lib/utils/config/vim/syntax/javascript.vim}, %q{lib/utils/config/vim/syntax/ragel.vim}, %q{lib/utils/config/vim/syntax/ruby.vim}, %q{lib/utils/config/vimrc}, %q{lib/utils/editor.rb}, %q{lib/utils/file_xt.rb}, %q{lib/utils/find.rb}, %q{lib/utils/finder.rb}, %q{lib/utils/grepper.rb}, %q{lib/utils/lines_file.rb}, %q{lib/utils/md5.rb}, %q{lib/utils/patterns.rb}, %q{lib/utils/version.rb}, %q{utils.gemspec}]
15
15
  s.homepage = %q{http://github.com/flori/utils}
16
16
  s.rdoc_options = [%q{--title}, %q{Utils - Some useful command line utilities}, %q{--main}, %q{README.rdoc}]
17
17
  s.require_paths = [%q{lib}]
18
- s.rubygems_version = %q{1.8.7}
18
+ s.rubygems_version = %q{1.8.6}
19
19
  s.summary = %q{Some useful command line utilities}
20
20
 
21
21
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-08 00:00:00.000000000Z
12
+ date: 2011-08-10 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gem_hadar
16
- requirement: &2160552100 !ruby/object:Gem::Requirement
16
+ requirement: &2153046640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.0.11
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2160552100
24
+ version_requirements: *2153046640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: spruz
27
- requirement: &2160551620 !ruby/object:Gem::Requirement
27
+ requirement: &2153046080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.2.12
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2160551620
35
+ version_requirements: *2153046080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: term-ansicolor
38
- requirement: &2160551140 !ruby/object:Gem::Requirement
38
+ requirement: &2153045540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,43 +43,45 @@ dependencies:
43
43
  version: '1.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2160551140
46
+ version_requirements: *2153045540
47
47
  description: This ruby gem provides some useful command line utilities
48
48
  email: flori@ping.de
49
49
  executables:
50
- - untest
51
- - chroot-libs
52
- - edit_wait
53
50
  - chroot-exec
54
- - number_files
55
- - search
56
- - strip_spaces
57
- - path
58
- - edit
59
- - git-empty
51
+ - chroot-libs
60
52
  - classify
61
- - utils-install-config
62
- - xmp
63
53
  - discover
64
- - sshscreen
65
- - myex
54
+ - edit
55
+ - edit_wait
66
56
  - errf
57
+ - git-empty
58
+ - myex
59
+ - number_files
60
+ - path
61
+ - probe
67
62
  - same_files
63
+ - search
64
+ - sedit
65
+ - sshscreen
66
+ - strip_spaces
68
67
  - unquarantine_apps
68
+ - untest
69
+ - utils-install-config
69
70
  - vacuum_firefox_sqlite
70
- - sedit
71
+ - xmp
71
72
  extensions: []
72
73
  extra_rdoc_files:
73
74
  - README.rdoc
74
- - lib/utils/finder.rb
75
- - lib/utils/version.rb
76
- - lib/utils/find.rb
77
75
  - lib/utils/config.rb
78
76
  - lib/utils/editor.rb
79
- - lib/utils/grepper.rb
80
77
  - lib/utils/file_xt.rb
78
+ - lib/utils/find.rb
79
+ - lib/utils/finder.rb
80
+ - lib/utils/grepper.rb
81
+ - lib/utils/lines_file.rb
81
82
  - lib/utils/md5.rb
82
83
  - lib/utils/patterns.rb
84
+ - lib/utils/version.rb
83
85
  - lib/utils.rb
84
86
  files:
85
87
  - .gitignore
@@ -100,6 +102,7 @@ files:
100
102
  - bin/myex
101
103
  - bin/number_files
102
104
  - bin/path
105
+ - bin/probe
103
106
  - bin/same_files
104
107
  - bin/search
105
108
  - bin/sedit
@@ -162,6 +165,7 @@ files:
162
165
  - lib/utils/find.rb
163
166
  - lib/utils/finder.rb
164
167
  - lib/utils/grepper.rb
168
+ - lib/utils/lines_file.rb
165
169
  - lib/utils/md5.rb
166
170
  - lib/utils/patterns.rb
167
171
  - lib/utils/version.rb
@@ -190,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
194
  version: '0'
191
195
  requirements: []
192
196
  rubyforge_project:
193
- rubygems_version: 1.8.7
197
+ rubygems_version: 1.8.6
194
198
  signing_key:
195
199
  specification_version: 3
196
200
  summary: Some useful command line utilities