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