lib/konstructor.rb in konstructor-0.1.0 vs lib/konstructor.rb in konstructor-0.2.0

- old
+ new

@@ -1,82 +1,2 @@ -require 'konstructor/version' -require 'konstructor/exceptions' -require 'konstructor/simple_method_hook' -require 'konstructor/factory' - -module Konstructor - - module KonstructorMethod - private - - # TODO: ADD DOCS - def konstructor(*new_names) - Konstructor.declare(self, new_names) - end - end - - DEFAULT_NAMES = [:initialize] - RESERVED_NAMES = [:new, :initialize] - - class << self - def reserved?(name) - RESERVED_NAMES.include?(name.to_sym) - end - - def default?(name) - DEFAULT_NAMES.include?(name.to_sym) - end - - def declared?(klass, name) - konstructor = get_factory(klass) - if konstructor - konstructor.declared?(name.to_sym) - else - false - end - end - - def declare(klass, new_names) - setup_method_added_hook(klass) - get_or_init_factory(klass).declare(new_names) - end - - def method_added_to_klass(klass, name) - get_or_init_factory(klass).method_added_to_klass(name) - end - - def is?(klass, name) - default?(name) || declared?(klass, name) - end - - private - - def get_factory(klass) - klass.instance_variable_get(:@konstructor) - end - - def init_factory(klass) - # using variable @konstructor to minimize footprint, although saving factory there - klass.instance_variable_set(:@konstructor, Factory.new(klass)) - end - - def get_or_init_factory(klass) - get_factory(klass) || init_factory(klass) - end - - def setup_method_added_hook(klass) - SimpleMethodHook.setup(klass) - end - - # Overriden append_features prevents default behavior - # of including all the constants, variables to the base class. - # It adds only one method 'konstructor'. - def append_features(klass) - unless klass.is_a? Class - raise IncludeInModuleError, klass - end - - klass.extend(KonstructorMethod) - end - end - -end +require 'konstructor/main' +require 'konstructor/core_ext' \ No newline at end of file