Sha256: ed70d680e69a40763c191be60cb43682ec0c4cb1d76c417bbfb4017d7b5365e4
Contents?: true
Size: 1.2 KB
Versions: 4
Compression:
Stored size: 1.2 KB
Contents
module HaveAPI::Fs::Components class ResourceActionDir < Directory component :resource_action_dir attr_reader :resource def initialize(r) @resource = r @instance = r.is_a?(HaveAPI::Client::ResourceInstance) super() end def contents super + relevant_actions.map(&:to_s) end def relevant_actions return @actions if @actions @actions = [] @resource.actions.each do |name, a| pos = a.url.index(":#{@resource._name}_id") if @instance cond = pos else cond = pos.nil? end @actions << name if cond end @actions end def instance? @instance end def title 'Actions' end protected def new_child(name) if child = super child elsif @resource.actions.has_key?(name) klass = case name when :create CreateActionDir when :update instance? ? UpdateActionDir : ActionDir when :delete DeleteActionDir else ActionDir end [klass, @resource, @resource.actions[name]] else nil end end end end
Version data entries
4 entries across 4 versions & 1 rubygems