lib/plain_model/querying/includes.rb in plain_model-0.1.0 vs lib/plain_model/querying/includes.rb in plain_model-0.2.0

- old
+ new

@@ -7,26 +7,27 @@ module PlainModel module Querying module Includes extend ActiveSupport::Concern - def initialize(*args) - super(*args) - values[:includes] = {} + def initial_values + super.merge includes: {} end - included do - self.chainable_methods += [:includes] - end - # Chain method # @param names [Array<Symbol,Hash>] - names of includes with optional tail hash for nested includes # @return new instance with applied changes def includes(*names) - _within_new_instance do - new_includes = ::PlainModel::MergeIncludes.new(values[:includes]).merge(names) - values[:includes] = new_includes - end + dup.includes!(*names) + end + + # Chain method + # @param names [Array<Symbol,Hash>] - names of includes with optional tail hash for nested includes + # @return current instance with applied changes + def includes!(*names) + new_includes = ::PlainModel::MergeIncludes.new(values[:includes]).merge(names) + values[:includes] = new_includes + self end end end end