File: enumerize.rb

package info (click to toggle)
ruby-enumerize 2.8.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 432 kB
  • sloc: ruby: 3,712; makefile: 6
file content (90 lines) | stat: -rw-r--r-- 2,472 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# frozen_string_literal: true

require 'active_support/concern'
require 'active_support/core_ext/object/blank'
require 'enumerize/version'

module Enumerize
  autoload :Attribute,    'enumerize/attribute'
  autoload :AttributeMap, 'enumerize/attribute_map'
  autoload :Value,        'enumerize/value'
  autoload :Set,          'enumerize/set'
  autoload :Base,         'enumerize/base'
  autoload :Module,       'enumerize/module'
  autoload :Predicates,   'enumerize/predicates'
  autoload :Predicatable, 'enumerize/predicatable'
  autoload :Utils,        'enumerize/utils'
  autoload :ModuleAttributes, 'enumerize/module_attributes'

  autoload :ActiveModelAttributesSupport, 'enumerize/activemodel'
  autoload :ActiveRecordSupport, 'enumerize/activerecord'
  autoload :SequelSupport, 'enumerize/sequel'
  autoload :MongoidSupport,      'enumerize/mongoid'

  module Scope
    autoload :ActiveRecord, 'enumerize/scope/activerecord'
    autoload :Sequel, 'enumerize/scope/sequel'
    autoload :Mongoid,      'enumerize/scope/mongoid'
  end

  def self.included(base)
    ActiveSupport::Deprecation.warn '`include Enumerize` was deprecated. Please use `extend Enumerize`.', caller
    extended(base)
  end

  def self.extended(base)
    base.send :include, Enumerize::Base
    base.extend Enumerize::Predicates

    if defined?(::ActiveModel::Attributes)
      base.extend Enumerize::ActiveModelAttributesSupport
    end

    if defined?(::ActiveRecord::Base)
      base.extend Enumerize::ActiveRecordSupport
      base.extend Enumerize::Scope::ActiveRecord
    end

    if defined?(::Mongoid::Document)
      base.extend Enumerize::MongoidSupport
      base.extend Enumerize::Scope::Mongoid
    end

    if defined?(::Sequel::Model)
      base.extend Enumerize::SequelSupport
      base.extend Enumerize::Scope::Sequel
    end

    if defined?(::RailsAdmin)
      require 'enumerize/integrations/rails_admin'
      base.extend Enumerize::Integrations::RailsAdmin
    end

    if ::Module === base
      base.extend Enumerize::Base::ClassMethods
      base.extend Enumerize::ModuleAttributes
    end

    super
  end

  begin
    require 'simple_form'
    require 'enumerize/hooks/simple_form'
    require 'enumerize/form_helper'
  rescue LoadError
  end

  begin
    require 'formtastic'
    require 'enumerize/hooks/formtastic'
  rescue LoadError
  end

  begin
    require 'rspec/matchers'
  rescue LoadError
  else
    require 'enumerize/integrations/rspec'
  end
end