class RspecApiDocs::RakeTask
Attributes
dir[RW]
existing_file[RW]
pattern[RW]
rspec_opts[RW]
verbose[RW]
verify[RW]
Public Class Methods
new(name = nil, &block)
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 20 def initialize(name = nil, &block) @name = name @verbose = true @pattern = 'spec/requests/**/*_spec.rb' @rspec_opts = [] @existing_file = 'docs/index.json' @verify = false block.call(self) if block define end
Private Instance Methods
configure_rspec()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 72 def configure_rspec RSpec.configure do |config| config.color = true end end
default_desc()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 104 def default_desc verify ? 'Ensure API docs are up to date' : 'Generate API docs' end
define()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 35 def define desc default_desc task name do @dir = Dir.mktmpdir if verify rspec_task.run_task(verbose) verify! if verify end end
existing()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 50 def existing JSON.parse(File.read(existing_file)) end
generated()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 46 def generated JSON.parse(File.read(Pathname.new(dir) + 'index.json')) end
name()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 99 def name @name || verify ? :'docs:ensure_updated' : :'docs:generate' end
remove_dir()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 78 def remove_dir FileUtils.remove_entry dir end
rspec_task()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 54 def rspec_task RSpec::Core::RakeTask.new.tap do |task| task.pattern = pattern task.rspec_opts = task_rspec_opts end end
spec_helper()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 61 def spec_helper tempfile = Tempfile.new(['shoebox', '.rb']) tempfile.write <<-EOF RspecApiDocs.configure do |config| config.output_dir = '#{dir}' end EOF tempfile.close tempfile end
task_rspec_opts()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 90 def task_rspec_opts arr = rspec_opts + [ '--format RspecApiDocs::Formatter', '--order defined', ] arr += ["--require #{spec_helper.path}"] if verify arr end
verify!()
click to toggle source
# File lib/rspec_api_docs/rake_task.rb, line 82 def verify! configure_rspec RSpecMatchers.expect(generated).to RSpecMatchers.eq(existing) remove_dir end