Sha256: 17d594304ab8d178da5590386f3b934ff6822f9564b1c0a8fc77f07bc147b202
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 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) || r.is_a?(HaveAPI::Fs::HashWrapper) 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
3 entries across 3 versions & 1 rubygems