class Fib::Element

Constants

TYPE

Attributes

condition[R]
core[R]
permission_key[R]
type[R]

Public Class Methods

create_action(controller, action, &block) click to toggle source
# File lib/fib/element.rb, line 28
def create_action controller, action, &block
  new "action", {controller: controller.to_s, action: action.to_s}, block
end
create_key(key, &block) click to toggle source
# File lib/fib/element.rb, line 24
def create_key key, &block
  new "key", key, block
end
create_url(url, &block) click to toggle source
# File lib/fib/element.rb, line 32
def create_url url, &block
  new "url", url, block
end
new(type, core, condition=->(*args){) click to toggle source
# File lib/fib/element.rb, line 6
def initialize type, core, condition=->(*args){}
  raise UnValidElementType, "current type -> #{type}, type need in (#{TYPE.join(", ")})!" unless TYPE.include? type
  @type = type
  @core = core
  raise ParameterIsNotValid, "Condition must belong to Proc!" unless condition.nil? || condition.is_a?(Proc)
  @condition = condition || ->(*args){}
end

Public Instance Methods

pass_condition?(*args) click to toggle source
# File lib/fib/element.rb, line 18
def pass_condition? *args
  return true if condition.nil?
  condition[*args] != false
end
set_permission(permission) click to toggle source
# File lib/fib/element.rb, line 14
def set_permission permission
  @permission_key = permission.is_a?(Fib::Permission) ? permission.key : permission
end