code_lister 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.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/Guardfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +79 -0
- data/Rakefile +25 -0
- data/bin/code_lister +4 -0
- data/code_lister.gemspec +27 -0
- data/lib/code_lister/cli.rb +76 -0
- data/lib/code_lister/code_lister.rb +54 -0
- data/lib/code_lister/core_ext/hash.rb +35 -0
- data/lib/code_lister/logger.rb +10 -0
- data/lib/code_lister/main.rb +35 -0
- data/lib/code_lister/version.rb +3 -0
- data/lib/code_lister.rb +5 -0
- data/spec/code_lister/code_lister_spec.rb +47 -0
- data/spec/fixtures/demo1.xxx.rb +1 -0
- data/spec/fixtures/demo2.xxx.rb +1 -0
- data/spec/fixtures/java/demo3.xxx.java +1 -0
- data/spec/fixtures/java/demo4.xxx.java +1 -0
- data/spec/spec_helper.rb +20 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 69fbd03709c968f2a211b04e2d898084771ba634
|
4
|
+
data.tar.gz: 271e923a1e2015a46cb12ecd3dc8e7d13aaaade0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c6c9d6e184576b967e474c95726ca35fa41939a6cf1f19d263a97abb051b4c15407cf9b95150649b7cdf6862c3811a1a6f459346057b5fa9d69e71a3602495ee
|
7
|
+
data.tar.gz: cef3c70b228a91969f011654af1566f63bca5f9a0e4cc9628d436275cb06a3a5f34a5352ca0ea840a3fd9916d3b3c51b1bd3fa87ec6b6d97a8b8165342a357e8
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.1
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
guard :rspec do
|
4
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Burin Choomnuan
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
## code_lister
|
2
|
+
|
3
|
+
This is the simple gem to search/filter the files based on simple criteria.
|
4
|
+
It provides the functionality similar to `find` command in Linux/Unix system.
|
5
|
+
|
6
|
+
Initially it was part of my internal project. I extracted this out as a gem so
|
7
|
+
that I can re-use it in other project. I hope you will find it useful.
|
8
|
+
|
9
|
+
### Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
gem 'code_lister'
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install code_lister
|
22
|
+
|
23
|
+
### Usage
|
24
|
+
|
25
|
+
#### Using as CLI interface
|
26
|
+
|
27
|
+
List all pdf and epub files in the `/opts/downloads/` directory recursively
|
28
|
+
|
29
|
+
```sh
|
30
|
+
$code_lister find --base-dir /opt/downloads/ --exts pdf epub --recursive
|
31
|
+
```
|
32
|
+
#### Using as ruby library
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
require 'code_lister'
|
36
|
+
include CodeLister
|
37
|
+
# To search for everything that ends in '*.java' and '*.rb" recursively
|
38
|
+
list1 = CodeLister.files(base_dir: "spec/fixtures", extensions: %w(rb java), recursive: true)
|
39
|
+
puts list1
|
40
|
+
```
|
41
|
+
|
42
|
+
### Development/Testing
|
43
|
+
|
44
|
+
```sh
|
45
|
+
git clone git@github.com/agilecreativity/code_lister.git
|
46
|
+
bundle
|
47
|
+
rake -T
|
48
|
+
|
49
|
+
# Play around with it using Pry
|
50
|
+
rake pry
|
51
|
+
|
52
|
+
# Or play around with it using IRB
|
53
|
+
rake irb
|
54
|
+
```
|
55
|
+
|
56
|
+
From inside `Pry` or `IRB`
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
#include CodeLister
|
60
|
+
# To search for everything that ends in '*.java' and '*.rb" recursively
|
61
|
+
list1 = CodeLister.files(base_dir: "spec/fixtures", extensions: %w(rb java), recursive: true)
|
62
|
+
puts list1
|
63
|
+
|
64
|
+
# To filter out the result list
|
65
|
+
list2 = CodeLister.filter(list1, inc_words: %w(final complete), exc_words: %w(demo test))
|
66
|
+
```
|
67
|
+
### Changelogs
|
68
|
+
|
69
|
+
#### 0.0.2
|
70
|
+
|
71
|
+
- initial release
|
72
|
+
|
73
|
+
## Contributing
|
74
|
+
|
75
|
+
1. Fork it ( http://github.com/<my-github-username>/code_lister/fork )
|
76
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
77
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
78
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
79
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
6
|
+
task :default => :spec
|
7
|
+
|
8
|
+
task :irb do
|
9
|
+
require 'irb'
|
10
|
+
require 'awesome_print'
|
11
|
+
require 'irb/completion'
|
12
|
+
require 'code_lister'
|
13
|
+
include CodeLister
|
14
|
+
ARGV.clear
|
15
|
+
IRB.start
|
16
|
+
end
|
17
|
+
|
18
|
+
task :pry do
|
19
|
+
require 'pry'
|
20
|
+
require 'awesome_print'
|
21
|
+
require 'code_lister'
|
22
|
+
include CodeLister
|
23
|
+
ARGV.clear
|
24
|
+
Pry.start
|
25
|
+
end
|
data/bin/code_lister
ADDED
data/code_lister.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'code_lister/version'
|
5
|
+
|
6
|
+
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{Search, filter files easily using the power of ruby}
|
12
|
+
spec.description = %q{Use ruby library to search/filter files}
|
13
|
+
spec.homepage = "https://github.com/agilecreativity/code_lister"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
spec.add_runtime_dependency "thor"
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
21
|
+
spec.add_development_dependency "rake", "~> 10.1"
|
22
|
+
spec.add_development_dependency "rspec", "~> 2.14"
|
23
|
+
spec.add_development_dependency "guard-rspec", "~> 4.2"
|
24
|
+
spec.add_development_dependency "awesome_print", "~> 1.2"
|
25
|
+
spec.add_development_dependency "pry", "~> 0.9"
|
26
|
+
spec.add_development_dependency "fuubar", "~> 1.3"
|
27
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require_relative 'core_ext/hash'
|
3
|
+
module CodeLister
|
4
|
+
class CLI < Thor
|
5
|
+
|
6
|
+
desc "find", "List files by extension, patterns, and other criteria"
|
7
|
+
|
8
|
+
method_option :base_dir,
|
9
|
+
aliases: "-b",
|
10
|
+
desc: "Base directory",
|
11
|
+
default: Dir.pwd
|
12
|
+
|
13
|
+
method_option :exts,
|
14
|
+
aliases: "-e",
|
15
|
+
desc: "List of extensions to search for",
|
16
|
+
type: :array,
|
17
|
+
default: %w(rb)
|
18
|
+
|
19
|
+
method_option :inc_words,
|
20
|
+
aliases: "-i",
|
21
|
+
desc: "List of words to be included in the result if any",
|
22
|
+
type: :array,
|
23
|
+
default: []
|
24
|
+
|
25
|
+
method_option :exc_words,
|
26
|
+
aliases: "-x",
|
27
|
+
desc: "List of words to be excluded from the result if any",
|
28
|
+
type: :array,
|
29
|
+
default: []
|
30
|
+
|
31
|
+
method_option :recursive,
|
32
|
+
aliases: "-r",
|
33
|
+
desc: "Search for files recursively",
|
34
|
+
type: :boolean,
|
35
|
+
default: false
|
36
|
+
|
37
|
+
method_option :version,
|
38
|
+
aliases: "-v",
|
39
|
+
desc: "Display version information",
|
40
|
+
type: :boolean,
|
41
|
+
default: false
|
42
|
+
def find
|
43
|
+
|
44
|
+
if options[:version]
|
45
|
+
puts "You are using CodeLister Version #{CodeLister::VERSION}"
|
46
|
+
exit
|
47
|
+
end
|
48
|
+
|
49
|
+
CodeLister::Main.run(options.symbolize_keys)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Note: we don't use help so that we can run :r !./bin/code_lister help find
|
53
|
+
# to see the update help if we have to without commenting out
|
54
|
+
desc "usage", "Display help screen"
|
55
|
+
def usage
|
56
|
+
puts <<-EOS
|
57
|
+
Usage:
|
58
|
+
code_lister find
|
59
|
+
|
60
|
+
Options:
|
61
|
+
-b, [--base-dir=BASE_DIR] # Base directory
|
62
|
+
# Default: /Users/agilecreativity/Dropbox/spikes/code_explorer
|
63
|
+
-e, [--exts=one two three] # List of extensions to search for
|
64
|
+
# Default: ["rb"]
|
65
|
+
-i, [--inc-words=one two three] # List of words to be included in the result if any
|
66
|
+
-x, [--exc-words=one two three] # List of words to be excluded from the result if any
|
67
|
+
-r, [--recursive], [--no-recursive] # Search for files recursively
|
68
|
+
-v, [--version], [--no-version] # Display version information
|
69
|
+
|
70
|
+
List files based on select multiple criteria
|
71
|
+
EOS
|
72
|
+
end
|
73
|
+
|
74
|
+
default_task :usage
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module CodeLister
|
2
|
+
|
3
|
+
CustomError = Class.new(StandardError)
|
4
|
+
|
5
|
+
class << self
|
6
|
+
|
7
|
+
# List files base on some extension
|
8
|
+
def files(args = {})
|
9
|
+
opts = {
|
10
|
+
base_dir: Dir.pwd,
|
11
|
+
recursive: false,
|
12
|
+
exts: [],
|
13
|
+
}.merge(args)
|
14
|
+
|
15
|
+
base_dir = opts[:base_dir]
|
16
|
+
raise CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exists?(base_dir)
|
17
|
+
wildcard = opts[:recursive] ? '**' : ''
|
18
|
+
exts = opts[:exts]
|
19
|
+
patterns = File.join(base_dir, wildcard, "*.{#{exts.join(",")}}")
|
20
|
+
|
21
|
+
Dir.glob(patterns).sort
|
22
|
+
end
|
23
|
+
|
24
|
+
# Filter out the list based on given list of words
|
25
|
+
def filter(file_list, args = {})
|
26
|
+
opts = {
|
27
|
+
inc_words: [],
|
28
|
+
exc_words: []
|
29
|
+
}.merge(args)
|
30
|
+
|
31
|
+
inc_words = opts[:inc_words]
|
32
|
+
exc_words = opts[:exc_words]
|
33
|
+
|
34
|
+
take_any!(file_list, inc_words)
|
35
|
+
drop_any!(file_list, exc_words)
|
36
|
+
|
37
|
+
file_list
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def take_any!(file_list, words)
|
43
|
+
# need to take only the filename
|
44
|
+
file_list.select! { |f| words.any? { |w| /#{w}/ =~ File.basename(f) } } unless words.empty?
|
45
|
+
file_list
|
46
|
+
end
|
47
|
+
|
48
|
+
def drop_any!(file_list, words)
|
49
|
+
file_list.delete_if { |f| words.any? { |w| /#{w}/ =~ File.basename(f) } } unless words.empty?
|
50
|
+
file_list
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class Hash
|
2
|
+
|
3
|
+
# File activesupport/lib/active_support/core_ext/hash/keys.rb
|
4
|
+
#
|
5
|
+
# hash = { name: 'Rob', age: '28' }
|
6
|
+
# hash.transform_keys{ |key| key.to_s.upcase }
|
7
|
+
# => { "NAME" => "Rob", "AGE" => "28" }
|
8
|
+
def transform_keys
|
9
|
+
result = {}
|
10
|
+
each_key do |key|
|
11
|
+
result[yield(key)] = self[key]
|
12
|
+
end
|
13
|
+
result
|
14
|
+
end
|
15
|
+
|
16
|
+
def transform_keys!(&block)
|
17
|
+
keys.each do |key|
|
18
|
+
value = delete(key)
|
19
|
+
self[yield(key)] = value.is_a?(Hash) ? value.transform_keys!(&block) : value
|
20
|
+
end
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
# hash = { 'name' => 'Rob', 'age' => '28' }
|
25
|
+
# hash.symbolize_keys
|
26
|
+
# => { name: "Rob", age: "28" }
|
27
|
+
def symbolize_keys
|
28
|
+
transform_keys{ |key| key.to_sym rescue key }
|
29
|
+
end
|
30
|
+
|
31
|
+
# File activesupport/lib/active_support/core_ext/hash/keys.rb, line 135
|
32
|
+
def symbolize_keys!
|
33
|
+
transform_keys!{ |key| key.to_sym rescue key }
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module CodeLister
|
2
|
+
class Main
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def run(options = {})
|
6
|
+
args = default_options.merge(options)
|
7
|
+
|
8
|
+
files = CodeLister.files(args)
|
9
|
+
|
10
|
+
## Now filter out the list any?
|
11
|
+
inc_words = args.fetch(:inc_words, [])
|
12
|
+
exc_words = args.fetch(:exc_words, [])
|
13
|
+
|
14
|
+
files = CodeLister.filter(files, inc_words: inc_words,
|
15
|
+
exc_words: exc_words)
|
16
|
+
# TODO: remove when done!
|
17
|
+
puts files
|
18
|
+
|
19
|
+
files
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def default_options
|
25
|
+
options = {
|
26
|
+
base_dir: Dir.pwd,
|
27
|
+
recursive: false,
|
28
|
+
inc_words: [],
|
29
|
+
exc_words: [],
|
30
|
+
exts: []
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/code_lister.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
describe CodeLister do
|
3
|
+
|
4
|
+
let(:file_list) {
|
5
|
+
CodeLister.files(base_dir: 'spec/fixtures', exts: %w(xxx.rb), recursive: true)
|
6
|
+
}
|
7
|
+
|
8
|
+
context "#files" do
|
9
|
+
it 'works with invalid input' do
|
10
|
+
expect{ CodeLister.files('bad-args')}.to raise_error
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'works with valid input' do
|
14
|
+
expect(CodeLister.files(base_dir: 'spec/fixtures', exts: %w(xxx.rb))).to eq ['spec/fixtures/demo1.xxx.rb',
|
15
|
+
'spec/fixtures/demo2.xxx.rb']
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns empty result if no match found' do
|
19
|
+
expect(CodeLister.files(base_dir: 'spec/fixtures', exts: %w(invalid-extension))).to eq []
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "#filter" do
|
24
|
+
it "works with empty filter inputs" do
|
25
|
+
expect(CodeLister.filter(file_list, inc_words: [], exc_words: [])).to eq file_list
|
26
|
+
end
|
27
|
+
|
28
|
+
it "works with unique match" do
|
29
|
+
expect(CodeLister.filter(file_list, inc_words: %w(demo1))).to eq ["spec/fixtures/demo1.xxx.rb"]
|
30
|
+
end
|
31
|
+
|
32
|
+
it "works with multiples matches" do
|
33
|
+
expect(CodeLister.filter(file_list, inc_words: %w(demo))).to eq ["spec/fixtures/demo1.xxx.rb",
|
34
|
+
"spec/fixtures/demo2.xxx.rb"]
|
35
|
+
|
36
|
+
expect(CodeLister.filter(file_list, inc_words: %w(xxx))).to eq ["spec/fixtures/demo1.xxx.rb",
|
37
|
+
"spec/fixtures/demo2.xxx.rb"]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "filters out the words that we don't want" do
|
41
|
+
expect(CodeLister.filter(file_list, exc_words: %w(demo1))).to eq ["spec/fixtures/demo2.xxx.rb"]
|
42
|
+
|
43
|
+
expect(CodeLister.filter(file_list, exc_words: %w(xxx))).to eq []
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# file: spec/fixtures/demo1.xxx.rb
|
@@ -0,0 +1 @@
|
|
1
|
+
# file: spec/fixtures/demo2.xxx.rb
|
@@ -0,0 +1 @@
|
|
1
|
+
// file: test/fixtures/java/demo3.java
|
@@ -0,0 +1 @@
|
|
1
|
+
// file: test/fixtures/java/demo4.java
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
config.filter_run :focus
|
11
|
+
|
12
|
+
# Run specs in random order to surface order dependencies. If you find an
|
13
|
+
# order dependency and want to debug it, you can fix the order by providing
|
14
|
+
# the seed, which is printed after each run.
|
15
|
+
# --seed 1234
|
16
|
+
config.order = 'random'
|
17
|
+
end
|
18
|
+
|
19
|
+
require_relative "../lib/code_lister"
|
20
|
+
include CodeLister
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: code_lister
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Burin Choomnuan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.14'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.14'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.2'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '4.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: awesome_print
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.2'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.2'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.9'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.9'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: fuubar
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.3'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.3'
|
125
|
+
description: Use ruby library to search/filter files
|
126
|
+
email:
|
127
|
+
- agilecreativity@gmail.com
|
128
|
+
executables:
|
129
|
+
- code_lister
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- ".gitignore"
|
134
|
+
- ".rspec"
|
135
|
+
- ".ruby-version"
|
136
|
+
- Gemfile
|
137
|
+
- Guardfile
|
138
|
+
- LICENSE.txt
|
139
|
+
- README.md
|
140
|
+
- Rakefile
|
141
|
+
- bin/code_lister
|
142
|
+
- code_lister.gemspec
|
143
|
+
- lib/code_lister.rb
|
144
|
+
- lib/code_lister/cli.rb
|
145
|
+
- lib/code_lister/code_lister.rb
|
146
|
+
- lib/code_lister/core_ext/hash.rb
|
147
|
+
- lib/code_lister/logger.rb
|
148
|
+
- lib/code_lister/main.rb
|
149
|
+
- lib/code_lister/version.rb
|
150
|
+
- spec/code_lister/code_lister_spec.rb
|
151
|
+
- spec/fixtures/demo1.xxx.rb
|
152
|
+
- spec/fixtures/demo2.xxx.rb
|
153
|
+
- spec/fixtures/java/demo3.xxx.java
|
154
|
+
- spec/fixtures/java/demo4.xxx.java
|
155
|
+
- spec/spec_helper.rb
|
156
|
+
homepage: https://github.com/agilecreativity/code_lister
|
157
|
+
licenses:
|
158
|
+
- MIT
|
159
|
+
metadata: {}
|
160
|
+
post_install_message:
|
161
|
+
rdoc_options: []
|
162
|
+
require_paths:
|
163
|
+
- lib
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
requirements: []
|
175
|
+
rubyforge_project:
|
176
|
+
rubygems_version: 2.2.2
|
177
|
+
signing_key:
|
178
|
+
specification_version: 4
|
179
|
+
summary: Search, filter files easily using the power of ruby
|
180
|
+
test_files:
|
181
|
+
- spec/code_lister/code_lister_spec.rb
|
182
|
+
- spec/fixtures/demo1.xxx.rb
|
183
|
+
- spec/fixtures/demo2.xxx.rb
|
184
|
+
- spec/fixtures/java/demo3.xxx.java
|
185
|
+
- spec/fixtures/java/demo4.xxx.java
|
186
|
+
- spec/spec_helper.rb
|
187
|
+
has_rdoc:
|