Module: ActiveBrainz

Defined in:
lib/active_brainz.rb,
lib/active_brainz/version.rb,
lib/active_brainz/models/base.rb,
lib/active_brainz/concerns/has_gid.rb,
lib/active_brainz/models/area/area.rb,
lib/active_brainz/models/link/link.rb,
lib/active_brainz/models/genre/genre.rb,
lib/active_brainz/models/label/label.rb,
lib/active_brainz/models/place/place.rb,
lib/active_brainz/models/track/track.rb,
lib/active_brainz/models/artist/artist.rb,
lib/active_brainz/models/gender/gender.rb,
lib/active_brainz/models/medium/medium.rb,
lib/active_brainz/models/area/area_type.rb,
lib/active_brainz/models/iso/iso_3166_1.rb,
lib/active_brainz/models/iso/iso_3166_2.rb,
lib/active_brainz/models/iso/iso_3166_3.rb,
lib/active_brainz/models/link/link_type.rb,
lib/active_brainz/models/links/area_area.rb,
lib/active_brainz/models/release/release.rb,
lib/active_brainz/models/label/label_type.rb,
lib/active_brainz/models/place/place_type.rb,
lib/active_brainz/models/genre/genre_alias.rb,
lib/active_brainz/models/label/label_alias.rb,
lib/active_brainz/models/place/place_alias.rb,
lib/active_brainz/models/artist/artist_type.rb,
lib/active_brainz/models/artist/artist_alias.rb,
lib/active_brainz/models/recording/recording.rb,
lib/active_brainz/concerns/has_begin_end_date.rb,
lib/active_brainz/models/artist/artist_credit.rb,
lib/active_brainz/concerns/has_parent_children.rb,
lib/active_brainz/models/release/release_group.rb,
lib/active_brainz/models/label/label_alias_type.rb,
lib/active_brainz/models/place/place_alias_type.rb,
lib/active_brainz/models/artist/artist_alias_type.rb,
lib/active_brainz/models/artist/artist_credit_name.rb

Defined Under Namespace

Modules: HasBeginEndDate, HasGID, HasParentChildren, Version Classes: Area, AreaArea, AreaType, Artist, ArtistAlias, ArtistAliasType, ArtistCredit, ArtistCreditName, ArtistType, Base, Gender, Genre, GenreAlias, ISO31661, ISO31662, ISO31663, Label, LabelAlias, LabelAliasType, LabelType, Link, LinkType, Medium, Place, PlaceAlias, PlaceAliasType, PlaceType, Recording, Release, ReleaseGroup, Track

Constant Summary collapse

SCHEMA_VERSION =

Version of MusicBrainz’ SQL schema

25
SCHEMA_DATE =

Publication date of MusicBrainz’ SQL schema

Date.new(2021, 2, 13)
VERSION =
ActiveBrainz::Version::STRING

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loaderObject (readonly)

Code loader instance



10
11
12
# File 'lib/active_brainz.rb', line 10

def loader
  @loader
end

Class Method Details

.rootObject



12
13
14
# File 'lib/active_brainz.rb', line 12

def root
  @root ||= Pathname.new(File.expand_path(File.join("..", ".."), __FILE__))
end

.setupObject

rubocop:disable Metrics/AbcSize



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/active_brainz.rb', line 17

def setup
  @loader = Zeitwerk::Loader.for_gem

  # Register inflections
  require root.join("config/inflections.rb")

  # Set up code loader
  loader.enable_reloading if ENV["ACTIVE_BRAINZ_ENV"] == "development"

  loader.collapse(root.join("lib/active_brainz/concerns"))
  loader.collapse(root.join("lib/active_brainz/models"))
  loader.collapse(root.join("lib/active_brainz/models/*"))

  # Do not eager load models, because they will try and connect to the database
  # This fails in Rails apps, because gems are loaded before the configuration
  # is initialized.
  loader.do_not_eager_load(root.join("lib/active_brainz/models"))

  loader.setup
  loader.eager_load

  # Load initializers
  Dir[root.join("config/initializers/*.rb")].sort.each { |f| require f }
end