metallum-cli 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8584b27cfece9e7a35e1478575dbcf0039d00065
4
+ data.tar.gz: f2a39ec7d6bc1dd136c6e55eb8afcc3de84a2660
5
+ SHA512:
6
+ metadata.gz: a101a606d234f04f6fa0a4d3c1a1d6b1526826c8fa41dd2cf2da9afce8de638c2298291664c27e95217be7f0db52a9abaab328d6ec018a57fa4363d80ad11917
7
+ data.tar.gz: a8f1808ecec2fbdc0fb54c463672b9f19ba524ecd5d2d13fca6c2cd02eb18ce9a554e3f9bc1a01be8f59533679ac37005aed04e4697e672e2e95732dbabc401c
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.gem
11
+ *.html
12
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Metallum-CLI
2
+
3
+ A simple gem to search for artists, albums and get more info about any content at [Metal Archives](http://www.metal-archives.com)
4
+
5
+ ## Usage
6
+
7
+ This script allows you to perform basic searches at metal-archives.
8
+
9
+ To show basic infor about a band:
10
+
11
+ ```
12
+ metallum-cli BAND
13
+ ```
14
+
15
+ To show its discography:
16
+
17
+ ```
18
+ metallum-cli BAND --discography all|main|demos|lives|misc
19
+ ```
20
+
21
+ For band mambers:
22
+
23
+ ```
24
+ metallum-cli BAND --members
25
+ ```
26
+
27
+ To show similar bands:
28
+
29
+ ```
30
+ metallum-cli BAND --similar
31
+ ```
32
+
33
+ To output band's related links: (passing w/o parameters show all links)
34
+
35
+ ```
36
+ metallum-cli BAND --links official|merchandise|unofficial|labels|tablatures
37
+ ```
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/metallum-cli ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require 'metallum-cli'
5
+
6
+ config = MetallumCli::Configuration.instance
7
+
8
+ MetallumCli::App.start
@@ -0,0 +1,9 @@
1
+ require 'metallum-cli/app'
2
+ require 'metallum-cli/version'
3
+ require 'metallum-cli/configuration'
4
+
5
+ module MetallumCli
6
+ def self.config
7
+ MetallumCli::Configuration.instance
8
+ end
9
+ end
@@ -0,0 +1,128 @@
1
+ require 'base64'
2
+ require 'metallum-cli/helpers/album'
3
+ require 'metallum-cli/helpers/artist'
4
+ require 'metallum-cli/helpers/band'
5
+ require 'metallum-cli/helpers/client'
6
+ require 'metallum-cli/helpers/url'
7
+ require 'nokogiri'
8
+ require 'thor'
9
+
10
+ module MetallumCli
11
+ class App < Thor
12
+ package_name 'metallum-cli'
13
+
14
+ desc "config", "Create config and edit with $EDITOR"
15
+ def config
16
+ Configuration.save
17
+ if !ENV['EDITOR'].to_s.empty? && !ENV['EDITOR'].nil?
18
+ exec "$EDITOR #{ENV['HOME']}/.metallumcli"
19
+ else
20
+ puts "$EDITOR is not set. Please type your editor:"
21
+ editor = STDIN.gets.chomp
22
+ exec "#{editor} #{ENV['HOME']}/.metallumcli"
23
+ end
24
+ end
25
+
26
+ desc "album", "Search for an album"
27
+ option :reviews, :type => :boolean
28
+ def album(*album)
29
+ result = Client.get_json Url.ALBUM album.join "_"
30
+ if result["aaData"].length > 1
31
+ puts "Your search returned the following albums:\n"
32
+ result["aaData"].each_with_index do |r, i|
33
+ album = Nokogiri::HTML(r[0]).css('a').inner_html
34
+ puts "#{i+1} -> #{album} | #{r[2]}\n"
35
+ end
36
+ puts "Select a album number:"
37
+ choice = STDIN.gets.chomp
38
+ album = Nokogiri::HTML(result["aaData"][choice.to_i - 1][1]).css('a')
39
+ album.map{ |link|
40
+ Album.show_album_page(Client.get_url(link['href']), options[:reviews])
41
+ }
42
+ # Client.get_url album
43
+ elsif result["aaData"].length == 1
44
+ album = Nokogiri::HTML(result["aaData"][0][1]).css('a')
45
+ album.map{ |link|
46
+ Album.show_album_page(Client.get_url(link['href']), options[:reviews])
47
+ }
48
+ else
49
+ puts "No reults found"
50
+ end
51
+ end
52
+
53
+ desc "artist", "Search for an artist"
54
+ option :band
55
+ def artist(*artist)
56
+ result = Client.get_json Url.ARTIST artist.join "_"
57
+ if result["aaData"].length > 1
58
+ puts "Your search returned the following artists:\n"
59
+ result["aaData"].each_with_index do |r, i|
60
+ artist = Nokogiri::HTML(r[0]).css('a').inner_html
61
+ puts "#{i+1} -> #{artist} | #{r[2]} | #{r[1]}\n"
62
+ end
63
+ puts "Select a artist number:"
64
+ choice = STDIN.gets.chomp
65
+ artist = Nokogiri::HTML(result["aaData"][choice.to_i - 1][0]).css('a')
66
+ artist.map{ |link|
67
+ Artist.show_artist_page(Client.get_url(link['href']), options[:band])
68
+ }
69
+ # Client.get_url artist
70
+ elsif result["aaData"].length == 1
71
+ artist = Nokogiri::HTML(result["aaData"][0][0]).css('a')
72
+ artist.map{ |link|
73
+ Artist.show_artist_page(Client.get_url(link['href']), options[:band])
74
+ }
75
+ else
76
+ puts "No reults found"
77
+ end
78
+ end
79
+
80
+ desc "band BAND NAME", "Search for a band"
81
+ option :discography
82
+ option :members
83
+ option :similar, :type => :boolean
84
+ option :links
85
+ def band(*band)
86
+ result = Client.get_json Url.BAND band.join "_"
87
+ if result["aaData"].length > 1
88
+ puts "Your search returned the following bands:\n"
89
+ result["aaData"].each_with_index do |r, i|
90
+ band = Nokogiri::HTML(r[0]).css('a').inner_html
91
+ puts "#{i+1} -> #{band} | #{r[2]} | #{r[1]}\n"
92
+ end
93
+ puts "Select a band number:"
94
+ choice = STDIN.gets.chomp
95
+ band = Nokogiri::HTML(result["aaData"][choice.to_i - 1][0]).css('a')
96
+ band.map{ |link|
97
+ Band.show_band_page(Client.get_url(link['href']), options[:discography], options[:members], options[:similar], options[:links])
98
+ }
99
+ # Client.get_url band
100
+ elsif result["aaData"].length == 1
101
+ band = Nokogiri::HTML(result["aaData"][0][0]).css('a')
102
+ band.map{ |link|
103
+ Band.show_band_page(Client.get_url(link['href']), options[:discography], options[:members], options[:similar], options[:links])
104
+ }
105
+ else
106
+ puts "No reults found"
107
+ end
108
+ end
109
+
110
+ desc "additions", "Latest additions"
111
+ def created
112
+ result = Client.get_json Url.CREATED
113
+ # File.write "out.json", result
114
+ result["aaData"].each do |r|
115
+ band = Nokogiri::HTML(r[1]).css('a').inner_html
116
+ country = Nokogiri::HTML(r[2]).css('a').inner_html
117
+ user = Nokogiri::HTML(r[5]).css('a').inner_html
118
+ puts "Band: #{band}"
119
+ puts "Country: #{country}"
120
+ puts "Genre: #{r[3]}"
121
+ puts "Added by user #{user} at #{r[4]}"
122
+ puts "\n"
123
+ end
124
+ puts "Total results: #{result["iTotalDisplayRecords"]}"
125
+ end
126
+
127
+ end
128
+ end
@@ -0,0 +1,24 @@
1
+ require 'yaml'
2
+ module MetallumCli
3
+ class Configuration
4
+ attr_accessor :lang
5
+
6
+ CONFIG_FILE = "#{ENV['HOME']}/.metallumcli"
7
+
8
+ def defaults
9
+ self.lang ||= 'en'
10
+ end
11
+
12
+ def self.instance
13
+ @instance ||= File.exists?(CONFIG_FILE) ? load_yml() : new.tap(&:defaults)
14
+ end
15
+
16
+ def self.load_yml
17
+ YAML.load_file(CONFIG_FILE)
18
+ end
19
+
20
+ def self.save
21
+ File.open(CONFIG_FILE, 'w+') { |f| f.write(instance.to_yaml) }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,63 @@
1
+ module MetallumCli
2
+ class Album
3
+
4
+ def self.show_album_page(html, reviews)
5
+ # File.write 'out.html', html
6
+ page = Nokogiri::HTML(html)
7
+ album_values = {}
8
+ album_keys = {0 => "Type", 1 => "Release date", 2 => "Catalog ID", 3 => "Label", 4 => "Format", 5 => "Reviews"}
9
+ page.css('div#album_info dd').each_with_index do |item, index|
10
+ album_values[album_keys[index]] = item.content.strip.split.join " "
11
+ end
12
+ puts "\n\n////#{page.css('h1.album_name').first.content}\\\\\\\\"
13
+ album_values.each do |k, v|
14
+ puts "#{k}: #{v}"
15
+ end
16
+ if reviews
17
+ show_album_reviews page.css('table#review_list')
18
+ end
19
+ end
20
+
21
+ def self.show_album_reviews(res)
22
+ reviews = []
23
+ single_review = []
24
+ links = []
25
+ album_keys = {0 => "Year", 1 => "Name", 2 => "Role"}
26
+ a = 0
27
+ res.css("td[nowrap=nowrap] a").each do |link|
28
+ links.push link['href']
29
+ end
30
+ res.css("td[nowrap=nowrap]").remove
31
+ res.css("td").each_with_index do |review, index|
32
+ i = (index + 4) % 4
33
+ single_review.push review.content.strip.split.join " "
34
+ if i == 3
35
+ reviews.push single_review
36
+ single_review = []
37
+ end
38
+ end
39
+ p reviews
40
+ puts "\n\n////Bands\\\\\\\\"
41
+ reviews.each_with_index do |review,i|
42
+ puts "#{i + 1} -> #{review.join " - "}"
43
+ end
44
+ print "Select the review of your choice, or press any other key to exit: "
45
+ choice = STDIN.gets.chomp
46
+ if choice.to_i > 0
47
+ show_album_review links[choice.to_i - 1]
48
+ end
49
+ end
50
+
51
+ def self.show_album_review(url)
52
+ page = Nokogiri::HTML Client.get_url url
53
+ puts "\n"
54
+ puts page.css('h3.reviewTitle').first.content.strip.split.join " "
55
+ puts "\n"
56
+ puts page.css('a.profileMenu').first.parent.content.strip.split.join " "
57
+ puts "\n"
58
+ puts page.css('div.reviewContent').first.content.strip.split.join " "
59
+ puts "\n"
60
+ end
61
+ end
62
+
63
+ end
@@ -0,0 +1,54 @@
1
+ module MetallumCli
2
+ class Artist
3
+
4
+ def self.show_artist_page(html, band)
5
+ # File.write 'out.html', html
6
+ page = Nokogiri::HTML(html)
7
+ artist_values = {}
8
+ biography = []
9
+ artist_keys = {0 => "Location", 1 => "Age", 2 => "Place of origin", 3 => "Gender"}
10
+ page.css('div#member_info dl dd').each_with_index do |item, index|
11
+ artist_values[artist_keys[index]] = item.content.strip.split.join " "
12
+ end
13
+ page.css('div.band_comment').css(".title_comment").remove
14
+ page.css('div.band_comment').each do |item|
15
+ biography.push item.content.strip.split.join " "
16
+ end
17
+ puts "\n\n////#{page.css('h1.band_member_name').first.content}\\\\\\\\"
18
+ artist_values.each do |k, v|
19
+ puts "#{k}: #{v}"
20
+ end
21
+ biography.each do |bio|
22
+ puts bio
23
+ end
24
+ if band
25
+ show_artist_bands page, band
26
+ end
27
+ end
28
+
29
+ def self.show_artist_bands(res, param)
30
+ bands = []
31
+ album = []
32
+ album_keys = {0 => "Year", 1 => "Name", 2 => "Role"}
33
+ a = 0
34
+ res.css("div#artist_tab_#{param} div.ui-tabs-panel-content div.member_in_band").each do |band|
35
+ bands.push band.css("h3.member_in_band_name").inner_text
36
+ band.css('table tr td').each_with_index do |item, index|
37
+ i = (index + 3) % 3
38
+ album.push "#{album_keys[i]}: #{item.content.strip.split.join " "}"
39
+ if i == 2
40
+ bands.push album
41
+ album = []
42
+ a += 1
43
+ end
44
+ end
45
+ end
46
+ puts "\n\n////Bands\\\\\\\\"
47
+ bands.each do |band|
48
+ puts band
49
+ puts "\n"
50
+ end
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,125 @@
1
+ module MetallumCli
2
+ class Band
3
+
4
+ def self.show_band_page(html, discography, members, similar, links)
5
+ # File.write 'out.html', html
6
+ page = Nokogiri::HTML(html)
7
+ band_values = {}
8
+ band_keys = {0 => "Country", 1 => "Location", 2 => "Status", 3 => "Active since", 4 => "Genre", 5 => "Theme", 6 => "Label", 7 => "Years active"}
9
+ page.css('div#band_stats dd').each_with_index do |item, index|
10
+ band_values[band_keys[index]] = item.content.strip.split.join " "
11
+ end
12
+ puts "\n\n////#{page.css('h1.band_name').first.content}\\\\\\\\"
13
+ band_values.each do |k, v|
14
+ puts "#{k}: #{v}"
15
+ end
16
+ if discography
17
+ sel = 0
18
+ case discography
19
+ when 'all' then sel = 1
20
+ when 'main' then sel = 2
21
+ when 'lives' then sel = 3
22
+ when 'demos' then sel = 4
23
+ when 'misc' then sel = 5
24
+ end
25
+ page.css("div#band_disco ul li:eq(#{sel}) a").map { |link|
26
+ show_band_discography link['href']
27
+ }
28
+ end
29
+ if members
30
+ show_band_members page, members
31
+ end
32
+ if similar
33
+ page.css("div#band_tab_discography").map do |prev_elem|
34
+ prev_elem.previous_element.css('li:eq(4) a').map do |link|
35
+ show_similar_bands "#{link['href']}?showMoreSimilar=1#Similar_artists"
36
+ end
37
+ end
38
+ end
39
+ if links
40
+ sel = ''
41
+ case links
42
+ when 'official' then sel = 'Official'
43
+ when 'merchandise' then sel = 'Official_merchandise'
44
+ when 'unofficial' then sel = 'Unofficial'
45
+ when 'labels' then sel = 'Labels'
46
+ when 'tablatures' then sel = 'Tablatures'
47
+ end
48
+ page.css("div#band_tab_discography").map do |prev_elem|
49
+ prev_elem.previous_element.css('li:eq(5) a').map do |link|
50
+ show_band_links link['href'], sel
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ def self.show_band_discography(url)
57
+ res = Nokogiri::HTML Client.get_url url
58
+ discography = []
59
+ discog_keys = {0 => "Name", 1 => "Type", 2 => "Year", 3 => "Reviews"}
60
+ res.css('tbody tr').each do |album|
61
+ album.css('td').map.with_index do |item, index|
62
+ discography.push "#{discog_keys[index]}: #{item.content.strip.split.join " "}"
63
+ end
64
+ end
65
+ puts "\n\n////Albums\\\\\\\\"
66
+ discography = Client.format_array discography, discog_keys
67
+ discography.each do |album|
68
+ puts album
69
+ end
70
+ # discography.each_with_index do |album, i|
71
+ # i += 1
72
+ # puts "#{album}"
73
+ # puts "\n" if i % 4 == 0
74
+ # end
75
+ end
76
+
77
+ def self.show_band_members(page, param)
78
+ members = [[],[],[]]
79
+ member_keys = {0 => "Name", 1 => "Instrument", 2 => "Bands"}
80
+ page.css("div#band_tab_members_#{param} div table tr td").each_with_index do |member, i|
81
+ members[i] = member.content.strip.split.join " "
82
+ end
83
+ puts "\n\n////Members\\\\\\\\"
84
+ members = Client.format_array members, member_keys
85
+ members.each do |member|
86
+ puts member
87
+ end
88
+ end
89
+
90
+ def self.show_similar_bands(url)
91
+ res = Nokogiri::HTML Client.get_url url
92
+ bands = []
93
+ band_keys = {0 => "Name", 1 => "Country", 2 => "Genre"}
94
+ res.css('tbody tr td').each do |band|
95
+ bands.push band.content.strip.split.join " "
96
+ end
97
+ puts "\n\n////Similar bands\\\\\\\\"
98
+ bands = Client.format_array bands, band_keys
99
+ bands.each do |band|
100
+ puts band
101
+ end
102
+ end
103
+
104
+ def self.show_band_links(url, param)
105
+ res = Nokogiri::HTML Client.get_url url
106
+ links = []
107
+ link_keys = {0 => "Name", 1 => "Country", 2 => "Genre"}
108
+ if param.eql? ""
109
+ res.css("table tr td a").each do |link|
110
+ links.push "#{link['title'].sub("Go to: ","")}: #{link['href']}"
111
+ end
112
+ else
113
+ res.css("table#linksTable#{param.capitalize} tr td a").each do |link|
114
+ links.push "#{link['title'].sub("Go to: ","")}: #{link['href']}"
115
+ end
116
+ end
117
+ puts "\n\n////Links\\\\\\\\"
118
+ links = Client.format_array links, link_keys
119
+ links.each do |link|
120
+ puts link
121
+ end
122
+ end
123
+
124
+ end
125
+ end
@@ -0,0 +1,62 @@
1
+ require 'metallum-cli/configuration'
2
+ require 'net/http'
3
+ require 'json'
4
+
5
+ module MetallumCli
6
+ class Client
7
+ SITE_URL = "http://www.metal-archives.com"
8
+
9
+ def self.lang
10
+ Configuration.instance.lang
11
+ end
12
+
13
+ def self.get(path)
14
+ uri = URI("#{SITE_URL}/#{path}")
15
+ req = Net::HTTP::Get.new(uri)
16
+
17
+ res = Net::HTTP.start(uri.hostname, uri.port) {|http|
18
+ http.request(req)
19
+ }
20
+
21
+ res
22
+ end
23
+
24
+ def self.get_url(path)
25
+ uri = URI(path)
26
+ req = Net::HTTP::Get.new(uri)
27
+
28
+ res = Net::HTTP.start(uri.hostname, uri.port) {|http|
29
+ http.request(req)
30
+ }
31
+
32
+ res.body
33
+ end
34
+
35
+ def self.get_json(path)
36
+ # puts "#{SITE_URL}/#{path}"
37
+ json_results "#{SITE_URL}/#{path}"
38
+ end
39
+
40
+ def self.json_results(url)
41
+ response = Net::HTTP.get_response(URI.parse(url))
42
+ data = response.body
43
+ JSON.parse(data)
44
+ end
45
+
46
+ def self.format_array(arr, indexes)
47
+ unique = indexes.length
48
+ formatted = []
49
+ aux = []
50
+ arr.each_with_index do |e, i|
51
+ aux.push e
52
+ if(i > 0 && i % unique == unique-1)
53
+ # aux[-1] += "\n\n"
54
+ formatted.push aux
55
+ aux = []
56
+ end
57
+ end
58
+ formatted
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,20 @@
1
+ module MetallumCli
2
+ class Url
3
+
4
+ def self.CREATED
5
+ "archives/ajax-band-list/selection/#{Time.now.year}-#{Time.now.month.to_s.rjust(2,'0')}/by/created//json/1?sEcho=1&iColumns=6&sColumns=&iDisplayStart=0&iDisplayLength=200&mDataProp_0=0&mDataProp_1=1&mDataProp_2=2&mDataProp_3=3&mDataProp_4=4&mDataProp_5=5&iSortCol_0=4&sSortDir_0=desc&iSortingCols=1&bSortable_0=true&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true"
6
+ end
7
+
8
+ def self.BAND(band)
9
+ "search/ajax-band-search/?field=name&query=#{band}&sEcho=1&iColumns=3&sColumns=&iDisplayStart=0&iDisplayLength=200&mDataProp_0=0&mDataProp_1=1&mDataProp_2=2"
10
+ end
11
+
12
+ def self.ARTIST(artist)
13
+ "search/ajax-artist-search/?field=alias&query=#{artist}&sEcho=1&iColumns=4&sColumns=&iDisplayStart=0"
14
+ end
15
+
16
+ def self.ALBUM(album)
17
+ "search/ajax-album-search/?field=title&query=#{album}&sEcho=1&iColumns=4&sColumns=&iDisplayStart=0"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ module MetallumCli
2
+ VERSION = '0.0.5'
3
+ end
@@ -0,0 +1,38 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'metallum-cli/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "metallum-cli"
7
+ spec.version = MetallumCli::VERSION
8
+ spec.authors = ["Rodrigo Muniz"]
9
+ spec.email = ["rodrigo.temiski1995@gmail.com"]
10
+
11
+ spec.summary = %q{CLI interface for Metal Archives searches}
12
+ spec.description = %q{find any information about any artist, band, song, album, whatever at Metal Archives}
13
+ spec.homepage = "https://github.com/muniz95/metallum-cli"
14
+ spec.license = "MIT"
15
+
16
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
+ # delete this section to allow pushing this gem to any host.
18
+ if spec.respond_to?(:metadata)
19
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
20
+ else
21
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
+ end
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ spec.bindir = "bin"
26
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+
29
+ # spec.add_dependency 'activesupport', '>= 3.2.0'
30
+ # spec.add_dependency 'colored'
31
+ spec.add_dependency 'thor'
32
+ spec.add_dependency 'nokogiri'
33
+ # spec.add_dependency 'hashie'
34
+ # spec.add_dependency 'faraday'
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "bundler", "~> 1.10"
37
+ spec.add_development_dependency 'pry'
38
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: metallum-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Rodrigo Muniz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-15 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: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
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.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: find any information about any artist, band, song, album, whatever at
84
+ Metal Archives
85
+ email:
86
+ - rodrigo.temiski1995@gmail.com
87
+ executables:
88
+ - metallum-cli
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ".gitignore"
93
+ - Gemfile
94
+ - README.md
95
+ - Rakefile
96
+ - bin/metallum-cli
97
+ - lib/metallum-cli.rb
98
+ - lib/metallum-cli/app.rb
99
+ - lib/metallum-cli/configuration.rb
100
+ - lib/metallum-cli/helpers/album.rb
101
+ - lib/metallum-cli/helpers/artist.rb
102
+ - lib/metallum-cli/helpers/band.rb
103
+ - lib/metallum-cli/helpers/client.rb
104
+ - lib/metallum-cli/helpers/url.rb
105
+ - lib/metallum-cli/version.rb
106
+ - metallum-cli.gemspec
107
+ homepage: https://github.com/muniz95/metallum-cli
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.4.6
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: CLI interface for Metal Archives searches
131
+ test_files: []