Class: Refinery::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/refinery/plugin.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#always_allow_accessObject

Returns the value of attribute always_allow_access.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def always_allow_access
  @always_allow_access
end

#class_nameObject

Returns the value of attribute class_name.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def class_name
  @class_name
end

#controllerObject

Returns the value of attribute controller.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def controller
  @controller
end

#dashboardObject

Returns the value of attribute dashboard.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def dashboard
  @dashboard
end

#directoryObject

Returns the value of attribute directory.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def directory
  @directory
end

#hide_from_menuObject

Returns the value of attribute hide_from_menu.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def hide_from_menu
  @hide_from_menu
end

Returns the value of attribute menu_match.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def menu_match
  @menu_match
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def name
  @name
end

#pathnameObject

Returns the value of attribute pathname.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def pathname
  @pathname
end

#plugin_activityObject

Returns the value of attribute plugin_activity.



4
5
6
# File 'lib/refinery/plugin.rb', line 4

def plugin_activity
  @plugin_activity
end

#urlObject

Returns a hash that can be used to create a url that points to the administration part of the plugin.



59
60
61
# File 'lib/refinery/plugin.rb', line 59

def url
  @url
end

Class Method Details

.register {|plugin = self.new| ... } ⇒ Object

Yields:

  • (plugin = self.new)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/refinery/plugin.rb', line 8

def self.register(&block)
  yield(plugin = self.new)

  raise "A plugin MUST have a name!: #{plugin.inspect}" if plugin.name.blank?

  # Set defaults.
  plugin.menu_match ||= %r{refinery/#{plugin.name}(/.+?)?$}
  plugin.always_allow_access ||= false
  plugin.dashboard ||= false
  plugin.class_name ||= plugin.name.camelize

  # add the new plugin to the collection of registered plugins
  ::Refinery::Plugins.registered << plugin
end

Instance Method Details

#activityObject

Retrieve information about how to access the latest activities of this plugin.



34
35
36
# File 'lib/refinery/plugin.rb', line 34

def activity
  self.plugin_activity ||= []
end

#activity=(activities) ⇒ Object

Stores information that can be used to retrieve the latest activities of this plugin



39
40
41
# File 'lib/refinery/plugin.rb', line 39

def activity=(activities)
  [activities].flatten.each { |activity| add_activity(activity) }
end

#activity_by_class_name(class_name) ⇒ Object

Given a record’s class name, find the related activity object.



44
45
46
# File 'lib/refinery/plugin.rb', line 44

def activity_by_class_name(class_name)
  self.activity.select{ |a| a.class_name == class_name.to_s.camelize }
end

#descriptionObject

Returns the internationalized version of the description



29
30
31
# File 'lib/refinery/plugin.rb', line 29

def description
  ::I18n.translate(['refinery', 'plugins', name, 'description'].join('.'))
end

#highlighted?(params) ⇒ Boolean

Used to highlight the current tab in the admin interface

Returns:

  • (Boolean)


49
50
51
# File 'lib/refinery/plugin.rb', line 49

def highlighted?(params)
  !!(params[:controller].try(:gsub, "admin/", "") =~ menu_match) || (dashboard && params[:action] == 'error_404')
end

#titleObject

Returns the internationalized version of the title



24
25
26
# File 'lib/refinery/plugin.rb', line 24

def title
  ::I18n.translate(['refinery', 'plugins', name, 'title'].join('.'))
end

#versionObject



77
78
79
80
# File 'lib/refinery/plugin.rb', line 77

def version
  Refinery.deprecate "Refinery::Plugin#version", :when => '2.2',
                     :caller => caller.detect{|c| /#{pathname}/ === c }
end

#version=(*args) ⇒ Object



82
83
84
85
# File 'lib/refinery/plugin.rb', line 82

def version=(*args)
  Refinery.deprecate "Refinery::Plugin#version=", :when => '2.2',
                     :caller => caller.detect{|c| /#{pathname}/ === c }
end