{"id":18681818,"url":"https://github.com/gravityblast/active_musicbrainz","last_synced_at":"2025-04-12T04:09:36.641Z","repository":{"id":8705626,"uuid":"10372242","full_name":"gravityblast/active_musicbrainz","owner":"gravityblast","description":"Ruby ActiveRecord models for the MusicBrainz database.","archived":false,"fork":false,"pushed_at":"2016-08-22T12:03:48.000Z","size":22,"stargazers_count":24,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T04:09:32.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gravityblast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-30T00:32:42.000Z","updated_at":"2024-12-09T12:34:04.000Z","dependencies_parsed_at":"2022-07-09T21:16:10.568Z","dependency_job_id":null,"html_url":"https://github.com/gravityblast/active_musicbrainz","commit_stats":null,"previous_names":["pilu/active_musicbrainz"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravityblast%2Factive_musicbrainz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravityblast%2Factive_musicbrainz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravityblast%2Factive_musicbrainz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravityblast%2Factive_musicbrainz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gravityblast","download_url":"https://codeload.github.com/gravityblast/active_musicbrainz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514222,"owners_count":21116903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T10:09:38.625Z","updated_at":"2025-04-12T04:09:36.618Z","avatar_url":"https://github.com/gravityblast.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ActiveMusicbrainz\n\nActiveRecord models for the [MusicBrainz](http://musicbrainz.org/) [database](http://musicbrainz.org/doc/MusicBrainz_Database).\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n    gem 'active_musicbrainz'\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install active_musicbrainz\n\n## Usage\n\nRequire ActiveMusicbrainz and initialize the database **(if you are inside a rails app, you can skip the following lines)**:\n\n    require 'active_musicbrainz'\n    ActiveRecord::Base.establish_connection(YAML.load_file('path/to/config.yml'))\n\nSome models are hardcoded, others are dynamically generated based on existing tables. You can initialize all those models with the following line:\n\n    ActiveMusicbrainz.init\n\nThe *init* method should be called after establishing a database connection since the library needs to read all the database tables.\nIf you are inside a rails project you could put the code above in **config/initializers/active_musicbrainz.rb**.\n\nIf you want to establish a different database connection for the ActiveMusicbrainz tables you can call the establish_connection method on ActiveMusicbrainz::Module::Base instead of ActiveRecord::Base:\n\n    ActiveMusicbrainz::Model::Base.establish_connection(YAML.load_file('path/to/config.yml'))\n\nNow under the ActiveMusicbrainz::Model module, you have one model for each MusicBrainz table.\nHere some examples:\n\n    artist = ActiveMusicbrainz::Model::Artist.by_gid '9a709693-b4f8-4da9-8cc1-038c911a61be'\n     =\u003e #\u003cActiveMusicbrainz::Model::Artist id: 24146, gid: \"9a709693-b4f8-4da9-8cc1-038c911a61be\", name: 143497, sort_name: 143497, begin_date_year: 1976, begin_date_month: 3, begin_date_day: 30, end_date_year: nil, end_date_month: nil, end_date_day: nil, type: 1, area: 221, gender: 1, comment: \"UK electro artist Simon Green\", edits_pending: 0, last_updated: \"2013-05-13 11:00:09\", ended: false, begin_area: nil, end_area: nil\u003e\n\n    artist.name\n     =\u003e \"Bonobo\"\n\n    artist.release_groups.first.type\n     =\u003e #\u003cActiveMusicbrainz::Model::ReleaseGroupPrimaryType id: 1, name: \"Album\"\u003e\n\n    artist.release_groups.each{|r| puts r.name }\n      Black Sands\n      Dial 'M' for Monkey\n      Scuba EP\n      Flutter\n      Pick Up\n      Terrapin\n      Eyesdown\n      ...\n\n    artist.release_groups.first.releases.first.mediums\n     =\u003e [#\u003cActiveMusicbrainz::Model::Medium id: 654199, release: 654199, position: 1, format: 1, name: nil, edits_pending: 0, last_updated: \"2012-01-15 13:46:18\", track_count: 12\u003e]\n\n    artist.release_groups.first.releases.first.mediums.first.tracks.each{|t| puts t.name}\n      Prelude\n      Kiara\n      Kong\n      Eyesdown\n      ...\n\n    artist.release_groups.first.releases.first.mediums.first.format\n     =\u003e #\u003cActiveMusicbrainz::Model::MediumFormat id: 1, name: \"CD\", parent: nil, child_order: 0, year: 1982, has_discids: true\u003e\n\n## Author\n\nAndrea Franz - [http://gravityblast.com](http://gravityblast.com)\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravityblast%2Factive_musicbrainz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgravityblast%2Factive_musicbrainz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravityblast%2Factive_musicbrainz/lists"}