gemfd 0.0.2

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