Sha256: 4918dd94073f9e4820414da7c4a90ee96b429f19914a840a282dfc6c5ceebf76
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
require 'active_support/ordered_options' require 'peek_a_view/view' module PeekAView class Configuration < ActiveSupport::OrderedOptions def initialize(*) super clear_views! end def views_file Array(views_path).map { |p| File.join(Rails.root, p) }.find { |p| File.file?(p) } end def load_views clear_views! if (file = views_file) load file else raise "No peek-a-view definitions found." # TODO proper exception class end end def clear_views! @views = { } @common = [] end def view(*names, &block) # :yields: a view object raise ArgumentError, "A view must have a least one name." unless names.length > 0 names.each do |name| (@views[name] ||= PeekAView::View.new(name, @common)).tap do |view| view.record(block) end end end def all_views(&block) # :yields: a common view object @common.tap do |common| @common << block end end def views @views end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
peek-a-view-0.0.4 | lib/peek_a_view/configuration.rb |
peek-a-view-0.0.3 | lib/peek_a_view/configuration.rb |