Class: IB::OCInterface

Inherits:
Object
  • Object
show all
Defined in:
lib/ib/oc_interface.rb

Defined Under Namespace

Classes: Action, Outlet, OutletCollection

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ OCInterface

Returns a new instance of OCInterface.



20
21
22
23
24
25
26
27
28
# File 'lib/ib/oc_interface.rb', line 20

def initialize(params)
  @params             = params
  @sub_class          = params[:class][0][0]
  @super_class        = params[:class][0][1]
  @outlets            = create_instances(Outlet, params[:outlets])
  @outlet_collections = create_instances(OutletCollection, params[:outlet_collections])
  @actions            = create_instances(Action, params[:actions])
  @path               = params[:path]
end

Instance Attribute Details

#actionsObject (readonly)

Returns the value of attribute actions.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def actions
  @actions
end

#outlet_collectionsObject (readonly)

Returns the value of attribute outlet_collections.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def outlet_collections
  @outlet_collections
end

#outletsObject (readonly)

Returns the value of attribute outlets.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def outlets
  @outlets
end

#pathObject (readonly)

Returns the value of attribute path.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def path
  @path
end

#sub_classObject (readonly)

Returns the value of attribute sub_class.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def sub_class
  @sub_class
end

#super_classObject (readonly)

Returns the value of attribute super_class.



3
4
5
# File 'lib/ib/oc_interface.rb', line 3

def super_class
  @super_class
end

Instance Method Details

#[](key) ⇒ Object



30
31
32
# File 'lib/ib/oc_interface.rb', line 30

def [](key)
  @params[key]
end

#has_class?(klass) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/ib/oc_interface.rb', line 51

def has_class?(klass)
  [sub_class, *sub_class_dependencies].any? { |k| k == klass }
end

#has_sub_class?(klass) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/ib/oc_interface.rb', line 55

def has_sub_class?(klass)
  sub_class == klass
end

#sub_class_dependenciesObject



43
44
45
46
47
48
49
# File 'lib/ib/oc_interface.rb', line 43

def sub_class_dependencies
  [
    @super_class,
    extract_types(@outlets),
    extract_types(@outlet_collections)
  ].flatten.uniq.compact.select { |klass| klass != 'id' }
end