Class: DataContract::ContractList

Inherits:
Array
  • Object
show all
Defined in:
lib/data_contract/contract_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(obj = nil) ⇒ ContractList

Returns a new instance of ContractList.



5
6
7
# File 'lib/data_contract/contract_list.rb', line 5

def initialize(obj=nil)
  @obj = obj
end

Instance Attribute Details

#objObject (readonly)

Returns the value of attribute obj.



3
4
5
# File 'lib/data_contract/contract_list.rb', line 3

def obj
  @obj
end

Instance Method Details

#[](mod) ⇒ Object



15
16
17
# File 'lib/data_contract/contract_list.rb', line 15

def [](mod)
  get mod
end

#assignable(receiver) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/data_contract/contract_list.rb', line 19

def assignable(receiver)
  assignable_contracts = self.class.new obj

  each do |contract|
    if contract.assignable? receiver
      assignable_contracts << contract
    end
  end

  assignable_contracts
end

#get(mod) ⇒ Object

Raises:



9
10
11
12
13
# File 'lib/data_contract/contract_list.rb', line 9

def get(mod)
  contract = find { |contract| contract.mod == mod }
  raise ContractError, "No contract for #{mod.name}" unless contract
  contract
end

#scatter(receiver, contract_module = nil) ⇒ Object



31
32
33
# File 'lib/data_contract/contract_list.rb', line 31

def scatter(receiver, contract_module=nil)
  Scatter.! self, receiver, contract_module
end