module EverydayPlugins::TypeHelper

Public Instance Methods

basic_type(list, *args) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 123
def basic_type(list, *args)
  options = Plugins.get_var :options
  list.any? { |item|
    if item[:block].nil?
      flag_boolean(item, options)
    else
      item[:block].call(options, *args)
    end
  }
end
complex_filter(list, options, symbol) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 138
def complex_filter(list, options, symbol)
  list.filtermap { |item|
    if item[:block].nil?
      if item[:options].has_key?(symbol) && flag_boolean(item, options)
        item[:options][symbol]
      else
        item[:options].has_key?(:option) && !options[item[:options][:option]].nil? ? options[item[:options][:option]] : false
      end
    else
      rval = item[:block].call(options)
      (rval.nil? || !rval) ? false : rval
    end
  }
end
flag_boolean(item, options) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 134
def flag_boolean(item, options)
  item[:options].has_key?(:option) && options[item[:options][:option]] == (item[:options].has_key?(:value) ? item[:options][:value] : true)
end
get_name(list) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 163
def get_name(list)
  options = Plugins.get_var :options
  rval    = complex_filter(list.sort_by { |v| -v[:options][:priority] }, options, :name)
  (rval.nil? || rval.empty?) ? false : rval.first
end
simple_type(list, *args) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 153
def simple_type(list, *args)
  options = Plugins.get_var :options
  list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options, *args) }
end
simple_type_with_result(list) click to toggle source
# File lib/everyday-plugins/plugin.rb, line 158
def simple_type_with_result(list)
  result = Plugins.get_var :result
  simple_type(list, result)
end