mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add Rake task to fetch ace_modes, and skip test if there's no internet
This commit is contained in:
26
Rakefile
26
Rakefile
@@ -3,13 +3,15 @@ require 'rake/clean'
|
||||
require 'rake/testtask'
|
||||
require 'yaml'
|
||||
require 'yajl'
|
||||
require 'open-uri'
|
||||
require 'json'
|
||||
|
||||
task :default => :test
|
||||
|
||||
Rake::TestTask.new
|
||||
|
||||
# Extend test task to check for samples
|
||||
task :test => :check_samples
|
||||
# Extend test task to check for samples and fetch latest Ace modes
|
||||
task :test => [:check_samples, :fetch_ace_modes]
|
||||
|
||||
desc "Check that we have samples.json generated"
|
||||
task :check_samples do
|
||||
@@ -18,6 +20,26 @@ task :check_samples do
|
||||
end
|
||||
end
|
||||
|
||||
desc "Fetch the latest Ace modes from its GitHub repository"
|
||||
task :fetch_ace_modes do
|
||||
ACE_FIXTURE_PATH = File.join('test', 'fixtures', 'ace_modes.json')
|
||||
|
||||
File.delete(ACE_FIXTURE_PATH) if File.exist?(ACE_FIXTURE_PATH)
|
||||
|
||||
begin
|
||||
ace_github_modes = (open("https://api.github.com/repos/ajaxorg/ace/contents/lib/ace/mode").read)
|
||||
File.write(ACE_FIXTURE_PATH, ace_github_modes)
|
||||
rescue => e
|
||||
case e
|
||||
when OpenURI::HTTPError
|
||||
when SocketError
|
||||
# no internet? no problem.
|
||||
else
|
||||
raise e
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task :samples do
|
||||
require 'linguist/samples'
|
||||
json = Yajl.dump(Linguist::Samples.data, :pretty => true)
|
||||
|
||||
Reference in New Issue
Block a user