Class: Klases::Argset

Inherits:
Object
  • Object
show all
Defined in:
lib/klases/argset.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ Argset

Returns a new instance of Argset.



5
6
7
8
9
# File 'lib/klases/argset.rb', line 5

def initialize(*args, &block)
  @options = args.options!
  @args = args
  @block = block
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



11
12
13
# File 'lib/klases/argset.rb', line 11

def args
  @args
end

Instance Method Details

#==(r) ⇒ Object



48
49
50
# File 'lib/klases/argset.rb', line 48

def ==(r)
  r.is_a?(Argset) && args == r.args && options == r.options && block == r.block
end

#[](index) ⇒ Object



13
14
15
# File 'lib/klases/argset.rb', line 13

def [](index)
  args[index]
end

#args_and_optionsObject



36
37
38
# File 'lib/klases/argset.rb', line 36

def args_and_options
  @options ? [*@args, @options] : @args
end

#before(*args) ⇒ Object



27
28
29
# File 'lib/klases/argset.rb', line 27

def before(*args)
  dup.before!(*args)
end

#before!(*args) ⇒ Object



31
32
33
34
# File 'lib/klases/argset.rb', line 31

def before!(*args)
  @args = args + @args
  self
end

#block(block = false) ⇒ Object



17
18
19
20
# File 'lib/klases/argset.rb', line 17

def block(block = false)
  return @block if block == false
  dup.block!(block)
end

#block!(block) ⇒ Object



22
23
24
25
# File 'lib/klases/argset.rb', line 22

def block!(block)
  @block = block
  self
end

#default_options(options) ⇒ Object



62
63
64
# File 'lib/klases/argset.rb', line 62

def default_options(options)
  dup.default_options!(options)
end

#default_options!(options) ⇒ Object



66
67
68
69
# File 'lib/klases/argset.rb', line 66

def default_options!(options)
  @options = options.merge(@options)
  self
end

#options(options = false) ⇒ Object



52
53
54
55
# File 'lib/klases/argset.rb', line 52

def options(options = false)
  return @options if options == false
  dup.options!(options)
end

#options!(options) ⇒ Object



57
58
59
60
# File 'lib/klases/argset.rb', line 57

def options!(options)
  @options = @options.merge(options)
  self
end

#send_to(receiver, method) ⇒ Object



40
41
42
# File 'lib/klases/argset.rb', line 40

def send_to(receiver, method)
  receiver.__send__(method, *args_and_options, &@block)
end

#sizeObject



44
45
46
# File 'lib/klases/argset.rb', line 44

def size
  args.size
end