gemfd 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 603153d4eb2bb6b53874fa544a4b5e7027701b1188b1a5343207ae294d34b04f
4
+ data.tar.gz: 7be7ccead41d21af7480d6e6db8746c5de562f3e1f1973f6071640334b1cfd02
5
+ SHA512:
6
+ metadata.gz: 69c9687cd5cb5ba1ce626fb70741196266ffab4de7074e52f9aac1c6795d4225f3d7772d1ac77f3e52db618912095b2957f72d885cbb194d0875295c647fa87f
7
+ data.tar.gz: 5a3b7a50a095d2c3534b93791bbbec39550c1c423e1a072b2b514e1cf0f4061a78b307da3632fd2ee5f74965bd6288e392a9ad186c9a7736a2920474a06a3ab6
data/bin/gemfd ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gemfd'
4
+
5
+ GemFd::CLI.start(ARGV)
data/lib/gemfd.rb ADDED
@@ -0,0 +1 @@
1
+ require 'gemfd/cli'
data/lib/gemfd/cli.rb ADDED
@@ -0,0 +1,27 @@
1
+ require 'tabulo'
2
+ require 'thor'
3
+ require 'gemfd/service'
4
+ require 'gemfd/config'
5
+
6
+ module GemFd
7
+ class CLI < Thor
8
+ desc "search", "Search gem by name"
9
+ def search gem_name
10
+ gem_list = GemFd::Service.search(gem_name)
11
+ draw_table(gem_list)
12
+ end
13
+
14
+ private
15
+
16
+ def draw_table response
17
+ fields = GemFd::Config.header_fields
18
+ table = Tabulo::Table.new(response) do |t|
19
+ fields.each_with_index do |field, index|
20
+ capitalized_field = field.split("_").collect!{|w| w.capitalize}.join(" ")
21
+ t.add_column(capitalized_field) {|line| line[field]}
22
+ end
23
+ end
24
+ puts table.pack(max_table_width: :auto)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ require 'yaml'
2
+
3
+ module GemFd
4
+ module Config
5
+ HEADER_FIELDS = ["name", "authors", "version", "downloads", "info", "source_code_uri"]
6
+
7
+ def self.header_fields
8
+ begin
9
+ config = YAML.load_file("#{Dir.home}/.gemfd.yml")
10
+ rescue
11
+ return HEADER_FIELDS
12
+ end
13
+ config["header_fields"]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ require "httparty"
2
+
3
+ module GemFd
4
+ class Service
5
+ def self.search gem_name
6
+ HTTParty.get("https://rubygems.org/api/v1/search.json?query=#{gem_name}").parsed_response
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gemfd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Luat HoangN
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-08-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This is a tool for finding gems
14
+ email: luat.hoangn@gmail.com
15
+ executables:
16
+ - gemfd
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/gemfd
21
+ - lib/gemfd.rb
22
+ - lib/gemfd/cli.rb
23
+ - lib/gemfd/config.rb
24
+ - lib/gemfd/service.rb
25
+ homepage: https://rubygems.org/gems/gemfd
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubygems_version: 3.0.3
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: Gem finder
48
+ test_files: []