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.



28
29
30
31
32
33
34
35
36
37
# File 'lib/ib/oc_interface.rb', line 28

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]
  @build_platform     = params[:build_platform]
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



39
40
41
# File 'lib/ib/oc_interface.rb', line 39

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

#has_class?(klass) ⇒ Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/ib/oc_interface.rb', line 60

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

#has_sub_class?(klass) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/ib/oc_interface.rb', line 64

def has_sub_class?(klass)
  sub_class == klass
end

#sub_class_dependenciesObject



52
53
54
55
56
57
58
# File 'lib/ib/oc_interface.rb', line 52

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