gem-search 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 789e543e20755692b3456454071c3932db93eb78
4
- data.tar.gz: b04c2569c7a9c20072c6b8000df51f7e5ebed17b
3
+ metadata.gz: 2384367dcc8179889fed95f58eb247a2452b0dea
4
+ data.tar.gz: 26460b4b4a183025c684dfcf593a9dbe628c5a02
5
5
  SHA512:
6
- metadata.gz: c009a478bb222eee56eb8d41b54f8ee9cb4dc67fbcf8ee191b27ea3a0cd1ece668046ebb52a0eae7abc669c22981d423779beacfe37b470b1018145ac69bc776
7
- data.tar.gz: 42fc99e5cee7b2cb1adffee1b6eec2ad1ac4be798d508571c0c1ca8ee2c49bf176522f92e10123ad404414dd779c9ebdbb0dd08314cb6753659ba16adee0b309
6
+ metadata.gz: a6aa2cdc66b842fe3c1f34cafce18eaa8035372fafc6e13bc9097c668dccc2781fb004e8109bb512a15ef7d614aef791d1ce6c7219d4b5a5f1d22f25d28e34d5
7
+ data.tar.gz: 7bc0f2efd92ddf5df728534d4db9a9a4dd073c770ab368739e4efc8ce73ac79e7ab857c87bc45a3b1ccb46687d1e32d53ad0d5115c0daa2f3a0888ee0c646727
data/.gitignore CHANGED
@@ -3,6 +3,7 @@
3
3
  .DS_Store
4
4
  .bundle
5
5
  .config
6
+ .rubocop-*
6
7
  .yardoc
7
8
  Gemfile.lock
8
9
  InstalledFiles
@@ -1,17 +1,2 @@
1
- Metrics/LineLength:
2
- Max: 120
3
-
4
- Style/Documentation:
5
- Enabled: false
6
-
7
- Style/ClassAndModuleChildren:
8
- Enabled: false
9
-
10
- Style/FileName:
11
- Exclude: ['bin/gem-search']
12
-
13
- Style/FormatString:
14
- Enabled: false
15
-
16
- Style/NumericLiterals:
17
- Enabled: false
1
+ inherit_from:
2
+ - https://raw.githubusercontent.com/rails/rails/master/.rubocop.yml
@@ -1,3 +1,9 @@
1
+ ## v0.2.1
2
+ - Update gems [88da69c]
3
+
4
+ ## v0.2.0
5
+ - Update gems [d6b6c89]
6
+
1
7
  ## v0.2.0
2
8
 
3
9
  - Add a Interrupt handling [a93beb1]
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
  gemspec
3
3
 
4
- gem 'rake', require: false
5
- gem 'rspec', require: false
4
+ gem "rake", require: false
5
+ gem "rspec", require: false
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env rake
2
- require 'bundler/gem_tasks'
3
- require 'rspec/core/rake_task'
2
+ require "bundler/gem_tasks"
3
+ require "rspec/core/rake_task"
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task default: [:spec]
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require 'gem_search'
2
+ require "gem_search"
3
3
 
4
4
  GemSearch::CommandBuilder.new(ARGV).build.call
@@ -1,9 +1,9 @@
1
- require File.expand_path('../lib/gem_search/version', __FILE__)
1
+ require File.expand_path("../lib/gem_search/version", __FILE__)
2
2
 
3
3
  def install_message
4
- s = ''
4
+ s = ""
5
5
  s << "\xf0\x9f\x8d\xba " if or_over_mac_os_lion?
6
- s << 'Thanks for installing!'
6
+ s << "Thanks for installing!"
7
7
  end
8
8
 
9
9
  def or_over_mac_os_lion?
@@ -11,30 +11,30 @@ def or_over_mac_os_lion?
11
11
 
12
12
  macos_full_version = `/usr/bin/sw_vers -productVersion`.chomp
13
13
  macos_version = macos_full_version[/10\.\d+/]
14
- macos_version >= '10.7' # 10.7 is lion
14
+ macos_version >= "10.7" # 10.7 is lion
15
15
  end
16
16
 
17
17
  Gem::Specification.new do |gem|
18
- gem.authors = ['rochefort']
19
- gem.email = ['terasawan@gmail.com']
20
- gem.homepage = 'https://github.com/rochefort/gem-search'
21
- gem.summary = 'search gems with using rubygems.org API'
18
+ gem.authors = ["rochefort"]
19
+ gem.email = ["terasawan@gmail.com"]
20
+ gem.homepage = "https://github.com/rochefort/gem-search"
21
+ gem.summary = "search gems with using rubygems.org API"
22
22
  gem.description = gem.summary
23
23
 
24
24
  gem.files = `git ls-files -z`.split("\x0")
25
25
  gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
26
26
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
27
- gem.name = 'gem-search'
28
- gem.require_paths = ['lib']
27
+ gem.name = "gem-search"
28
+ gem.require_paths = ["lib"]
29
29
  gem.version = GemSearch::VERSION
30
30
 
31
31
  gem.post_install_message = install_message
32
32
 
33
- gem.add_dependency 'slop', '~>4.3.0'
34
- gem.add_dependency 'mem', '~>0.1.5'
33
+ gem.add_dependency "slop", "~>4.4.1"
34
+ gem.add_dependency "mem", "~>0.1.5"
35
35
 
36
- gem.add_development_dependency 'webmock', '~>1.24.2'
37
- gem.add_development_dependency 'rake', '~>11.1.2'
38
- gem.add_development_dependency 'rspec', '~>3.4.0'
39
- gem.add_development_dependency 'simplecov', '~>0.11.2'
36
+ gem.add_development_dependency "webmock", "~>2.1.0"
37
+ gem.add_development_dependency "rake", "~>11.3.0"
38
+ gem.add_development_dependency "rspec", "~>3.5.0"
39
+ gem.add_development_dependency "simplecov", "~>0.12.0"
40
40
  end
@@ -1,11 +1,11 @@
1
1
  module GemSearch
2
- require 'mem'
3
- require 'slop'
2
+ require "mem"
3
+ require "slop"
4
4
 
5
- RUBYGEMS_URL = 'https://rubygems.org'
5
+ RUBYGEMS_URL = "https://rubygems.org"
6
6
 
7
- require 'gem_search/command_builder'
8
- require 'gem_search/commands'
9
- require 'gem_search/request'
10
- require 'gem_search/version'
7
+ require "gem_search/command_builder"
8
+ require "gem_search/commands"
9
+ require "gem_search/request"
10
+ require "gem_search/version"
11
11
  end
@@ -14,39 +14,39 @@ module GemSearch
14
14
 
15
15
  private
16
16
 
17
- def command_class
18
- case
19
- when options[:help] then Commands::Help
20
- when options[:version] then Commands::Version
21
- when options[:browse] then Commands::Browse
22
- else Commands::Run
17
+ def command_class
18
+ case
19
+ when options[:help] then Commands::Help
20
+ when options[:version] then Commands::Version
21
+ when options[:browse] then Commands::Browse
22
+ else Commands::Run
23
+ end
23
24
  end
24
- end
25
25
 
26
- def options
27
- Slop.parse(arguments, suppress_errors: true) do |opts|
28
- opts.banner = "Usage: gem-search gem_name [options]\n"
29
- sort_msg = detail_message([
30
- 'Sort by the field.',
31
- 'default [a]ll',
32
- '[a]ll :DL(all) e.g.: gem-search webkit -s a',
33
- '[v]er :DL(ver) e.g.: gem-search webkit -s v',
34
- '[n]ame : e.g.: gem-search webkit -s n'
35
- ])
36
- opts.string('-s', '--sort', sort_msg)
37
- opts.string('-b', '--browse', "Open rubygem's homepage in the system's default web browser.")
38
- opts.on('--no-homepage', "Do not show rubygems's homepage url.")
39
- opts.on('-v', '--version', 'Display the version.')
40
- opts.on('-h', '--help', 'Display this help message.')
26
+ def options
27
+ Slop.parse(arguments, suppress_errors: true) do |opts|
28
+ opts.banner = "Usage: gem-search gem_name [options]\n"
29
+ sort_msg = detail_message([
30
+ "Sort by the field.",
31
+ "default [a]ll",
32
+ "[a]ll :DL(all) e.g.: gem-search webkit -s a",
33
+ "[v]er :DL(ver) e.g.: gem-search webkit -s v",
34
+ "[n]ame : e.g.: gem-search webkit -s n"
35
+ ])
36
+ opts.string("-s", "--sort", sort_msg)
37
+ opts.string("-b", "--browse", "Open rubygem's homepage in the system's default web browser.")
38
+ opts.on("--no-homepage", "Do not show rubygems's homepage url.")
39
+ opts.on("-v", "--version", "Display the version.")
40
+ opts.on("-h", "--help", "Display this help message.")
41
+ end
41
42
  end
42
- end
43
- memoize :options
43
+ memoize :options
44
44
 
45
- def detail_message(msgs)
46
- indent = ' ' * 21
47
- main = msgs[0]
48
- detail = msgs[1..-1].map { |msg| "#{indent}#{msg}" }.join("\n")
49
- "#{main}\n#{detail}"
50
- end
45
+ def detail_message(msgs)
46
+ indent = " " * 21
47
+ main = msgs[0]
48
+ detail = msgs[1..-1].map { |msg| "#{indent}#{msg}" }.join("\n")
49
+ "#{main}\n#{detail}"
50
+ end
51
51
  end
52
52
  end
@@ -1,9 +1,9 @@
1
1
  module GemSearch
2
2
  module Commands
3
- require 'gem_search/commands/base.rb'
4
- require 'gem_search/commands/browse.rb'
5
- require 'gem_search/commands/help.rb'
6
- require 'gem_search/commands/run.rb'
7
- require 'gem_search/commands/version.rb'
3
+ require "gem_search/commands/base.rb"
4
+ require "gem_search/commands/browse.rb"
5
+ require "gem_search/commands/help.rb"
6
+ require "gem_search/commands/run.rb"
7
+ require "gem_search/commands/version.rb"
8
8
  end
9
9
  end
@@ -9,17 +9,17 @@ module GemSearch
9
9
 
10
10
  private
11
11
 
12
- def puts_abort(args)
13
- puts args
14
- abort
15
- end
12
+ def puts_abort(args)
13
+ puts args
14
+ abort
15
+ end
16
16
 
17
- def unexpected_error(e)
18
- puts "\nAn unexpected #{e.class} has occurred."
19
- puts e.message
20
- puts e.backtrace if ENV['DEBUG']
21
- abort
22
- end
17
+ def unexpected_error(e)
18
+ puts "\nAn unexpected #{e.class} has occurred."
19
+ puts e.message
20
+ puts e.backtrace if ENV["DEBUG"]
21
+ abort
22
+ end
23
23
  end
24
24
  end
25
25
  end
@@ -1,4 +1,4 @@
1
- require 'gem_search/utils/system_util'
1
+ require "gem_search/utils/system_util"
2
2
 
3
3
  module GemSearch
4
4
  module Commands
@@ -10,24 +10,24 @@ module GemSearch
10
10
  def call
11
11
  gem_name = options[:browse]
12
12
  result = Request.new.search_for_browse(gem_name)
13
- url = extract_uri(result['homepage_uri'], gem_name)
13
+ url = extract_uri(result["homepage_uri"], gem_name)
14
14
  puts "Opening #{url}"
15
15
  browser_open(url)
16
16
  rescue OpenURI::HTTPError
17
- puts_abort('No such a gem.')
17
+ puts_abort("No such a gem.")
18
18
  rescue => e
19
19
  unexpected_error(e)
20
20
  end
21
21
 
22
22
  private
23
23
 
24
- def extract_uri(homepage_uri, gem_name)
25
- if homepage_uri.nil? || homepage_uri.empty?
26
- GEM_URL % gem_name
27
- else
28
- homepage_uri
24
+ def extract_uri(homepage_uri, gem_name)
25
+ if homepage_uri.nil? || homepage_uri.empty?
26
+ GEM_URL % gem_name
27
+ else
28
+ homepage_uri
29
+ end
29
30
  end
30
- end
31
31
  end
32
32
  end
33
33
  end
@@ -1,4 +1,4 @@
1
- require 'gem_search/rendering'
1
+ require "gem_search/rendering"
2
2
  module GemSearch
3
3
  module Commands
4
4
  class Run < Base
@@ -6,50 +6,50 @@ module GemSearch
6
6
  include Rendering
7
7
 
8
8
  ENABLE_SORT_OPTS = {
9
- 'a' => 'downloads',
10
- 'n' => 'name',
11
- 'v' => 'version_downloads'
9
+ "a" => "downloads",
10
+ "n" => "name",
11
+ "v" => "version_downloads"
12
12
  }
13
13
 
14
14
  def call
15
15
  puts_abort(options) unless valid?(options.arguments)
16
16
  gems = search_gems
17
- puts_abort('We did not find results.') if gems.size.zero?
17
+ puts_abort("We did not find results.") if gems.size.zero?
18
18
  gems_sort!(gems)
19
- render(gems, !options['no-homepage'])
19
+ render(gems, !options["no-homepage"])
20
20
  rescue => e
21
21
  unexpected_error(e)
22
22
  end
23
23
 
24
24
  private
25
25
 
26
- def valid?(arguments)
27
- arguments.size > 0 && arguments.none? { |arg| arg.match(/\A-/) }
28
- end
26
+ def valid?(arguments)
27
+ arguments.size > 0 && arguments.none? { |arg| arg.match(/\A-/) }
28
+ end
29
29
 
30
- def search_gems
31
- print 'Searching '
32
- gems = Request.new.search(options.arguments[0]) do
33
- print '.'
30
+ def search_gems
31
+ print "Searching "
32
+ gems = Request.new.search(options.arguments[0]) do
33
+ print "."
34
+ end
35
+ puts
36
+ gems
34
37
  end
35
- puts
36
- gems
37
- end
38
38
 
39
- def gems_sort!(gems)
40
- if sort_opt == 'name'
41
- gems.sort! { |x, y| x[sort_opt] <=> y[sort_opt] }
42
- else
43
- gems.sort! { |x, y| y[sort_opt] <=> x[sort_opt] }
39
+ def gems_sort!(gems)
40
+ if sort_opt == "name"
41
+ gems.sort! { |x, y| x[sort_opt] <=> y[sort_opt] }
42
+ else
43
+ gems.sort! { |x, y| y[sort_opt] <=> x[sort_opt] }
44
+ end
44
45
  end
45
- end
46
46
 
47
- def sort_opt
48
- sort_opt = options['sort'] ? ENABLE_SORT_OPTS[options['sort'][0].downcase] : nil
49
- sort_opt = 'downloads' unless sort_opt
50
- sort_opt
51
- end
52
- memoize :sort_opt
47
+ def sort_opt
48
+ sort_opt = options["sort"] ? ENABLE_SORT_OPTS[options["sort"][0].downcase] : nil
49
+ sort_opt = "downloads" unless sort_opt
50
+ sort_opt
51
+ end
52
+ memoize :sort_opt
53
53
  end
54
54
  end
55
55
  end
@@ -12,39 +12,39 @@ module GemSearch
12
12
 
13
13
  private
14
14
 
15
- def ruled_line_size(gems)
16
- @ruled_line_size = DEFAULT_RULED_LINE_SIZE.dup
17
- max_name_size = gems.map { |gem| "#{gem['name']} (#{gem['version']})".size }.max
18
- @ruled_line_size[0] = max_name_size if max_name_size > @ruled_line_size[0]
19
- end
15
+ def ruled_line_size(gems)
16
+ @ruled_line_size = DEFAULT_RULED_LINE_SIZE.dup
17
+ max_name_size = gems.map { |gem| "#{gem['name']} (#{gem['version']})".size }.max
18
+ @ruled_line_size[0] = max_name_size if max_name_size > @ruled_line_size[0]
19
+ end
20
20
 
21
- def render_header
22
- f = @ruled_line_size
23
- fmt = "%-#{f[0]}s %#{f[1]}s %#{f[2]}s"
24
- titles = ['NAME', 'DL(ver)', 'DL(all)']
25
- hyphens = f[0, 3].map { |field| '-' * field }
26
- if @has_homepage
27
- fmt << " %-#{f[3]}s"
28
- titles << 'HOMEPAGE'
29
- hyphens << '-' * f[3]
21
+ def render_header
22
+ f = @ruled_line_size
23
+ fmt = "%-#{f[0]}s %#{f[1]}s %#{f[2]}s"
24
+ titles = ["NAME", "DL(ver)", "DL(all)"]
25
+ hyphens = f[0, 3].map { |field| "-" * field }
26
+ if @has_homepage
27
+ fmt << " %-#{f[3]}s"
28
+ titles << "HOMEPAGE"
29
+ hyphens << "-" * f[3]
30
+ end
31
+ puts fmt % titles
32
+ puts fmt % hyphens
30
33
  end
31
- puts fmt % titles
32
- puts fmt % hyphens
33
- end
34
34
 
35
- def render_body(gems)
36
- f = @ruled_line_size
37
- fmt = "%-#{f[0]}s %#{f[1]}d %#{f[2]}d"
38
- fmt << " %-#{f[3]}s" if @has_homepage
39
- gems.each do |gem|
40
- columns = [
41
- "#{gem['name']} (#{gem['version']})",
42
- gem['version_downloads'],
43
- gem['downloads']
44
- ]
45
- columns << gem['homepage_uri'] if @has_homepage
46
- puts fmt % columns
35
+ def render_body(gems)
36
+ f = @ruled_line_size
37
+ fmt = "%-#{f[0]}s %#{f[1]}d %#{f[2]}d"
38
+ fmt << " %-#{f[3]}s" if @has_homepage
39
+ gems.each do |gem|
40
+ columns = [
41
+ "#{gem['name']} (#{gem['version']})",
42
+ gem["version_downloads"],
43
+ gem["downloads"]
44
+ ]
45
+ columns << gem["homepage_uri"] if @has_homepage
46
+ puts fmt % columns
47
+ end
47
48
  end
48
- end
49
49
  end
50
50
  end
@@ -1,5 +1,5 @@
1
- require 'json'
2
- require 'open-uri'
1
+ require "json"
2
+ require "open-uri"
3
3
 
4
4
  module GemSearch
5
5
  class Request
@@ -30,21 +30,21 @@ module GemSearch
30
30
 
31
31
  private
32
32
 
33
- def search_ended?(size)
34
- size < MAX_GEMS_PER_PAGE || size.zero?
35
- end
33
+ def search_ended?(size)
34
+ size < MAX_GEMS_PER_PAGE || size.zero?
35
+ end
36
36
 
37
- def request_ruby_gems_api(url)
38
- option = {}
39
- proxy = URI.parse(url).find_proxy
40
- if proxy
41
- if proxy.user && proxy.password
42
- option[:proxy_http_basic_authentication] = [proxy, proxy.user, proxy.password]
43
- else
44
- option[:proxy] = proxy
37
+ def request_ruby_gems_api(url)
38
+ option = {}
39
+ proxy = URI.parse(url).find_proxy
40
+ if proxy
41
+ if proxy.user && proxy.password
42
+ option[:proxy_http_basic_authentication] = [proxy, proxy.user, proxy.password]
43
+ else
44
+ option[:proxy] = proxy
45
+ end
45
46
  end
47
+ JSON.parse(open(url, option).read)
46
48
  end
47
- JSON.parse(open(url, option).read)
48
- end
49
49
  end
50
50
  end
@@ -2,19 +2,19 @@ module GemSearch::Utils
2
2
  module SystemUtil
3
3
  # https://github.com/github/hub/blob/9c589396ae38f7b9f98319065ad491149954c152/lib/hub/context.rb#L517
4
4
  def browser_open(url)
5
- cmd = osx? ? 'open' : %w(xdg-open cygstart x-www-browser firefox opera mozilla netscape).find { |com| which com }
5
+ cmd = osx? ? "open" : %w(xdg-open cygstart x-www-browser firefox opera mozilla netscape).find { |com| which com }
6
6
  system(cmd, url)
7
7
  end
8
8
 
9
9
  # refer to: https://github.com/github/hub/blob/9c589396ae38f7b9f98319065ad491149954c152/lib/hub/context.rb#L527
10
10
  def osx?
11
- require 'rbconfig'
12
- RbConfig::CONFIG['host_os'].to_s.include?('darwin')
11
+ require "rbconfig"
12
+ RbConfig::CONFIG["host_os"].to_s.include?("darwin")
13
13
  end
14
14
 
15
15
  def which(cmd)
16
- exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
17
- ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
16
+ exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""]
17
+ ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
18
18
  exts.each do |ext|
19
19
  exe = "#{path}/#{cmd}#{ext}"
20
20
  return exe if File.executable? exe
@@ -1,3 +1,3 @@
1
1
  module GemSearch
2
- VERSION = '0.2.1'
2
+ VERSION = "0.2.2"
3
3
  end
@@ -1,4 +1,4 @@
1
- BIN = 'bin/gem-search'
1
+ BIN = "bin/gem-search"
2
2
 
3
3
  USAGE = <<-EOS
4
4
  Usage: gem-search gem_name [options]
@@ -14,31 +14,31 @@ Usage: gem-search gem_name [options]
14
14
  -h, --help Display this help message.
15
15
  EOS
16
16
 
17
- RSpec.describe 'bin/gem-search' do
18
- shared_examples 'display an usage' do
19
- it 'display an usage' do
17
+ RSpec.describe "bin/gem-search" do
18
+ shared_examples "display an usage" do
19
+ it "display an usage" do
20
20
  should == USAGE
21
21
  end
22
22
  end
23
23
 
24
- context 'with no argument' do
24
+ context "with no argument" do
25
25
  subject { `#{BIN}` }
26
- it_behaves_like 'display an usage'
26
+ it_behaves_like "display an usage"
27
27
  end
28
28
 
29
- context 'with -h' do
29
+ context "with -h" do
30
30
  subject { `#{BIN} -h` }
31
- it_behaves_like 'display an usage'
31
+ it_behaves_like "display an usage"
32
32
  end
33
33
 
34
- context 'with -x(non-exisitng option)' do
34
+ context "with -x(non-exisitng option)" do
35
35
  subject { `#{BIN} -x` }
36
- it_behaves_like 'display an usage'
36
+ it_behaves_like "display an usage"
37
37
  end
38
38
 
39
- context 'with -v' do
39
+ context "with -v" do
40
40
  subject { `#{BIN} -v` }
41
- it 'display an usage' do
41
+ it "display an usage" do
42
42
  should == "gem-search #{GemSearch::VERSION}\n"
43
43
  end
44
44
  end
@@ -1,47 +1,47 @@
1
1
  include GemSearch
2
2
 
3
3
  RSpec.describe Commands::Browse do
4
- describe '#call' do
5
- let(:query) { 'factory_girl' }
4
+ describe "#call" do
5
+ let(:query) { "factory_girl" }
6
6
  let(:options) { { browse: query } }
7
7
 
8
- context 'when a network error occurred' do
8
+ context "when a network error occurred" do
9
9
  before do
10
10
  stub_request(:get, build_gems_uri(query))
11
- .to_return(status: 500, body: '[]')
11
+ .to_return(status: 500, body: "[]")
12
12
  end
13
- let(:query) { 'network_error_orccurred' }
13
+ let(:query) { "network_error_orccurred" }
14
14
  it { expect { Commands::Browse.new(options).call }.to raise_error(Exception) }
15
15
  end
16
16
 
17
- context 'when no matching gem' do
17
+ context "when no matching gem" do
18
18
  before { stub_request_gems_no_result(query) }
19
- let(:query) { 'no_match_gem_name' }
19
+ let(:query) { "no_match_gem_name" }
20
20
  it { expect { Commands::Browse.new(options).call }.to raise_error(SystemExit) }
21
21
  end
22
22
 
23
- context 'when no homepage_uri' do
23
+ context "when no homepage_uri" do
24
24
  before do
25
25
  http_stub = load_http_stubs("gems/#{query}.json")
26
26
  stub_request_gems(query, http_stub)
27
27
  end
28
- let(:query) { 'git-trend_no_homepage' }
28
+ let(:query) { "git-trend_no_homepage" }
29
29
  let(:uri) { Commands::Browse::GEM_URL % query }
30
- it 'open a rubygems uri' do
30
+ it "open a rubygems uri" do
31
31
  expect_any_instance_of(Kernel).to receive(:system).with(anything, uri)
32
32
  Commands::Browse.new(options).call
33
33
  end
34
34
  end
35
35
 
36
- context 'when homepage_uri is existed' do
36
+ context "when homepage_uri is existed" do
37
37
  before do
38
38
  http_stub = load_http_stubs("gems/#{query}.json")
39
- @uri = JSON.parse(http_stub)['homepage_uri']
39
+ @uri = JSON.parse(http_stub)["homepage_uri"]
40
40
  stub_request_gems(query, http_stub)
41
41
  end
42
- let(:query) { 'git-trend' }
42
+ let(:query) { "git-trend" }
43
43
  let(:uri) { @uri }
44
- it 'open a homepage uri' do
44
+ it "open a homepage uri" do
45
45
  expect_any_instance_of(Kernel).to receive(:system).with(anything, uri)
46
46
  Commands::Browse.new(options).call
47
47
  end
@@ -1,60 +1,60 @@
1
1
  include GemSearch
2
2
 
3
3
  RSpec.describe Commands::Run do
4
- shared_examples 'sort example by all' do |sort_option|
5
- before { allow(options).to receive(:[]).with('sort').and_return(sort_option) }
6
- it 'display rubygems sorted by DL(all)' do
4
+ shared_examples "sort example by all" do |sort_option|
5
+ before { allow(options).to receive(:[]).with("sort").and_return(sort_option) }
6
+ it "display rubygems sorted by DL(all)" do
7
7
  expect { Commands::Run.new(options).call }.to output(dummy_search_result_sorted_by_all).to_stdout
8
8
  end
9
9
  end
10
10
 
11
- shared_examples 'sort example by ver' do |sort_option|
12
- before { allow(options).to receive(:[]).with('sort').and_return(sort_option) }
13
- it 'display rubygems sorted by DL(ver)' do
11
+ shared_examples "sort example by ver" do |sort_option|
12
+ before { allow(options).to receive(:[]).with("sort").and_return(sort_option) }
13
+ it "display rubygems sorted by DL(ver)" do
14
14
  expect { Commands::Run.new(options).call }.to output(dummy_search_result_sorted_by_ver).to_stdout
15
15
  end
16
16
  end
17
17
 
18
- shared_examples 'sort example by name' do |sort_option|
19
- before { allow(options).to receive(:[]).with('sort').and_return(sort_option) }
20
- it 'display rubygems sorted by NAME' do
18
+ shared_examples "sort example by name" do |sort_option|
19
+ before { allow(options).to receive(:[]).with("sort").and_return(sort_option) }
20
+ it "display rubygems sorted by NAME" do
21
21
  expect { Commands::Run.new(options).call }.to output(dummy_search_result_sorted_by_name).to_stdout
22
22
  end
23
23
  end
24
24
 
25
- describe '#call' do
25
+ describe "#call" do
26
26
  before do
27
27
  allow(options).to receive(:arguments).and_return([query])
28
- allow(options).to receive(:[]).with('no-homepage')
29
- allow(options).to receive(:[]).with('sort')
28
+ allow(options).to receive(:[]).with("no-homepage")
29
+ allow(options).to receive(:[]).with("sort")
30
30
  end
31
- let(:options) { double('options') }
31
+ let(:options) { double("options") }
32
32
 
33
- context 'when a network error occurred' do
33
+ context "when a network error occurred" do
34
34
  before do
35
35
  stub_request(:get, build_search_uri(query, 1))
36
- .to_return(status: 500, body: '[]')
36
+ .to_return(status: 500, body: "[]")
37
37
  end
38
- let(:query) { 'network_error_orccurred' }
38
+ let(:query) { "network_error_orccurred" }
39
39
  it { expect { Commands::Run.new(options).call }.to raise_error(SystemExit) }
40
40
  end
41
41
 
42
- context 'when no matching gem' do
42
+ context "when no matching gem" do
43
43
  before { stub_request_search_no_result_with_page(query, 1) }
44
- let(:query) { 'no_matching_gem_name' }
44
+ let(:query) { "no_matching_gem_name" }
45
45
  it { expect { Commands::Run.new(options).call }.to raise_error(SystemExit) }
46
46
  end
47
47
 
48
- describe 'with no-homepage option' do
48
+ describe "with no-homepage option" do
49
49
  before do
50
- allow(options).to receive(:[]).with('no-homepage').and_return(true)
50
+ allow(options).to receive(:[]).with("no-homepage").and_return(true)
51
51
  stub_request_search(query, 1, dummy_search_result)
52
52
  stub_request_search_no_result_with_page(query, 2)
53
53
  end
54
- let(:query) { 'factory_girl' }
54
+ let(:query) { "factory_girl" }
55
55
 
56
- context 'with no sort option' do
57
- it 'display rubygems ordering by DL(all)' do
56
+ context "with no sort option" do
57
+ it "display rubygems ordering by DL(all)" do
58
58
  res = <<-'EOS'.unindent
59
59
  |Searching .
60
60
  |NAME DL(ver) DL(all)
@@ -68,86 +68,86 @@ RSpec.describe Commands::Run do
68
68
  end
69
69
  end
70
70
 
71
- describe 'sorting' do
71
+ describe "sorting" do
72
72
  before do
73
73
  stub_request_search(query, 1, dummy_search_result)
74
74
  stub_request_search_no_result_with_page(query, 2)
75
75
  end
76
- let(:query) { 'factory_girl' }
76
+ let(:query) { "factory_girl" }
77
77
 
78
- describe 'sort by all' do
79
- context 'with no sort option' do
80
- include_examples 'sort example by all', nil
78
+ describe "sort by all" do
79
+ context "with no sort option" do
80
+ include_examples "sort example by all", nil
81
81
  end
82
82
 
83
- context 'with disallowed sort option' do
84
- include_examples 'sort example by all', 'xyz'
83
+ context "with disallowed sort option" do
84
+ include_examples "sort example by all", "xyz"
85
85
  end
86
86
 
87
- context 'with a' do
88
- include_examples 'sort example by all', 'a'
87
+ context "with a" do
88
+ include_examples "sort example by all", "a"
89
89
  end
90
90
 
91
- context 'with all' do
92
- include_examples 'sort example by all', 'all'
91
+ context "with all" do
92
+ include_examples "sort example by all", "all"
93
93
  end
94
94
 
95
- context 'with ALL' do
96
- include_examples 'sort example by all', 'ALL'
95
+ context "with ALL" do
96
+ include_examples "sort example by all", "ALL"
97
97
  end
98
98
  end
99
99
 
100
- describe 'sort by ver' do
101
- context 'with v' do
102
- include_examples 'sort example by ver', 'v'
100
+ describe "sort by ver" do
101
+ context "with v" do
102
+ include_examples "sort example by ver", "v"
103
103
  end
104
104
 
105
- context 'with ver' do
106
- include_examples 'sort example by ver', 'ver'
105
+ context "with ver" do
106
+ include_examples "sort example by ver", "ver"
107
107
  end
108
108
 
109
- context 'with VER' do
110
- include_examples 'sort example by ver', 'VER'
109
+ context "with VER" do
110
+ include_examples "sort example by ver", "VER"
111
111
  end
112
112
  end
113
113
 
114
- describe 'sort by name' do
115
- context 'with n' do
116
- include_examples 'sort example by name', 'n'
114
+ describe "sort by name" do
115
+ context "with n" do
116
+ include_examples "sort example by name", "n"
117
117
  end
118
118
 
119
- context 'with name' do
120
- include_examples 'sort example by name', 'name'
119
+ context "with name" do
120
+ include_examples "sort example by name", "name"
121
121
  end
122
122
 
123
- context 'with NAME' do
124
- include_examples 'sort example by name', 'NAME'
123
+ context "with NAME" do
124
+ include_examples "sort example by name", "NAME"
125
125
  end
126
126
  end
127
127
  end
128
128
 
129
- describe 'multiple page' do
129
+ describe "multiple page" do
130
130
  before do
131
- allow(options).to receive(:[]).with('sort').and_return('name')
132
- stub_request_search(query, 1, load_http_stubs('search/cucumber-_1.json'))
133
- stub_request_search(query, 2, load_http_stubs('search/cucumber-_2.json'))
134
- stub_request_search(query, 3, load_http_stubs('search/cucumber-_3.json'))
131
+ allow(options).to receive(:[]).with("sort").and_return("name")
132
+ stub_request_search(query, 1, load_http_stubs("search/cucumber-_1.json"))
133
+ stub_request_search(query, 2, load_http_stubs("search/cucumber-_2.json"))
134
+ stub_request_search(query, 3, load_http_stubs("search/cucumber-_3.json"))
135
135
  stub_request_search_no_result_with_page(query, 4)
136
136
  end
137
- let(:query) { 'cucumber-' }
138
- it 'display rubygems ordering by name' do
137
+ let(:query) { "cucumber-" }
138
+ it "display rubygems ordering by name" do
139
139
  expect { Commands::Run.new(options).call }.to output(dummy_search_results_multiple_pages).to_stdout
140
140
  end
141
141
  end
142
142
 
143
- describe 'ruled NAME line' do
144
- context 'NAME size is 42' do
143
+ describe "ruled NAME line" do
144
+ context "NAME size is 42" do
145
145
  before do
146
146
  stub_request_search(query, 1, dummy_search_result_name_size_is_42)
147
147
  stub_request_search_no_result_with_page(query, 2)
148
148
  end
149
- let(:query) { 'size_is_42_2345678901234567890123456789012' }
150
- it 'is 50 characters' do
149
+ let(:query) { "size_is_42_2345678901234567890123456789012" }
150
+ it "is 50 characters" do
151
151
  # rubocop:disable Metrics/LineLength, Style/TrailingWhitespace
152
152
  res = <<-'EOS'.unindent
153
153
  |Searching .
@@ -161,13 +161,13 @@ RSpec.describe Commands::Run do
161
161
  end
162
162
  end
163
163
 
164
- context 'NAME size is 43' do
164
+ context "NAME size is 43" do
165
165
  before do
166
166
  stub_request_search(query, 1, dummy_search_result_name_size_is_43)
167
167
  stub_request_search_no_result_with_page(query, 2)
168
168
  end
169
- let(:query) { 'size_is_43_23456789012345678901234567890123' }
170
- it 'is 51 characters' do
169
+ let(:query) { "size_is_43_23456789012345678901234567890123" }
170
+ it "is 51 characters" do
171
171
  # rubocop:disable Metrics/LineLength, Style/TrailingWhitespace
172
172
  res = <<-'EOS'.unindent
173
173
  |Searching .
@@ -1,4 +1,4 @@
1
- require 'helpers/dummy_data'
1
+ require "helpers/dummy_data"
2
2
 
3
3
  module Helpers
4
4
  def self.included(_base)
@@ -1,13 +1,13 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require 'rubygems'
3
- require 'simplecov'
2
+ require "rubygems"
3
+ require "simplecov"
4
4
  SimpleCov.start
5
5
 
6
- require 'webmock/rspec'
6
+ require "webmock/rspec"
7
7
  # require 'pry'
8
- require 'gem_search'
8
+ require "gem_search"
9
9
 
10
- require 'helpers'
10
+ require "helpers"
11
11
 
12
12
  RSpec.configure do |config|
13
13
  config.include Helpers
@@ -24,13 +24,13 @@ RSpec.configure do |config|
24
24
  config.run_all_when_everything_filtered = true
25
25
  config.expose_dsl_globally = false
26
26
 
27
- config.example_status_persistence_file_path = 'spec/examples.txt'
27
+ config.example_status_persistence_file_path = "spec/examples.txt"
28
28
  config.order = :random
29
29
  Kernel.srand config.seed
30
30
  end
31
31
 
32
32
  def load_http_stubs(file_name)
33
- open(File.join(File.dirname(__FILE__), 'http_stubs', file_name)).read
33
+ open(File.join(File.dirname(__FILE__), "http_stubs", file_name)).read
34
34
  end
35
35
 
36
36
  # stubs for search API
@@ -39,7 +39,7 @@ def stub_request_search(query, page, body)
39
39
  end
40
40
 
41
41
  def stub_request_search_no_result_with_page(query, page)
42
- stub_request(:get, build_search_uri(query, page)).to_return(status: 200, body: '[]')
42
+ stub_request(:get, build_search_uri(query, page)).to_return(status: 200, body: "[]")
43
43
  end
44
44
 
45
45
  def build_search_uri(query, page)
@@ -52,7 +52,7 @@ def stub_request_gems(query, body)
52
52
  end
53
53
 
54
54
  def stub_request_gems_no_result(query)
55
- stub_request(:get, build_gems_uri(query)).to_return(status: 404, body: '[]')
55
+ stub_request(:get, build_gems_uri(query)).to_return(status: 404, body: "[]")
56
56
  end
57
57
 
58
58
  def build_gems_uri(query)
@@ -61,6 +61,6 @@ end
61
61
 
62
62
  class String
63
63
  def unindent
64
- gsub(/^\s+\|/, '')
64
+ gsub(/^\s+\|/, "")
65
65
  end
66
66
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - rochefort
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-31 00:00:00.000000000 Z
11
+ date: 2016-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slop
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.3.0
19
+ version: 4.4.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.3.0
26
+ version: 4.4.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mem
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,56 +44,56 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.24.2
47
+ version: 2.1.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.24.2
54
+ version: 2.1.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 11.1.2
61
+ version: 11.3.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 11.1.2
68
+ version: 11.3.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 3.4.0
75
+ version: 3.5.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 3.4.0
82
+ version: 3.5.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.11.2
89
+ version: 0.12.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.11.2
96
+ version: 0.12.0
97
97
  description: search gems with using rubygems.org API
98
98
  email:
99
99
  - terasawan@gmail.com
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project:
160
- rubygems_version: 2.5.1
160
+ rubygems_version: 2.6.6
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: search gems with using rubygems.org API