what_is_this 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1112bb7dbac5f06df1fe1f7ebde61e4168499cc60760a68a5cad074eaca11981
4
+ data.tar.gz: ffc5c584ea9a08f64a6e5946ac4e8768fde004c5c8ccf4f0ded93ab50d2c9d6b
5
+ SHA512:
6
+ metadata.gz: 16d3ada75e602b8104464c02bcf0bd2b8b4c368977dfe5dee3cb4af88625c80925b4d262e33753d0e3d0b0e71dd2ca8ad1e74765bb2241f993f3f9c6f1e2c0f9
7
+ data.tar.gz: 591a65e4f463af5ac6dceba653845c679323550fda7b4b52ce7c37958402c9e87201490ffc46d1b2e1278af276b1b4e4493d8e571ebf586428f9d3a9d1ea5f79
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in what_is_this.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,19 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ what_is_this (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ rake (13.0.6)
10
+
11
+ PLATFORMS
12
+ x86_64-linux
13
+
14
+ DEPENDENCIES
15
+ rake (~> 13.0)
16
+ what_is_this!
17
+
18
+ BUNDLED WITH
19
+ 2.2.33
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 D-Justice
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # WhatIsThis
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/what_is_this`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'what_is_this'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install what_is_this
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/what_is_this.
36
+
37
+ ## License
38
+
39
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ task default: %i[]
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "what_is_this"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/bin/what_is_this ADDED
@@ -0,0 +1,4 @@
1
+ #!/ usr/bin/env ruby
2
+ require_relative "../lib/what_is_this"
3
+
4
+ CLI.introduction
@@ -0,0 +1,138 @@
1
+ class CLI::AdvancedSearch
2
+ attr_accessor :name, :markup, :downloads
3
+ @@spacing = "\n\n\n"
4
+ @@message_spacing = " "
5
+ @@current_query = ""
6
+ @@page = 1
7
+
8
+ @@all = []
9
+
10
+ def initialize(name = nil, markup = nil, downloads = nil )
11
+ @name = name
12
+ @markup = markup
13
+ @downloads = downloads
14
+ @@all << self
15
+ end
16
+ def self.new_from_query
17
+ Approx_Scraper.approx_names(@doc).each_with_index do |each, index|
18
+ self.new(
19
+ Approx_Scraper.approx_names(@doc)[index],
20
+ Approx_Scraper.approx_markups(@doc)[index],
21
+ Approx_Scraper.approx_downloads(@doc)[index]
22
+ )
23
+ end
24
+ display_data
25
+ end
26
+
27
+ def self.advanced_search_properties
28
+ puts @@spacing + @@message_spacing + "This is advanced search, please input name, summary, description, downloads, and when it was last updated or put nothing to skip a section"
29
+ puts @@spacing + "Name: (ie: active OR action)"
30
+ name = gets.chomp
31
+ name != "" ? name = "name: #{name} " : name = ""
32
+
33
+ puts "Summary: (ie: ORM, NoSQL)"
34
+ summary = gets.chomp
35
+ summary != "" ? summary = "summary: #{summary} " : summary = ""
36
+
37
+ puts "Description: (ie: associations AND validations)"
38
+ description = gets.chomp
39
+ description != "" ? description = "description: #{description} " : description = ""
40
+
41
+ puts "Downloads: (ie: >20000)"
42
+ downloads = gets.chomp
43
+ downloads != "" ? downloads = "downloads: #{downloads} " : downloads = ""
44
+
45
+ puts "Last Updated: (ie: >2021-12-12)"
46
+ updated = gets.chomp
47
+ updated != "" ? updated = "updated: #{updated} " : updated = ""
48
+
49
+ query = CGI.escape((name + summary + description + downloads + updated).strip)
50
+
51
+ puts "YOUR QUERY IS: " + query
52
+
53
+ query.gsub!("++", "+")
54
+ @@current_query = query
55
+ self.advanced_search_scrape(query)
56
+ end
57
+
58
+ def self.advanced_search_scrape(query, page = 1)
59
+ url = "https://rubygems.org/search?page=#{page}&query=#{query}"
60
+ @doc = Nokogiri::HTML(open(url))
61
+ self.new_from_query
62
+
63
+ end
64
+ def self.retry
65
+ puts "Unable to complete request, please try again: "
66
+ advanced_search_properties
67
+ end
68
+ def self.restart
69
+ puts "Search another term? (y/n)"
70
+ input = gets.chomp.downcase
71
+ case input
72
+ when "y"
73
+ self.advanced_search_properties
74
+ when "n"
75
+ CLI.restart
76
+ else
77
+ self.advanced_search_properties
78
+ end
79
+ end
80
+ def self.display_data
81
+ puts "======================================================="
82
+ begin
83
+ if (@@all.length >= 1)
84
+
85
+ @@all.each do |each|
86
+ puts "---------------------------------"
87
+ puts ''
88
+ puts "About: #{each.name}"
89
+ puts ''
90
+ puts "Markup: #{each.markup}"
91
+ puts ''
92
+ puts "Downloads: #{each.downloads}"
93
+ puts ''
94
+ puts "---------------------------------"
95
+ end
96
+ search_results_found = @@all.length
97
+ puts "#{search_results_found} results found"
98
+ puts Approx_Scraper.page(@doc)
99
+ if (Approx_Scraper.check_pagination(@doc) != "")
100
+ @@page = self.navigate(@@page)
101
+ self.advanced_search_scrape(@@current_query, @@page)
102
+ end
103
+ self.restart
104
+ else
105
+ puts "0 search results found"
106
+ self.restart
107
+ end
108
+ rescue => error
109
+ puts error.message
110
+ self.retry
111
+ end
112
+
113
+ end
114
+ def self.navigate(page)
115
+ puts @@spacing + @@message_spacing + "To navigate type 'forward'(f) or 'back'(b), or 'home' to go back"
116
+ input = gets.chomp.to_str.downcase
117
+ case input
118
+ when "forward", "f"
119
+ self.forward(page)
120
+ when "back", "b"
121
+ self.back(page)
122
+ when "home"
123
+ CLI.restart
124
+ else
125
+ puts "Unrecognised command, try again"
126
+ self.navigate
127
+ end
128
+
129
+ end
130
+ def self.forward(page)
131
+ page += 1
132
+
133
+ end
134
+ def self.back(page)
135
+ page -=1 unless page < 1
136
+ end
137
+
138
+ end
@@ -0,0 +1,96 @@
1
+ class CLI::Approx_Scraper
2
+ attr_accessor :name, :markup, :downloads
3
+ @@page = 1
4
+ @@current_query = ""
5
+
6
+ @@all = []
7
+
8
+ def self.get_approximate_data(query, page = 1)
9
+ @@current_query = query
10
+ url = "https://rubygems.org/search?page=#{page}&query=#{query}"
11
+ @doc = Nokogiri::HTML(open(url))
12
+ self.new_from_query
13
+ end
14
+ def initialize(name=nil, markup=nil, downloads=nil)
15
+ @name = name
16
+ @markup = markup
17
+ @downloads = downloads
18
+ @@all << self
19
+ end
20
+ def self.new_from_query
21
+ approx_names(@doc).each_with_index do |each, index|
22
+ self.new(
23
+ approx_names(@doc)[index],
24
+ approx_markups(@doc)[index],
25
+ approx_downloads(@doc)[index]
26
+ )
27
+ end
28
+ display_approx
29
+ end
30
+ def self.approx_names(doc)
31
+ begin
32
+ doc.css('h2').css('.gems__gem__name').text.gsub(/[[:space:]]/, ' ').gsub(/[0-9].\S+/, '').split()
33
+ rescue => error
34
+ puts "I hit an error"
35
+ puts error.message
36
+ end
37
+ end
38
+ def self.approx_markups(doc)
39
+ doc.css('.gems__gem__desc').map do |i|
40
+ "#{i.text} "
41
+ end
42
+
43
+
44
+ end
45
+ def self.page(doc)
46
+ doc.css('.gems__meter').text
47
+ puts doc.css('.gems__meter').text
48
+
49
+ end
50
+ def self.check_pagination(doc)
51
+
52
+ doc.css(".pagination").text
53
+
54
+ end
55
+ def self.retry
56
+ puts "Unable to complete request, please try again: "
57
+ end
58
+ def self.approx_downloads(doc)
59
+ doc.css('.gems__gem__downloads__count').text.gsub(/[[:space:]]/, ' ').gsub(/Downloads/, '').split()
60
+ end
61
+ def self.display_approx
62
+ puts "======================================================="
63
+ begin
64
+ if (@@all.length >= 1)
65
+ @@all.each do |each|
66
+ puts "---------------------------------"
67
+ puts ''
68
+ puts "About: #{each.name}"
69
+ puts ''
70
+ puts "Markup: #{each.markup}"
71
+ puts ''
72
+ puts "Downloads: #{each.downloads}"
73
+ puts ''
74
+ puts "---------------------------------"
75
+ end
76
+ search_results_found = @@all.length
77
+ puts "#{search_results_found} results found"
78
+ puts self.page(@doc)
79
+ if (self.check_pagination(@doc) != "")
80
+ @@page = AdvancedSearch.navigate(@@page)
81
+ self.get_approximate_data(@@current_query, @@page)
82
+
83
+ end
84
+ self.restart
85
+ else
86
+ puts "0 search results found"
87
+ self.restart
88
+ end
89
+ rescue => error
90
+ puts error.message
91
+ self.retry
92
+ end
93
+ end
94
+
95
+
96
+ end
@@ -0,0 +1,53 @@
1
+ class CLI::Dependencies
2
+ @@spacing = "\n\n\n"
3
+ @@message_spacing = " "
4
+ @@dependencies = []
5
+
6
+ def self.display_dependencies
7
+ print = false
8
+ text = File.readlines('Gemfile.lock').each do |line|
9
+ line = line.to_str
10
+ if (line == "DEPENDENCIES\n")
11
+ print = true
12
+ else
13
+ if (line == "BUNDLED WITH\n")
14
+ print = false
15
+ elsif (print == true)
16
+ if (!@@dependencies.include?(line.split[0]))
17
+ @@dependencies << line.split[0] unless line.split[0].nil?
18
+ end
19
+ puts line
20
+
21
+
22
+ end
23
+ end
24
+
25
+ end
26
+ self.enquire
27
+ end
28
+ def self.enquire
29
+ puts @@message_spacing + "List the gem you would like to delete, or type 'back'" + @@spacing
30
+ p @@dependencies
31
+ input = gets.chomp
32
+ case input
33
+ when "back"
34
+ CLI.restart
35
+ else
36
+ if (@@dependencies.include?(input))
37
+
38
+ system("gem uninstall #{input}")
39
+ system("bundle remove #{input}")
40
+ system("bundle install")
41
+ @@dependencies.delete(input)
42
+ self.display_dependencies
43
+
44
+ else
45
+ puts @@message_spacing + "Command not recognised. Try again" + @@spacing
46
+ self.enquire
47
+ end
48
+
49
+
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,12 @@
1
+ require_relative '../config/environment.rb'
2
+ class CLI::Install
3
+
4
+ def self.install(input)
5
+ puts @@spacing + @@message_spacing + "Enter the gem that you would like to install and save as a dependency"
6
+ input = CGI.escape(gets.chomp)
7
+ system("bundle add #{input}")
8
+ puts @@spacing + @@message_spacing + "Gem installed!"
9
+ end
10
+
11
+
12
+ end
@@ -0,0 +1,36 @@
1
+ class CLI::Scraper
2
+ attr_accessor :name, :markup, :downloads
3
+
4
+ def initialize(name = nil, markup = nil, downloads = nil)
5
+ @name = name
6
+ @markup = markup
7
+ @downloads = downloads
8
+ end
9
+
10
+ def self.getData(name)
11
+ @doc = Nokogiri::HTML(open("https://rubygems.org/gems/#{name}"))
12
+ instance = self.new(name, self.markup, self.downloads)
13
+ exact_display(instance)
14
+ end
15
+ def self.markup
16
+ @doc.css('#markup').text.strip
17
+ end
18
+ def self.downloads
19
+ @doc.css('.gem__downloads').first.text.strip
20
+ end
21
+ def self.exact_display(instance)
22
+ query = instance.name.split(' ')
23
+ query = query.map do |word|
24
+ word.capitalize
25
+ end.flatten
26
+ puts "======================================================="
27
+ puts "--------#{query}--------"
28
+ puts ''
29
+ puts "About: #{self.markup}"
30
+ puts ''
31
+ puts "Downloads: #{self.downloads}"
32
+ puts ''
33
+ puts "---------------------------------"
34
+ end
35
+
36
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhatIsThis
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "what_is_this/version"
4
+ require_relative "what_is_this/Advanced_Search"
5
+ require_relative "what_is_this/Approx_Scraper"
6
+ require_relative "what_is_this/Dependencies"
7
+ require_relative "what_is_this/Install"
8
+ require_relative "what_is_this/Scraper"
9
+
10
+ module WhatIsThis
11
+ class Error < StandardError; end
12
+ @@spacing = "\n\n\n"
13
+ @@message_spacing = " "
14
+ def self.introduction
15
+
16
+
17
+ introduction_message = '
18
+ $$\ $$\ $$\ $$\ $$\ $$\
19
+ $$ | $$ | \__| $$ | $$ | \__|
20
+ $$\ $$\ $$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$$$\ $$$$$$$\ $$\ $$$$$$$\
21
+ $$ | $$ | $$ |$$ __$$\ \____$$\ \_$$ _| $$$$$$\ $$ |$$ _____|$$$$$$\ \_$$ _| $$ __$$\ $$ |$$ _____|
22
+ $$ | $$ | $$ |$$ | $$ | $$$$$$$ | $$ | \______|$$ |\$$$$$$\ \______| $$ | $$ | $$ |$$ |\$$$$$$\
23
+ $$ | $$ | $$ |$$ | $$ |$$ __$$ | $$ |$$\ $$ | \____$$\ $$ |$$\ $$ | $$ |$$ | \____$$\
24
+ \$$$$$\$$$$ |$$ | $$ |\$$$$$$$ | \$$$$ | $$ |$$$$$$$ | \$$$$ |$$ | $$ |$$ |$$$$$$$ |
25
+ \_____\____/ \__| \__| \_______| \____/ \__|\_______/ \____/ \__| \__|\__|\_______/ '
26
+
27
+ introduction_message.each_char {|c| putc c ; sleep 0.0015}
28
+ puts @@spacing + @@message_spacing + "Welcome to what-is-this! To begin please type either dependencies, install, search or quit:"
29
+ start
30
+ end
31
+ def self.start
32
+ input = CGI.escape(gets.chomp.downcase.strip)
33
+ puts @@spacing
34
+ case input
35
+ when 'search'
36
+ puts @@spacing + @@message_spacing + 'Would you like your search to be approximate(approx), advanced, exact or back to return?'
37
+
38
+ input = CGI.escape(gets.chomp.downcase.strip)
39
+ case input
40
+ when 'back'
41
+ self.restart
42
+ when 'approximate', 'approx'
43
+ approximate_search
44
+ when 'exact'
45
+ search
46
+ when 'advanced'
47
+ AdvancedSearch.advanced_search_properties
48
+ else
49
+ puts @@spacing + @@message_spacing + 'Command not recognised. Try again:'
50
+ restart
51
+ end
52
+ when 'install'
53
+ install
54
+ when 'dependencies'
55
+ Dependencies.display_dependencies
56
+ when 'quit'
57
+ quit
58
+ else
59
+ puts @@spacing + @@message_spacing + 'Command not recognised, try again!'
60
+ start
61
+ end
62
+ end
63
+ def self.approximate_search
64
+ puts @@spacing + @@message_spacing + "Please input your search term:"
65
+ query = CGI.escape(gets.chomp.downcase.strip)
66
+ Approx_Scraper.get_approximate_data(query)
67
+ restart
68
+ end
69
+ def self.search
70
+ puts @@spacing + @@message_spacing + "Enter gem you would like to know about"
71
+ query = CGI.escape(gets.chomp.downcase.strip)
72
+ Scraper.getData(query)
73
+ restart
74
+ end
75
+ def self.install
76
+ puts @@spacing + @@message_spacing + "Enter the gem that you would like to install and save as a dependency or back to return"
77
+ input = CGI.escape(gets.chomp)
78
+ case input
79
+ when 'back'
80
+ restart
81
+ else
82
+ Install.install(input)
83
+ end
84
+ restart
85
+ end
86
+ def self.quit
87
+ puts @@message_spacing + "Thanks for using 'what-is-this'... seeya!" + @@spacing
88
+ exit 1
89
+ end
90
+ def self.restart
91
+ puts @@spacing + @@message_spacing + 'To continue, type either dependencies, install, search, or quit:'
92
+ start
93
+ end
94
+ end
@@ -0,0 +1,4 @@
1
+ module WhatIsThis
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/what_is_this/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "what_is_this"
7
+ spec.version = WhatIsThis::VERSION
8
+ spec.authors = ["D-Justice"]
9
+ spec.email = ["justice.damian96@gmail.com"]
10
+
11
+ spec.summary = "CLI that allows the user all the functionality of RubyGems.org within the terminal."
12
+ spec.description = "CLI that allows the user all the functionality of RubyGems.org within the terminal."
13
+ spec.homepage = "https://github.com/D-Justice/what-is-this"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
+
17
+ # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
18
+
19
+ # spec.metadata["homepage_uri"] = spec.homepage
20
+ # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
21
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject do |f|
27
+ (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
28
+ end
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ # Uncomment to register a new dependency of your gem
35
+ # spec.add_dependency "example-gem", "~> 1.0"
36
+
37
+ # For more information and examples about making a new gem, checkout our
38
+ # guide at: https://bundler.io/guides/creating_gem.html
39
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: what_is_this
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - D-Justice
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-12-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: CLI that allows the user all the functionality of RubyGems.org within
14
+ the terminal.
15
+ email:
16
+ - justice.damian96@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - Gemfile
22
+ - Gemfile.lock
23
+ - LICENSE.txt
24
+ - README.md
25
+ - Rakefile
26
+ - bin/console
27
+ - bin/setup
28
+ - bin/what_is_this
29
+ - lib/what_is_this.rb
30
+ - lib/what_is_this/Advanced_Search.rb
31
+ - lib/what_is_this/Approx_Scraper.rb
32
+ - lib/what_is_this/Dependencies.rb
33
+ - lib/what_is_this/Install.rb
34
+ - lib/what_is_this/Scraper.rb
35
+ - lib/what_is_this/version.rb
36
+ - sig/what_is_this.rbs
37
+ - what_is_this.gemspec
38
+ homepage: https://github.com/D-Justice/what-is-this
39
+ licenses:
40
+ - MIT
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 2.6.0
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubygems_version: 3.2.32
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: CLI that allows the user all the functionality of RubyGems.org within the
61
+ terminal.
62
+ test_files: []