metallum-cli 0.0.5

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 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: []