lib/vedeu/repositories/model.rb in vedeu-0.6.9 vs lib/vedeu/repositories/model.rb in vedeu-0.6.10

- old
+ new

@@ -1,32 +1,33 @@ module Vedeu - # When included into a class, provides the mechanism to store the class in a - # repository for later retrieval. + # When included into a class, provides the mechanism to store the + # class in a repository for later retrieval. # module Model include Vedeu::Common # @!attribute [rw] repository # @return [Vedeu::Repository] attr_accessor :repository - # When {Vedeu::Model} is included in a class, the methods within this module - # are included as class methods on that class. + # When {Vedeu::Model} is included in a class, the methods within + # this module are included as class methods on that class. # module ClassMethods # @!attribute [r] repository # @return [Vedeu::Repository] attr_reader :repository - # Build models using a simple DSL when a block is given, otherwise returns - # a new instance of the class including this module. + # Build models using a simple DSL when a block is given, + # otherwise returns a new instance of the class including this + # module. # - # @param attributes [Hash] A collection of attributes specific to the - # model. + # @param attributes [Hash] A collection of attributes specific + # to the model. # @param block [Proc] The block passed to the build method. # @return [Object] An instance of the model. def build(attributes = {}, &block) attributes = defaults.merge!(attributes) @@ -41,14 +42,15 @@ # @return [void] def by_name(name) repository.by_name(name) if repository end - # Provide a convenient way to define the child or children of a model. + # Provide a convenient way to define the child or children of a + # model. # - # @param klass [Class] The member (singular) or collection (multiple) - # class name for the respective model. + # @param klass [Class] The member (singular) or collection + # (multiple) class name for the respective model. # @return [void] def child(klass) send(:define_method, __callee__) { klass } end alias_method :member, :child @@ -74,26 +76,26 @@ } end end # ClassMethods - # When this module is included in a class, provide ClassMethods as class - # methods for the class. + # When this module is included in a class, provide ClassMethods as + # class methods for the class. # # @param klass [Class] # @return [void] def self.included(klass) klass.send(:extend, ClassMethods) end - # Returns a DSL instance responsible for defining the DSL methods of this - # model. + # Returns a DSL instance responsible for defining the DSL methods + # of this model. # # @param client [Object|NilClass] The client binding represents - # the client application object that is currently invoking a DSL method. - # It is required so that we can send messages to the client application - # object should we need to. + # the client application object that is currently invoking a DSL + # method. It is required so that we can send messages to the + # client application object should we need to. # @return [void] The DSL instance for this model. def deputy(client = nil) Object.const_get(dsl_class).new(self, client) end @@ -107,17 +109,14 @@ # Returns the DSL class name responsible for this model. # # @return [String] def dsl_class - if demodulize(self.class.name) == 'Border' - 'Vedeu::Borders::DSL' - elsif demodulize(self.class.name) == 'Buffer' - 'Vedeu::Buffers::DSL' - elsif demodulize(self.class.name) == 'Geometry' - 'Vedeu::Geometry::DSL' - elsif demodulize(self.class.name) == 'Menu' - 'Vedeu::Menus::DSL' + case demodulize(self.class.name) + when 'Border' then 'Vedeu::Borders::DSL' + when 'Buffer' then 'Vedeu::Buffers::DSL' + when 'Geometry' then 'Vedeu::Geometry::DSL' + when 'Menu' then 'Vedeu::Menus::DSL' else 'Vedeu::DSL::' + demodulize(self.class.name) end end