code_lister 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7f7fe08ef0bc03253415dda3acbd6ae7814d9c6
4
- data.tar.gz: 659a64ce615e0df1273a83cbe36baaef0fdf196b
3
+ metadata.gz: 5bc886d3f4e601c170e30c41a311f61e37bfecac
4
+ data.tar.gz: e909544107643a2bf2b816edc3bf395f807bbc25
5
5
  SHA512:
6
- metadata.gz: 263d110b042e0a750529a5e65ec33253469f731811b5e0e5d6047dfba6c52068899dab3479c41ac7d376891e69ddac9b26f11a4f508267f5359019592dd1373b
7
- data.tar.gz: 2ce6aad64f267b7a348f9b566260067a97624d96ff3c4572b88503af8c5b6b14139fcd98d08e3feb91cbccb152fa5909ae596790c9fd97015b50434913715183
6
+ metadata.gz: 38ced4389d381c0826fefc77c3733db019f4c3a2a8a086d4602559e4f5d1de2124b9daad61c214cdf594a3d665826dafacb4612ab68ea5c34be43e7abb8255af
7
+ data.tar.gz: 3c2ae7129c7db2ebab95d10a40c1563041d9ed2e319f5fd0d04fc32b001352b742f54f540657e59f7d68fa5fbc963c5c3cb3c7a13564b512f23cf75fb6e2a7b7
data/.gitignore CHANGED
@@ -15,6 +15,6 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
-
19
18
  # custom ignores
20
19
  index.html
20
+ .ruby-version
@@ -1,10 +1,97 @@
1
- # This is the configuration used to check the rubocop source code.
2
1
  AllCops:
3
2
  Include:
4
- - '**/Rakefile'
5
- - '**/Gemfile'
6
- - lib/**/*
3
+ - Gemfile
4
+ - Guardfile
5
+ - Rakefile
7
6
  - bin/*
8
- Exclude:
9
- - .rubocop.yml
10
- inherit_from: rubocop-todo.yml
7
+ - code_lister.gemspec
8
+ - lib/**/*.rb
9
+ - spec/**/*.rb
10
+
11
+ # Avoid long parameter lists
12
+ ParameterLists:
13
+ Max: 5
14
+ CountKeywordArgs: true
15
+
16
+ MethodLength:
17
+ CountComments: false
18
+ Max: 15
19
+
20
+ # Avoid more than `Max` levels of nesting.
21
+ BlockNesting:
22
+ Max: 4
23
+
24
+ # Align with the style guide.
25
+ CollectionMethods:
26
+ PreferredMethods:
27
+ collect: 'map'
28
+ inject: 'reduce'
29
+ find: 'detect'
30
+ find_all: 'select'
31
+
32
+ # Do not force public/protected/private keyword to be indented at the same
33
+ # level as the def keyword. My personal preference is to outdent these keywords
34
+ # because I think when scanning code it makes it easier to identify the
35
+ # sections of code and visually separate them. When the keyword is at the same
36
+ # level I think it sort of blends in with the def keywords and makes it harder
37
+ # to scan the code and see where the sections are.
38
+ AccessModifierIndentation:
39
+ Enabled: false
40
+
41
+ # Limit line length
42
+ LineLength:
43
+ Enabled: false
44
+
45
+ # Disable documentation checking until a class needs to be documented once
46
+ Documentation:
47
+ Enabled: false
48
+
49
+ # Enforce Ruby 1.8-compatible hash syntax
50
+ HashSyntax:
51
+ Enabled: true
52
+
53
+ # No spaces inside hash literals
54
+ SpaceInsideHashLiteralBraces:
55
+ EnforcedStyle: no_space
56
+
57
+ # Allow dots at the end of lines
58
+ DotPosition:
59
+ Enabled: false
60
+
61
+ # Don't require magic comment at the top of every file
62
+ Encoding:
63
+ Enabled: false
64
+
65
+ # Enforce outdenting of access modifiers (i.e. public, private, protected)
66
+ AccessModifierIndentation:
67
+ EnforcedStyle: outdent
68
+
69
+ EmptyLinesAroundAccessModifier:
70
+ Enabled: true
71
+
72
+ # Align ends correctly
73
+ EndAlignment:
74
+ AlignWith: variable
75
+
76
+ # Indentation of when/else
77
+ CaseIndentation:
78
+ IndentWhenRelativeTo: end
79
+ IndentOneStep: false
80
+
81
+ DoubleNegation:
82
+ Enabled: false
83
+
84
+ PercentLiteralDelimiters:
85
+ PreferredDelimiters:
86
+ '%': ()
87
+ '%i': ()
88
+ '%q': ()
89
+ '%Q': ()
90
+ '%r': '{}'
91
+ '%s': ()
92
+ '%w': '[]'
93
+ '%W': '[]'
94
+ '%x': ()
95
+
96
+ StringLiterals:
97
+ EnforcedStyle: double_quotes
@@ -1,5 +1,11 @@
1
1
  ### Changelogs
2
2
 
3
+ #### 0.1.1
4
+
5
+ - Simplify the CLI interface
6
+ - Fix the style with rubocop
7
+ - Use double quote for string
8
+
3
9
  #### 0.1.0
4
10
 
5
11
  - First release based on [Semantic Versioning][]
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in code_explorer.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -33,14 +33,14 @@ Or install it yourself as:
33
33
  List all pdf and epub files in the `/opts/downloads/` directory recursively
34
34
 
35
35
  ```sh
36
- $code_lister find --base-dir /opt/downloads/ --exts pdf epub --recursive
36
+ $code_lister --base-dir /opt/downloads/ --exts pdf epub --recursive
37
37
  ```
38
38
 
39
39
  Usage/Synopsis:
40
40
 
41
41
  ```
42
42
  Usage:
43
- code_lister find [OPTIONS]
43
+ code_lister [OPTIONS]
44
44
 
45
45
  Options:
46
46
  -b, [--base-dir=BASE_DIR] # Base directory
@@ -63,10 +63,11 @@ Example Usage:
63
63
  - Find all java and ruby files in a given directory
64
64
 
65
65
  ```ruby
66
-
67
66
  # find all files that ends with '*.java' or '*.rb' in a given directory
68
- #
69
- # ./bin/code_lister find -b spec/fixtures/ -e rb java
67
+ code_lister -b spec/fixtures/ -e rb java
68
+ ```
69
+
70
+ Output:
70
71
 
71
72
  ```
72
73
  ./demo1.xxx.rb
@@ -81,17 +82,27 @@ Example Usage:
81
82
 
82
83
  - Find all java java and ruby files but include only the files that contain the word `xxx`
83
84
 
84
- ```ruby
85
- # ./bin/code_lister find -b spec/fixtures/ -e rb java -n xxx
85
+ ```sh
86
+ $code_lister -b spec/fixtures/ -e rb java -n xxx
87
+ ```
88
+
89
+ Output:
86
90
 
91
+ ```
87
92
  ./demo1.xxx.rb
88
93
  ./demo2.xxx.rb
89
94
  ./java/demo3.xxx.java
90
95
  ./java/demo4.xxx.java
91
96
  ```
97
+
92
98
  - Same as previous step, but filter out result that contain the word `demo3` or `demo4`
99
+
93
100
  ```ruby
94
- # ./bin/code_lister find -b spec/fixtures/ -e rb java -n xxx -x demo3 demo4
101
+ $code_lister -b spec/fixtures/ -e rb java -n xxx -x demo3 demo4
102
+ ```
103
+ Output:
104
+
105
+ ```
95
106
  ./demo1.xxx.rb
96
107
  ./demo2.xxx.rb
97
108
  ```
@@ -99,7 +110,7 @@ Example Usage:
99
110
  #### Using as ruby library
100
111
 
101
112
  This is probably the proper way to utilize the library as the CLI only serve to
102
- demonstrate purpose only.
113
+ show the result in the console.
103
114
 
104
115
  Example of how you might use the library in your own project.
105
116
 
@@ -129,6 +140,7 @@ rake -T
129
140
 
130
141
  # Play around with it using Pry
131
142
  rake pry
143
+ ```
132
144
 
133
145
  From inside `Pry`
134
146
 
data/Rakefile CHANGED
@@ -1,15 +1,15 @@
1
- require 'bundler/gem_tasks'
1
+ require "bundler/gem_tasks"
2
2
  Bundler::GemHelper.install_tasks
3
3
 
4
- require 'rspec/core/rake_task'
4
+ require "rspec/core/rake_task"
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
7
  task default: :spec
8
8
 
9
9
  task :pry do
10
- require 'pry'
11
- require 'awesome_print'
12
- require 'code_lister'
10
+ require "pry"
11
+ require "awesome_print"
12
+ require "code_lister"
13
13
  include CodeLister
14
14
  ARGV.clear
15
15
  Pry.start
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative '../lib/code_lister'
2
+ require_relative "../lib/code_lister"
3
3
  include CodeLister
4
- CodeLister::CLI.start(ARGV)
4
+ if ARGV.empty?
5
+ CodeLister::CLI.start(%w[usage])
6
+ else
7
+ CodeLister::CLI.start(%w[find].concat(ARGV))
8
+ end
@@ -1,37 +1,35 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'code_lister/version'
5
-
4
+ require "code_lister/version"
6
5
  Gem::Specification.new do |spec|
7
- spec.name = 'code_lister'
8
- spec.version = CodeLister::VERSION
9
- spec.authors = ['Burin Choomnuan']
10
- spec.email = ['agilecreativity@gmail.com']
11
- spec.summary = %q{List/filter files like 'find then grep' command in Linux/Unix based system}
12
- spec.description = %q{List/filter files similar to 'find then grep' command in Linux/Unix based system}
13
- spec.homepage = 'https://github.com/agilecreativity/code_lister'
14
- spec.license = 'MIT'
15
- spec.files = Dir.glob("{bin,lib}/**/*") + %w(Gemfile
16
- Rakefile
17
- code_lister.gemspec
18
- README.md
19
- CHANGELOGS.md
20
- LICENSE
21
- .rubocop.yml
22
- .gitignore
23
- rubocop-todo.yml)
6
+ spec.name = "code_lister"
7
+ spec.version = CodeLister::VERSION
8
+ spec.authors = ["Burin Choomnuan"]
9
+ spec.email = ["agilecreativity@gmail.com"]
10
+ spec.summary = %q(List/filter files like 'find then grep' command in Linux/Unix based system)
11
+ spec.description = %q(List/filter files similar to 'find then grep' command in Linux/Unix based system)
12
+ spec.homepage = "https://github.com/agilecreativity/code_lister"
13
+ spec.license = "MIT"
14
+ spec.files = Dir.glob("{bin,lib}/**/*") + %w[Gemfile
15
+ Rakefile
16
+ code_lister.gemspec
17
+ README.md
18
+ CHANGELOG.md
19
+ LICENSE
20
+ .rubocop.yml
21
+ .gitignore]
24
22
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
23
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
26
- spec.require_paths = ['lib']
27
- spec.add_runtime_dependency 'thor', '~> 0.19'
28
- spec.add_runtime_dependency 'agile_utils', '~> 0.1'
29
- spec.add_development_dependency 'bundler', '~> 1.6'
30
- spec.add_development_dependency 'rake', '~> 10.3'
31
- spec.add_development_dependency 'rspec', '~> 2.14'
32
- spec.add_development_dependency 'guard-rspec', '~> 4.2'
33
- spec.add_development_dependency 'awesome_print', '~> 1.2'
34
- spec.add_development_dependency 'pry', '~> 0.9'
35
- spec.add_development_dependency 'fuubar', '~> 1.3'
36
- spec.add_development_dependency 'rubocop', '~> 0.20'
24
+ spec.require_paths = ["lib"]
25
+ spec.add_runtime_dependency "thor", "~> 0.19"
26
+ spec.add_runtime_dependency "agile_utils", "~> 0.1"
27
+ spec.add_development_dependency "bundler", "~> 1.6"
28
+ spec.add_development_dependency "rake", "~> 10.3"
29
+ spec.add_development_dependency "rspec", "~> 2.14"
30
+ spec.add_development_dependency "guard-rspec", "~> 4.2"
31
+ spec.add_development_dependency "awesome_print", "~> 1.2"
32
+ spec.add_development_dependency "pry", "~> 0.9"
33
+ spec.add_development_dependency "fuubar", "~> 1.3"
34
+ spec.add_development_dependency "rubocop", "~> 0.20"
37
35
  end
@@ -1,5 +1,5 @@
1
- require_relative 'code_lister/version'
2
- require_relative 'code_lister/logger'
3
- require_relative 'code_lister/code_lister'
4
- require_relative 'code_lister/cli'
5
- require_relative 'code_lister/main'
1
+ require_relative "code_lister/version"
2
+ require_relative "code_lister/logger"
3
+ require_relative "code_lister/code_lister"
4
+ require_relative "code_lister/cli"
5
+ require_relative "code_lister/main"
@@ -1,8 +1,9 @@
1
- require 'thor'
2
- require 'agile_utils'
1
+ require "thor"
2
+ require "agile_utils"
3
3
  module CodeLister
4
4
  class CLI < Thor
5
- desc 'find', 'List files by extensions, patterns, and simple criteria'
5
+ # rubocop:disable AmbiguousOperator, LineLength
6
+ desc "find", "List files by extensions, patterns, and simple criteria"
6
7
  method_option *AgileUtils::Options::BASE_DIR
7
8
  method_option *AgileUtils::Options::EXTS
8
9
  method_option *AgileUtils::Options::NON_EXTS
@@ -22,11 +23,11 @@ module CodeLister
22
23
 
23
24
  # Note: we don't use help so that we can run :r !./bin/code_lister help find
24
25
  # to see the update help if we have to without commenting out
25
- desc 'usage', 'Display help screen'
26
+ desc "usage", "Display help screen"
26
27
  def usage
27
28
  puts <<-EOS
28
29
  Usage:
29
- code_lister find [OPTIONS]
30
+ code_lister
30
31
 
31
32
  Options:
32
33
  -b, [--base-dir=BASE_DIR] # Base directory
@@ -44,6 +45,7 @@ Options:
44
45
  List files by extensions, patterns, and simple criteria
45
46
  EOS
46
47
  end
48
+ # rubocop:enable AmbiguousOperator, LineLength
47
49
 
48
50
  default_task :usage
49
51
  end
@@ -15,15 +15,15 @@ module CodeLister
15
15
  # base_dir = opts[:base_dir]
16
16
  fail CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exist?(base_dir)
17
17
 
18
- wildcard = opts[:recursive] ? '**' : ''
18
+ wildcard = opts[:recursive] ? "**" : ""
19
19
  exts = opts[:exts]
20
20
  non_exts = opts[:non_exts]
21
21
 
22
- files_with_extension = Dir.glob(File.join(base_dir, wildcard, "*.{#{exts.join(',')}}"))
22
+ files_with_extension = Dir.glob(File.join(base_dir, wildcard, "*.{#{exts.join(",")}}"))
23
23
  files_without_extension = no_extension_files(base_dir, wildcard, non_exts)
24
24
  # remove the 'base_dir' with .
25
- files_with_extension.each { |f| f.gsub!(base_dir, '.') }
26
- files_without_extension.each { |f| f.gsub!(base_dir, '.') }
25
+ files_with_extension.each { |f| f.gsub!(base_dir, ".") }
26
+ files_without_extension.each { |f| f.gsub!(base_dir, ".") }
27
27
  # combine the result
28
28
  (files_with_extension + files_without_extension).sort
29
29
  end
@@ -42,7 +42,7 @@ module CodeLister
42
42
  file_list
43
43
  end
44
44
 
45
- private
45
+ private
46
46
 
47
47
  # List files that do not have the extension
48
48
  #
@@ -50,7 +50,7 @@ module CodeLister
50
50
  def no_extension_files(base_dir, wildcard, non_exts = [])
51
51
  list = []
52
52
  unless non_exts.empty?
53
- list = Dir.glob(File.join(base_dir, wildcard, "{#{non_exts.join(',')}}"))
53
+ list = Dir.glob(File.join(base_dir, wildcard, "{#{non_exts.join(",")}}"))
54
54
  end
55
55
  list
56
56
  end
@@ -1,4 +1,4 @@
1
- require 'logger'
1
+ require "logger"
2
2
  module CodeLister
3
3
  class << self
4
4
  attr_writer :logger
@@ -16,16 +16,16 @@ module CodeLister
16
16
  files
17
17
  end
18
18
 
19
- private
19
+ private
20
20
 
21
21
  def default_options
22
- { base_dir: Dir.pwd,
23
- recursive: true,
24
- ignore_case: true,
25
- inc_words: [],
26
- exc_words: [],
27
- exts: [],
28
- non_exts: [] }
22
+ {base_dir: Dir.pwd,
23
+ recursive: true,
24
+ ignore_case: true,
25
+ inc_words: [],
26
+ exc_words: [],
27
+ exts: [],
28
+ non_exts: []}
29
29
  end
30
30
  end
31
31
  end
@@ -1,3 +1,3 @@
1
1
  module CodeLister
2
- VERSION = '0.1.0'
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_lister
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burin Choomnuan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -161,7 +161,7 @@ extra_rdoc_files: []
161
161
  files:
162
162
  - ".gitignore"
163
163
  - ".rubocop.yml"
164
- - CHANGELOGS.md
164
+ - CHANGELOG.md
165
165
  - Gemfile
166
166
  - LICENSE
167
167
  - README.md
@@ -174,7 +174,6 @@ files:
174
174
  - lib/code_lister/logger.rb
175
175
  - lib/code_lister/main.rb
176
176
  - lib/code_lister/version.rb
177
- - rubocop-todo.yml
178
177
  homepage: https://github.com/agilecreativity/code_lister
179
178
  licenses:
180
179
  - MIT
@@ -1,23 +0,0 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2014-05-12 22:42:32 +1000 using RuboCop version 0.21.0.
3
- # The point is for the user to remove these configuration records
4
- # one by one as the offenses are removed from the code base.
5
- # Note that changes in the inspected code, or installation of new
6
- # versions of RuboCop, may require this file to be generated again.
7
-
8
- # Offense count: 8
9
- AmbiguousOperator:
10
- Enabled: false
11
-
12
- # Offense count: 5
13
- Documentation:
14
- Enabled: false
15
-
16
- # Offense count: 22
17
- LineLength:
18
- Max: 123
19
-
20
- # Offense count: 2
21
- # Configuration parameters: CountComments.
22
- MethodLength:
23
- Max: 16