ackr 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,7 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- # todo: replace GEM by th gem name
4
-
5
3
  require 'rake'
6
4
  require 'rspec/core/rake_task'
7
5
 
@@ -21,15 +19,3 @@ task :reek do
21
19
  args = files.join(' ')
22
20
  sh "reek --quiet #{args} | ./reek.sed"
23
21
  end
24
-
25
- desc 'Build GEM & install it'
26
- task :install do
27
- sh "gem build GEM.gemspec"
28
- f = FileList['GEM*gem'].to_a
29
- sh "gem install #{f.first} --no-rdoc --no-ri"
30
- end
31
-
32
- desc 'Generate yard documentation for developpers'
33
- task :doc do
34
- exec 'yardoc --title "GEM Documentation" - NEWS COPYING VERSION'
35
- end
data/TODO CHANGED
@@ -1,6 +1,5 @@
1
1
  Écrire le readme
2
- write tests
3
- use reek
2
+ travis-ci
4
3
 
5
4
  ---------------------------
6
5
 
@@ -8,7 +7,8 @@ use reek
8
7
  [ok]case insensitive
9
8
  [ok]nom du fichier en couleur
10
9
  [ok]terme de la recherche en gras
11
- supprimer les espaces avant/après
10
+ [ok]ne pas chercher dans les dossiers/fichiers cachés
11
+ supprimer les espaces/tab avant/après
12
12
  1|.le point signale que un (ou des) espaces ont été supprimés
13
13
  une ligne sur le terminal fait 80 char max
14
14
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1
1
+ 0.1.1
data/bin/ackr CHANGED
@@ -16,5 +16,5 @@ if ARGV[0].nil?
16
16
  ackr /regex/
17
17
  "
18
18
  else
19
- Ackr::Finder.new(ARGV[0].dup).run
19
+ Ackr::Search.new(ARGV[0].dup).run
20
20
  end
data/lib/ackr.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- require 'ackr/finder'
3
+ require 'ackr/search'
4
4
  require 'ackr/colorizer'
5
+ require 'ackr/finder'
5
6
 
6
7
  module Ackr
7
8
  # Method taken from: https://github.com/djberg96/ptools
@@ -20,7 +21,8 @@ module Ackr
20
21
  # based on Perl's -B switch).
21
22
  #
22
23
  def self.binary?(file)
23
- s = (File.read(file, File.stat(file).blksize) || "").split(//)
24
- ((s.size - s.grep(" ".."~").size) / s.size.to_f) > 0.30
24
+ str = (File.read(file, File.stat(file).blksize) || "").split(//)
25
+ size = str.size
26
+ ((size - str.grep(" ".."~").size) / size.to_f) > 0.30
25
27
  end
26
28
  end
data/lib/ackr/finder.rb CHANGED
@@ -1,41 +1,23 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  module Ackr
4
- class Finder
5
4
 
6
- def initialize search_term
7
- @search_term = search_term.downcase
8
- end
5
+ # All 'find a file' relatives.
6
+ module Finder
9
7
 
10
- def run
11
- Dir.glob('**/*').each do |f|
12
- next if File.directory?(f)
13
- next if Ackr::binary?(f)
14
- @file = f
15
- search
8
+ # Public: Get all files to look for.
9
+ #
10
+ # Files of interest are those who are
11
+ # + not directory
12
+ # + not binary
13
+ # + not hidden
14
+ #
15
+ # Returns an Enumerator of String filename.
16
+ def self.all_files
17
+ Dir.glob('**/*').each do |file|
18
+ next if (File.directory?(file) || Ackr::binary?(file))
19
+ yield(file)
16
20
  end
17
21
  end
18
-
19
- private
20
-
21
- def search
22
- results = search_into_file
23
- unless results.empty?
24
- puts Colorizer::for_file(@file)
25
- results.each {|r| puts r}
26
- puts ""
27
- end
28
- end
29
-
30
- def search_into_file
31
- result = []
32
- File.readlines(@file).each_with_index do |line, i|
33
- if line.downcase.include?(@search_term)
34
- result << "#{'%4i' % i}| #{Colorizer::for_line(line, @search_term)}"
35
- end
36
- end
37
- result
38
- end
39
-
40
22
  end
41
23
  end
@@ -0,0 +1,48 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ module Ackr
4
+
5
+ # Search for an expression into all text files under
6
+ # current directory AND print results.
7
+ #
8
+ # FIXME Separate behaviours: search / print
9
+ class Search
10
+
11
+ # Public:
12
+ #
13
+ # search_term - The String to look for.
14
+ def initialize search_term
15
+ @search_term = search_term.downcase
16
+ end
17
+
18
+ # Public: Launch the search.
19
+ def run
20
+ Finder::all_files do |file|
21
+ @file = file
22
+ search
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def search
29
+ results = search_into_file
30
+ unless results.empty?
31
+ puts Colorizer::for_file(@file)
32
+ results.each {|res| puts res}
33
+ puts ""
34
+ end
35
+ end
36
+
37
+ def search_into_file
38
+ result = []
39
+ File.readlines(@file).each_with_index do |line, idx|
40
+ if line.downcase.include?(@search_term)
41
+ result << "#{'%4i' % (idx + 1)}| #{Colorizer::for_line(line, @search_term)}"
42
+ end
43
+ end
44
+ result
45
+ end
46
+
47
+ end
48
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ackr
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -36,6 +36,7 @@ extra_rdoc_files: []
36
36
  files:
37
37
  - lib/ackr.rb
38
38
  - lib/ackr/finder.rb
39
+ - lib/ackr/search.rb
39
40
  - lib/ackr/colorizer.rb
40
41
  - bin/ackr
41
42
  - VERSION