Class: ArrayFu::Dsl

Inherits:
Object show all
Defined in:
lib/arrayfu/dsl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Dsl

Returns a new instance of Dsl.



5
6
7
8
9
# File 'lib/arrayfu/dsl.rb', line 5

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

Instance Attribute Details

#criteriaObject

Returns the value of attribute criteria.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def criteria
  @criteria
end

#mutatorsObject

Returns the value of attribute mutators.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def mutators
  @mutators
end

#nameObject

Returns the value of attribute name.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def name
  @name
end

#readableObject

Returns the value of attribute readable.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def readable
  @readable
end

#visitorsObject

Returns the value of attribute visitors.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def visitors
  @visitors
end

#writableObject

Returns the value of attribute writable.



3
4
5
# File 'lib/arrayfu/dsl.rb', line 3

def writable
  @writable
end

Instance Method Details

#configure_using(*configurators) ⇒ Object



36
37
38
39
40
41
# File 'lib/arrayfu/dsl.rb', line 36

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

#mutator(*names, &block) ⇒ Object



11
12
13
# File 'lib/arrayfu/dsl.rb', line 11

def mutator(*names,&block)
  names.each{|name| @mutators.push(MutatorDetail.new(name,block))}
end

#new_item_must(criteria, fail_option) ⇒ Object



15
16
17
# File 'lib/arrayfu/dsl.rb', line 15

def new_item_must(criteria,fail_option)
  @criteria.push(AddCriterion.new(criteria,fail_option))
end

#process_using(name, visitor) ⇒ Object



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

def process_using(name,visitor)
  @visitors.push(VisitorDetail.new(name,visitor))
end

#read_and_writeObject



23
24
25
26
# File 'lib/arrayfu/dsl.rb', line 23

def read_and_write
  writable
  readable
end