cookbook-reader 0.1.0
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/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +3 -0
- data/Gemfile +3 -0
- data/README.md +7 -0
- data/Rakefile +8 -0
- data/bin/cookbook-reader +5 -0
- data/lib/cookbook-reader/options.rb +37 -0
- data/lib/cookbook-reader/parser.rb +82 -0
- data/spec/options_spec.rb +9 -0
- data/spec/parser_spec.rb +9 -0
- metadata +57 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c20e1a28a6e11088e454f1a6d3737c86c429a200
|
4
|
+
data.tar.gz: 081ebe0411dd0bc89e8c534e71f986711161f456
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c5925023c2a9e33492b01956ddb5e7f154e7d52ce989bbfe50c6d558e4063ae0c5554c0097b10573ef84bf9c17cd49b12241750da6918eaafe2592a327efe822
|
7
|
+
data.tar.gz: ec431415fa83ca5222f7bbee205714e63d2f28ebc3434e24d1b90828e2d472c0bb0577e4dada5e48ce46e55977cc78d545c18085ed0425aeaa41bf8f36b5fed8
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
cookbook-reader
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.0
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
data/bin/cookbook-reader
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module CookbookReader
|
4
|
+
class Options
|
5
|
+
|
6
|
+
attr_reader :path_to_search
|
7
|
+
|
8
|
+
def initialize(argv)
|
9
|
+
parse(argv)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def parse(argv)
|
15
|
+
OptionParser.new do |opts|
|
16
|
+
opts.banner = "Usage: cookbook-reader --path path ..."
|
17
|
+
|
18
|
+
opts.on("-p", "--path path", String, "Path to search") do |path|
|
19
|
+
@path_to_search = path
|
20
|
+
end
|
21
|
+
|
22
|
+
opts.on("-h", "--help", "Show this message") do
|
23
|
+
puts opts
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
begin
|
28
|
+
argv = ["-h"] if argv.empty?
|
29
|
+
opts.parse!(argv)
|
30
|
+
rescue OptionParser::ParseError => e
|
31
|
+
STDERR.puts e.message, "\n", opts
|
32
|
+
exit(-1)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require_relative 'options'
|
2
|
+
module CookbookReader
|
3
|
+
class Parser
|
4
|
+
def initialize(argv)
|
5
|
+
@options = Options.new(argv)
|
6
|
+
@top_list = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
finder = Finder.from_file(@options.dictionary)
|
11
|
+
@options.words_to_find.each do |word|
|
12
|
+
anagrams = finder.lookup(word)
|
13
|
+
if anagrams
|
14
|
+
puts "Anagrams of #{word}: #{anagrams.join(', ')}"
|
15
|
+
else
|
16
|
+
puts "No anagrams of #{word} in #{@options.dictionary}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def parse
|
22
|
+
@metadata_list = Array.new
|
23
|
+
Dir.glob("#{@options.path_to_search}/**/metadata.rb") do |filename|
|
24
|
+
@metadata_list.push read_file filename
|
25
|
+
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def display_data
|
31
|
+
#pp @top_list
|
32
|
+
|
33
|
+
@top_list.each do |element|
|
34
|
+
puts "Cookbook: #{element['name']}\n"
|
35
|
+
puts " Dependancies:"
|
36
|
+
element['depends'].each do |name, version|
|
37
|
+
puts " #{name}, #{version}\n"
|
38
|
+
end
|
39
|
+
puts "\n"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
def read_file(filename)
|
45
|
+
@hash = {}
|
46
|
+
|
47
|
+
@depends_list = {}
|
48
|
+
File.open(filename) do |fp|
|
49
|
+
fp.each do |line|
|
50
|
+
key, value = line.chomp.split(" ")
|
51
|
+
key.strip!
|
52
|
+
value.strip!
|
53
|
+
key = key.chomp('"').reverse.chomp('"').reverse
|
54
|
+
value = value.chomp('"').reverse.chomp('"').reverse
|
55
|
+
|
56
|
+
if key =~ /depends/
|
57
|
+
@hash[key] = add_dependencies(line)
|
58
|
+
else
|
59
|
+
@hash[key] = value
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
@top_list.push @hash
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
def add_dependencies(line)
|
68
|
+
line.slice! "depends "
|
69
|
+
k, v = line.chomp.split(",")
|
70
|
+
v = "none" if v.nil?
|
71
|
+
k.strip!
|
72
|
+
v.strip!
|
73
|
+
v = v.chomp('"').reverse.chomp('"').reverse
|
74
|
+
v = v.chomp('"').reverse.chomp('"').reverse
|
75
|
+
k = k.chomp('"').reverse.chomp('"').reverse
|
76
|
+
k.strip!
|
77
|
+
v.strip!
|
78
|
+
@depends_list[k] = v
|
79
|
+
@depends_list
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/spec/parser_spec.rb
ADDED
metadata
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cookbook-reader
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kevin Young
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-12 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A gem that parses cookbook metadata
|
14
|
+
email: kevin@young.net
|
15
|
+
executables:
|
16
|
+
- cookbook-reader
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- ".ruby-gemset"
|
21
|
+
- ".ruby-version"
|
22
|
+
- ".travis.yml"
|
23
|
+
- Gemfile
|
24
|
+
- README.md
|
25
|
+
- Rakefile
|
26
|
+
- bin/cookbook-reader
|
27
|
+
- lib/cookbook-reader/options.rb
|
28
|
+
- lib/cookbook-reader/parser.rb
|
29
|
+
- spec/options_spec.rb
|
30
|
+
- spec/parser_spec.rb
|
31
|
+
homepage: http://rubygems.org/gems/cookbook-reader
|
32
|
+
licenses:
|
33
|
+
- MIT
|
34
|
+
metadata: {}
|
35
|
+
post_install_message:
|
36
|
+
rdoc_options: []
|
37
|
+
require_paths:
|
38
|
+
- lib
|
39
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
requirements: []
|
50
|
+
rubyforge_project:
|
51
|
+
rubygems_version: 2.2.0
|
52
|
+
signing_key:
|
53
|
+
specification_version: 4
|
54
|
+
summary: cookbook version parser
|
55
|
+
test_files:
|
56
|
+
- spec/options_spec.rb
|
57
|
+
- spec/parser_spec.rb
|