Sha256: 72a7a2657c71a72777f7f26bf4ad7b7e03dcf574fccee36c65e233eb5c4c29cb
Contents?: true
Size: 1.22 KB
Versions: 8
Compression:
Stored size: 1.22 KB
Contents
module Orange class Slices < Orange::Resource call_me :slices def stack_init orange[:radius].define_tag "slice" do |tag| content = '' resource = (tag.attr['resource'] || :slices).to_sym id = tag.attr['id'] || nil mode = (tag.attr['mode'] || tag.attr['action'] || tag.attr['chunk'] || (id ? :show : :index )).to_sym if orange.loaded?(resource) opts = {:attrs => tag.attr, :mode => mode} opts.merge!(:id => id) if id ret = orange[resource].view(tag.locals.packet, opts) if ret.blank? content << "resource #{resource} doesn't respond to #{mode}" else content << ret end else content << "resource #{resource} not loaded" end content end end def view(packet, *args) opts = args.extract_options! mode = opts[:mode] || packet['route.resource_action'] do_view(packet, mode, args.extract_options!) end def method_missing(mode, *args) packet = args.first if args.first.kind_of? Orange::Packet opts = args.extract_options! opts[:resource_name] = 'slices' do_view(packet, mode, opts) end end end
Version data entries
8 entries across 8 versions & 1 rubygems