Module: SorbetRails::ModelPlugins

Extended by:
T::Sig
Includes:
Kernel
Included in:
ModelRbiFormatter
Defined in:
lib/sorbet-rails/model_plugins/base.rb,
lib/sorbet-rails/model_plugins/plugins.rb

Defined Under Namespace

Classes: ActiveRecordAssoc, ActiveRecordAttribute, ActiveRecordEnum, ActiveRecordFactoryMethods, ActiveRecordFinderMethods, ActiveRecordNamedScope, ActiveRecordQuerying, ActiveRelationWhereNot, ActiveStorageMethods, Base, CustomFinderMethods, EnumerableCollections, UnrecognizedPluginName

Constant Summary collapse

@@plugins =
T.let([], T::Array[T.class_of(Base)])

Instance Method Summary collapse

Instance Method Details

#get_plugin_by_name(plugin_name) ⇒ Object



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
# File 'lib/sorbet-rails/model_plugins/plugins.rb', line 42

def get_plugin_by_name(plugin_name)
  case plugin_name
  when :active_record_enum
    ActiveRecordEnum
  when :active_record_named_scope
    ActiveRecordNamedScope
  when :active_record_querying
    ActiveRecordQuerying
  when :active_relation_where_not
    ActiveRelationWhereNot
  when :active_record_attribute
    ActiveRecordAttribute
  when :active_record_assoc
    ActiveRecordAssoc
  when :active_record_finder_methods
    ActiveRecordFinderMethods
  when :active_record_factory_methods
    ActiveRecordFactoryMethods
  when :custom_finder_methods
    CustomFinderMethods
  when :enumerable_collections
    EnumerableCollections
  when :active_storage_methods
    ActiveStorageMethods
  when :kaminari
    require('sorbet-rails/gem_plugins/kaminari_plugin')
    KaminariPlugin
  when :pg_search
    require('sorbet-rails/gem_plugins/pg_search_plugin')
    PgSearchPlugin
  when :friendly_id
    require('sorbet-rails/gem_plugins/friendly_id_plugin')
    FriendlyIdPlugin
  when :shrine
    require('sorbet-rails/gem_plugins/shrine_plugin')
    ShrinePlugin
  when :elastic_search
    require('sorbet-rails/gem_plugins/elastic_search_plugin')
    ElasticSearchPlugin
  else
    raise UnrecognizedPluginName.new(
      "Unrecognized plugin with name: #{plugin_name}. Please check available plugins in the
      documentation".squish!
    )
  end
end

#get_pluginsObject



32
33
34
# File 'lib/sorbet-rails/model_plugins/plugins.rb', line 32

def get_plugins
  @@plugins
end

#register_plugin(plugin) ⇒ Object



22
23
24
# File 'lib/sorbet-rails/model_plugins/plugins.rb', line 22

def register_plugin(plugin)
  @@plugins.push(plugin) unless @@plugins.include?(plugin)
end

#register_plugin_by_name(plugin_name) ⇒ Object



37
38
39
# File 'lib/sorbet-rails/model_plugins/plugins.rb', line 37

def register_plugin_by_name(plugin_name)
  register_plugin(get_plugin_by_name(plugin_name))
end

#set_plugins(plugins) ⇒ Object



27
28
29
# File 'lib/sorbet-rails/model_plugins/plugins.rb', line 27

def set_plugins(plugins)
  @@plugins = plugins
end