Class: ArrayFu::ArrayDefinition

Inherits:
Object
  • Object
show all
Includes:
Initializer
Defined in:
lib/arrayfu/array_definition.rb

Defined Under Namespace

Modules: NoFailure

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Initializer

#initialize_arrays, #initialize_defaults, #initialize_false, #initialize_hashes

Constructor Details

#initialize(name) ⇒ ArrayDefinition

Returns a new instance of ArrayDefinition.



12
13
14
15
16
# File 'lib/arrayfu/array_definition.rb', line 12

def initialize(name)
  @name = name
  initialize_arrays :mutators, :visitors, :constraints
  initialize_false :writable, :readable
end

Instance Attribute Details

#constraintsObject

Returns the value of attribute constraints.



10
11
12
# File 'lib/arrayfu/array_definition.rb', line 10

def constraints
  @constraints
end

#mutatorsObject

Returns the value of attribute mutators.



8
9
10
# File 'lib/arrayfu/array_definition.rb', line 8

def mutators
  @mutators
end

#nameObject

Returns the value of attribute name.



5
6
7
# File 'lib/arrayfu/array_definition.rb', line 5

def name
  @name
end

#readableObject

Returns the value of attribute readable.



7
8
9
# File 'lib/arrayfu/array_definition.rb', line 7

def readable
  @readable
end

#visitorsObject

Returns the value of attribute visitors.



9
10
11
# File 'lib/arrayfu/array_definition.rb', line 9

def visitors
  @visitors
end

#writableObject

Returns the value of attribute writable.



6
7
8
# File 'lib/arrayfu/array_definition.rb', line 6

def writable
  @writable
end

Instance Method Details

#addition_constraint(constraint, fail_option = NoFailure) ⇒ Object Also known as: new_item_must



71
72
73
# File 'lib/arrayfu/array_definition.rb', line 71

def addition_constraint(constraint, fail_option = NoFailure)
  self.constraints.push(ItemConstraint.new(constraint, fail_option))
end

#configure_using(*configurators) ⇒ Object



39
40
41
42
43
44
# File 'lib/arrayfu/array_definition.rb', line 39

def configure_using(*configurators)
  configurators.each do|configurator|
    method = configurator.respond_to?(:configure) ? :configure : 'call'.to_sym
    configurator.send(method, self)
  end
end

#each_constraint(&block) ⇒ Object



63
64
65
# File 'lib/arrayfu/array_definition.rb', line 63

def each_constraint(&block)
  constraints.each &block
end

#each_mutator(&block) ⇒ Object



59
60
61
# File 'lib/arrayfu/array_definition.rb', line 59

def each_mutator(&block)
  mutators.each &block 
end

#each_visitor(&block) ⇒ Object



67
68
69
# File 'lib/arrayfu/array_definition.rb', line 67

def each_visitor(&block)
  visitors.each &block
end

#mutator(*names, &block) ⇒ Object



46
47
48
49
50
# File 'lib/arrayfu/array_definition.rb', line 46

def mutator(*names, &block)
  names.each do |mutator_name| 
    self.mutators.push(MutatorDefinition.new(mutator_name, block))
  end
end

#process_using(name, visitor) ⇒ Object



76
77
78
# File 'lib/arrayfu/array_definition.rb', line 76

def process_using(name,visitor)
  self.visitors.push(VisitorDefinition.new(name, visitor))
end

#read_and_writeObject



18
19
20
21
# File 'lib/arrayfu/array_definition.rb', line 18

def read_and_write
  writable
  readable
end

#readable?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/arrayfu/array_definition.rb', line 35

def readable?
  @readable ||= false
end

#variable_nameObject



80
81
82
# File 'lib/arrayfu/array_definition.rb', line 80

def variable_name
  "@#{@name}"
end

#writable?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/arrayfu/array_definition.rb', line 31

def writable?
  @writable ||= false
end