Sha256: cbec2ec8a5c856cbf53ec04589a1ab785b2060af888d6bea885fd36b1c03c06f

Contents?: true

Size: 1.94 KB

Versions: 30

Compression:

Stored size: 1.94 KB

Contents

module Spider
    
    module WidgetPlugin
        
        def self.included(mod)
            mod.extend(ModuleMethods)
            mod.module_eval{ include Annotations }
            Spider::ControllerMixins::Visual.define_format_annotations(mod)
            mod.extend(Spider::ControllerMixins::Visual::OutputFormatMethods)
        end
        
        module ModuleMethods
                        
            def plugin_name
                @plugin_name
            end
            
            def plugin_for(widget, plugin_name)
                @plugin_name = plugin_name
                widget.add_plugin(plugin_name, self)
                @path = File.dirname(File.expand_path(caller[0].split(':')[0]))
            end
            
            def overrides_path
                @path+'/'+Inflector.underscore(self.to_s.split('::')[-1])+'.shtml'
            end
            
            def get_overrides
                overrides = []
                path = overrides_path
                doc = open(path){ |f| Hpricot.XML(f) }
                doc.root.each_child do |child|
                    next unless child.is_a?(Hpricot::Elem)
                    overrides << child
                end
                return overrides
            end
            
            def get_assets
                path = overrides_path
                return open(path){ |f| Hpricot.XML(f) }.root.children_of_type('tpl:asset').map{ |el|
                    Spider::Template.parse_asset_element(el)
                }
            end
            
            def controller_actions(*methods)
                if (methods.length > 0)
                    @controller_actions ||= []
                    @controller_actions += methods
                end
                @controller_actions
            end
            
            def controller_action?(method)
                @controller_actions && @controller_actions.include?(method)
            end
            
        end
        
    end
    
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
spiderfw-0.6.25 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.24 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.23 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.22 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.21 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.20 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.19 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.18 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.17 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.16 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.15 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.14 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.13 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.12 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.11 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.10 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.9 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.8 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.7 lib/spiderfw/widget/widget_plugin.rb
spiderfw-0.6.6 lib/spiderfw/widget/widget_plugin.rb