Module: Barista::Extensions::ClassMethods

Defined in:
lib/barista/extensions.rb

Instance Method Summary collapse

Instance Method Details

#has_boolean_options(*names) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/barista/extensions.rb', line 13

def has_boolean_options(*names)
  source = []
  names.each do |name|
    source << "      \n      def \#{name}!\n        @\#{name} = true\n      end\n      \n      def \#{name}?\n        defined?(@\#{name}) ? @\#{name} : default_for_\#{name}\n      end\n      \n      def \#{name}=(value)\n        @\#{name} = !!value\n      end\n      \n      def default_for_\#{name}\n        false\n      end\n      \n    EOM\n  end\n  class_eval source.join(\"\\n\"), __FILE__, __LINE__\nend\n"

#has_delegate_methods(delegate, *args) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/barista/extensions.rb', line 51

def has_delegate_methods(delegate, *args)
  source = []
  args.each do |method|
    source << "\n      def \#{method}(*args, &blk)\n        \#{delegate}.send(:\#{method}, *args, &blk)\n      end\n\n    EOM\n  end\n  class_eval source.join(\"\\n\"), __FILE__, __LINE__\nend\n"

#has_deprecated_methods(*args) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/barista/extensions.rb', line 65

def has_deprecated_methods(*args)
  source = []
  args.each do |method|
    source << "\n      def \#{method}(*args, &blk)\n        Barista.deprecate!(self, :\#{method})\n        nil\n      end\n\n    EOM\n  end\n  class_eval source.join(\"\\n\"), __FILE__, __LINE__\nend\n"

#has_hook_method(options) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/barista/extensions.rb', line 39

def has_hook_method(options)
  source = []
  options.each_pair do |name, event|
    source << "      def \#{name}(&blk)\n        on_hook \#{event.to_sym.inspect}, &blk\n      end\n    EOM\n  end\n  class_eval source.join(\"\\n\"), __FILE__, __LINE__\nend\n"