Method: Functional::ProtocolInfo#initialize
- Defined in:
- lib/functional/protocol_info.rb
#initialize(name) { ... } ⇒ Functional::ProtocolInfo
Process a protocol specification block and build a new object.
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/functional/protocol_info.rb', line 22 def initialize(name, &specification) raise ArgumentError.new('no block given') unless block_given? raise ArgumentError.new('no name given') if name.nil? || name.empty? super @name = name.to_sym @info = Info.new({}, {}, []) self.instance_eval(&specification) @info.each_pair{|col, _| col.freeze} @info.freeze ensure_ivar_visibility! self.freeze end |