Sha256: 6e0d620da99915716f230930707656fcbe64b3130e6b6a213be076d94d6e59e0
Contents?: true
Size: 1.95 KB
Versions: 34
Compression:
Stored size: 1.95 KB
Contents
require 'rubygems' require 'bundler/setup' require 'bundler/gem_tasks' require 'json' require 'yard' YARD::Rake::YardocTask.new begin require 'rspec/core/rake_task' rspec_task = RSpec::Core::RakeTask.new(:spec) task :default => :spec namespace :doc do desc 'Generate Markdown Specification from the RSpec public API tests' task :spec do ENV['PROTOCOL'] = 'json' rspec_task.rspec_opts = %w( --require ./spec/support/markdown_spec_formatter --order defined --tag ~api_private --format documentation --format Ably::RSpec::MarkdownSpecFormatter ).join(' ') Rake::Task[:spec].invoke end end desc 'Generate error code constants from ably-common: https://github.com/ably/ably-common/issues/32' task :generate_error_codes do errors_json_path = File.join(File.dirname(__FILE__), 'lib/submodules/ably-common/protocol/errors.json') module_path = File.join(File.dirname(__FILE__), 'lib/ably/modules/exception_codes.rb') max_length = 0 errors = JSON.parse(File.read(errors_json_path)).each_with_object({}) do |(key, val), hash| hash[key] = val.split(/\s+/).map { |d| d.upcase.gsub(/[^a-zA-Z]+/, '') }.join('_') end.each do |code, const_name| max_length = [const_name.length, max_length].max end.map do |code, const_name| " #{const_name.ljust(max_length, ' ')} = #{code}" end.join("\n") module_content = <<-EOF # This file is generated by running `rake :generate_error_codes` # Do not manually modify this file # Generated at: #{Time.now.utc} # module Ably module Exceptions module Codes #{errors} end end end EOF File.open(module_path, 'w') { |file| file.write module_content } puts "Error code constants have been generated into #{module_path}" puts "Warning: Search for any constants referenced in this library if their name has changed as a result of this constant generation!" end rescue LoadError # RSpec not available end
Version data entries
34 entries across 34 versions & 2 rubygems