gem-search 0.2.1 → 0.2.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 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