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)
      @to_svelte ||= begin

                               cl = SvelteOnRails::Lib::SvelteAttributes
                               cl.new.calculate_instance(self, attributes)

                             end
    end

  end

  module ActiveRecordClassExtensions
    def to_svelte(*attributes)
      @to_svelte ||= begin
                               cl = SvelteOnRails::Lib::SvelteAttributes
                               cl.new.calculate_class(self, attributes)
                             end
    end
  end

  module ActiveRecordRelationExtensions
    def to_svelte(*attributes)
      @to_svelte ||= begin
                               cl = SvelteOnRails::Lib::SvelteAttributes
                               cl.new.calculate_relation(self, attributes)
                             end
    end
  end

end