lib/svelte_on_rails/active_record_extensions.rb
# lib/svelte_on_rails/active_record_extensions.rb module SvelteOnRails module ActiveRecordExtensions # def self.included(base) # unless defined?(ActiveRecord::Base) && base.ancestors.include?(ActiveRecord::Base) # raise 'SvelteOnRails::ActiveRecordExtensions can only be included in ActiveRecord models' # end # end # Returns a hash of attributes, methods, and associations formatted for Svelte components def to_svelte(*attributes, **associations) @to_svelte ||= begin cl = SvelteOnRails::Lib::SvelteAttributes r = cl.new.calculate_instance(self, attributes, associations) r.first.merge({self.class.to_s.underscore => r[1]}) end end end module ActiveRecordClassExtensions def to_svelte(*attributes, **associations) @to_svelte ||= begin cl = SvelteOnRails::Lib::SvelteAttributes cl.new.calculate_class(self, attributes, associations) end end end module ActiveRecordRelationExtensions def to_svelte(*attributes, **associations) @to_svelte ||= begin cl = SvelteOnRails::Lib::SvelteAttributes cl.new.calculate_relation(self, attributes, associations) end end end end