speed up testing and remove test_files in gemspec

This commit is contained in:
david942j 2017-02-14 17:26:47 +08:00
parent bee56e2df9
commit e28085f083
3 changed files with 11 additions and 5 deletions

View File

@ -68,10 +68,10 @@ module OneGadget
# Fetch the latest release version's tag name.
# @return [String] The tag name, in form +vx.x.x+.
def latest_tag
latest = url_request('https://github.com/david942j/one_gadget/releases').scan(%r{/tree/v([\d.]+)"}).map do |tag|
releases_url = 'https://github.com/david942j/one_gadget/releases'
@latest_tag ||= 'v' + url_request(releases_url).scan(%r{/tree/v([\d.]+)"}).map do |tag|
Gem::Version.new(tag.first)
end.max.to_s
'v' + latest
end
# Get the url which can fetch +filename+ from remote repo.
@ -97,14 +97,13 @@ module OneGadget
# Get the latest builds list from repo.
# @return [Array<String>] List of build ids.
def remote_builds
url_request(url_of_file('builds_list')).lines.map(&:strip)
@remote_builds ||= url_request(url_of_file('builds_list')).lines.map(&:strip)
end
# Get request.
# @param [String] url The url.
# @return [String] The request response body.
def url_request(url)
# TODO: add timeout to handle github crashed or in no network environment.
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
@ -113,7 +112,11 @@ module OneGadget
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
raise ArgumentError, "Fail to get response of #{url}" unless response.code == '200'
response.body
rescue NoMethodError, SocketError, ArgumentError => e
p e
nil
end
# Show the message of ask user to update gem.

View File

@ -19,7 +19,6 @@ Gem::Specification.new do |s|
s.authors = ['david942j']
s.email = ['david942j@gmail.com']
s.files = Dir['lib/**/*.rb'] + Dir['bin/*'] + %w(README.md)
s.test_files = Dir['spec/**/*']
s.homepage = 'https://github.com/david942j/one_gadget'
s.executables = ['one_gadget']

View File

@ -18,6 +18,10 @@ describe OneGadget::Helper do
expect(OneGadget::Helper.colorize('123', sev: :integer)).to eq "\e[38;5;12m123\e[0m"
end
it 'url_request' do
expect(OneGadget::Helper.url_request('oao')).to be nil
end
it 'architecture' do
expect(OneGadget::Helper.architecture(@libcpath)).to be :amd64
expect(OneGadget::Helper.architecture(__FILE__)).to be :unknown