ackr 0.1 → 0.1.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.
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