Sha256: ecad307e98171cb011cfd77498d9531aa5261059974b92311d622b495d31ecaf

Contents?: true

Size: 710 Bytes

Versions: 11

Compression:

Stored size: 710 Bytes

Contents

module Erector
  module AfterInitialize
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      def after_initialize(instance=nil, &blk)
        if blk
          after_initialize_parts << blk
        elsif instance
          if superclass.respond_to?(:after_initialize)
            superclass.after_initialize instance
          end
          after_initialize_parts.each do |part|
            instance.instance_eval &part
          end
        else
          raise ArgumentError, "You must provide either an instance or a block"
        end
      end

      protected
      def after_initialize_parts
        @after_initialize_parts ||= []
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
erector-rails4-0.1.3 lib/erector/after_initialize.rb
erector-rails4-0.1.2 lib/erector/after_initialize.rb
erector-rails4-0.1.1 lib/erector/after_initialize.rb
erector-rails4-0.1.0 lib/erector/after_initialize.rb
erector-rails4-0.0.7 lib/erector/after_initialize.rb
erector-rails4-0.0.6 lib/erector/after_initialize.rb
erector-rails4-0.0.5 lib/erector/after_initialize.rb
erector-rails4-0.0.4 lib/erector/after_initialize.rb
erector-rails4-0.0.3 lib/erector/after_initialize.rb
erector-rails4-0.0.2 lib/erector/after_initialize.rb
erector-rails4-0.0.1 lib/erector/after_initialize.rb