Sha256: 029e92abe91ba1e0bff07bdb4e5cc5d47182295d32d5908f5a6b0d58575028ec
Contents?: true
Size: 1.12 KB
Versions: 7
Compression:
Stored size: 1.12 KB
Contents
module HaveAPI::Fs::Components class IndexFilter < Directory component :index_filter attr_reader :resource_dir, :param, :filters def initialize(resource_dir, param, filters = {}) super() @resource_dir = resource_dir @param = param @filters = filters end def title "Filter by #{@param}" end protected def new_child(value) if child = super child else f = @filters.clone f[ @param ] = value.to_s [IndexFilterValue, @resource_dir.resource, f] end end end class IndexFilterValue < ResourceDir component :resource_dir help_file :resource_dir def initialize(resource, filters) super(resource) @filters = filters end def setup super @filters.each do |k, v| @index.find(:input).find(k).write(v) @last = v end end def title @last.to_s end protected def new_child(name) child = super(name) return child unless child child << @filters.clone if [child].flatten.first == IndexFilter child end end end
Version data entries
7 entries across 7 versions & 1 rubygems