class CabbageDoc::Collection

Constants

FILENAME

Public Class Methods

new() click to toggle source
# File lib/cabbage_doc/collection.rb, line 10
def initialize
  @_controllers = []
end

Public Instance Methods

<<(controller) click to toggle source
# File lib/cabbage_doc/collection.rb, line 14
def <<(controller)
  @_controllers << controller
end
clear!(tag = nil) click to toggle source
# File lib/cabbage_doc/collection.rb, line 49
def clear!(tag = nil)
  if tag && config.tags.size > 1
    @_controllers.reject! { |controller| tag == controller.tag }
  else
    @_controllers = []
  end
end
each() { |controller| ... } click to toggle source
# File lib/cabbage_doc/collection.rb, line 29
def each
  @_controllers.each do |controller|
    yield controller
  end
end
find_action(method, path) click to toggle source
# File lib/cabbage_doc/collection.rb, line 18
def find_action(method, path)
  action = nil

  @_controllers.each do |controller|
    action = controller.find_action(method, path)
    break if action
  end

  action
end
load!() click to toggle source
# File lib/cabbage_doc/collection.rb, line 57
def load!
  @_controllers = YAML.load(File.read(filename)) rescue [] unless @_controllers.any?
end
parse!(filename, tag = TAG) click to toggle source
# File lib/cabbage_doc/collection.rb, line 35
def parse!(filename, tag = TAG)
  text = File.read(filename) rescue nil
  return false unless text

  controller = Controller.parse(text, tag)
  return false unless controller

  controllers = controller.eval(text, tag)

  @_controllers.concat(controllers)

  controllers.any?
end
save!() click to toggle source
# File lib/cabbage_doc/collection.rb, line 61
def save!
  sort!
  open(filename, 'w') { |f| f.write(YAML.dump(@_controllers)) } rescue nil
end

Private Instance Methods

config() click to toggle source
# File lib/cabbage_doc/collection.rb, line 76
def config
  @_config ||= Configuration.instance
end
filename() click to toggle source
# File lib/cabbage_doc/collection.rb, line 80
def filename
  @_filename ||= Path.join(config.root, FILENAME)
end
sort!() click to toggle source
# File lib/cabbage_doc/collection.rb, line 68
def sort!
  return unless config.tags.size > 1

  @_controllers.sort! do |controller|
    -config.tags.index(controller.tag).to_i
  end
end