File: class_inclusions.rb

package info (click to toggle)
ruby-virtus 2.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 660 kB
  • sloc: ruby: 4,378; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 1,078 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
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
38
39
40
41
42
43
44
45
46
47
48
module Virtus

  # Class-level extensions
  module ClassInclusions

    # Extends a descendant with class and instance methods
    #
    # @param [Class] descendant
    #
    # @return [undefined]
    #
    # @api private
    def self.included(descendant)
      super
      descendant.extend(ClassMethods)
      descendant.class_eval { include Methods }
      descendant.class_eval { include InstanceMethods }
      descendant.class_eval { include InstanceMethods::Constructor }
      descendant.class_eval { include InstanceMethods::MassAssignment }
    end
    private_class_method :included

    module Methods

      # Return a list of allowed writer method names
      #
      # @return [Set]
      #
      # @api private
      def allowed_writer_methods
        self.class.allowed_writer_methods
      end

      private

      # Return class' attribute set
      #
      # @return [Virtus::AttributeSet]
      #
      # @api private
      def attribute_set
        self.class.attribute_set
      end

    end # Methods

  end # module ClassInclusions
end # module Virtus