diff --git a/Gemfile b/Gemfile index e641f94..bf88eaa 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,6 @@ source "https://rubygems.org" -# Specify your gem's dependencies in rails_vault.gemspec gemspec group :development do diff --git a/lib/rails_vault/base.rb b/lib/rails_vault/base.rb index b7c4742..38c12b7 100644 --- a/lib/rails_vault/base.rb +++ b/lib/rails_vault/base.rb @@ -4,21 +4,26 @@ class Base < ActiveRecord::Base belongs_to :resource, polymorphic: true - def self.inherited(subclass) - super - scope_name = subclass.name.demodulize.underscore + class << self + def inherited(subclass) + super - subclass.vault_scope(scope_name) - end + scope_name = subclass.name.demodulize.underscore - def self.vault_scope(scope_name) - default_scope { where(scope: scope_name) } - end + subclass.vault_scope(scope_name) + end - def self.vault_attribute(key, *attributes) - options = attributes.extract_options! + def vault_scope(scope_name) + default_scope { where(scope: scope_name) } + end - store_attribute :payload, key, *attributes, **options + def vault_attribute(key, *attributes) + options = attributes.extract_options! + + store_attribute :payload, key, *attributes, **options + end end + + def vault_attributes = payload.keys end end diff --git a/lib/rails_vault/vaults.rb b/lib/rails_vault/vaults.rb index b59e1dc..3285775 100644 --- a/lib/rails_vault/vaults.rb +++ b/lib/rails_vault/vaults.rb @@ -4,12 +4,17 @@ module Vaults class_methods do def vault(association_name, class_name: nil) - has_one association_name, as: :resource, class_name: class_name.presence || "#{self}::#{association_name.to_s.camelize}", dependent: :destroy + has_one( + association_name, + as: :resource, + class_name: class_name.presence || "#{self}::#{association_name.to_s.camelize}", + dependent: :destroy + ) end def vaults(*association_names) association_names.each do |association_name| - has_one association_name, as: :resource, dependent: :destroy + has_one(association_name, as: :resource, dependent: :destroy) end end end diff --git a/rails_vault.gemspec b/rails_vault.gemspec index 7645ca6..def1fc3 100644 --- a/rails_vault.gemspec +++ b/rails_vault.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |spec| spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = "https://github.com/Rails-Designer/rails_vault/" - spec.files = Dir["{bin,app,config,db,lib,public}/**/*", "Rakefile", "README.md", "rails_vault.gemspec", "Gemfile", "Gemfile.lock"] + spec.files = Dir["{bin,db,lib}/**/*", "Rakefile", "README.md", "rails_vault.gemspec", "Gemfile", "Gemfile.lock"] spec.required_ruby_version = ">= 3.1.0" spec.add_dependency "rails", ">= 7.2.2"