drop: tiny optimization to .mutable to create fewer objects
This commit is contained in:
parent
dab53a697b
commit
9579924f8a
|
@ -15,8 +15,13 @@ module Jekyll
|
||||||
def self.mutable(is_mutable = nil)
|
def self.mutable(is_mutable = nil)
|
||||||
if is_mutable
|
if is_mutable
|
||||||
@is_mutable = is_mutable
|
@is_mutable = is_mutable
|
||||||
|
else
|
||||||
|
@is_mutable = false
|
||||||
end
|
end
|
||||||
@is_mutable || false
|
end
|
||||||
|
|
||||||
|
def self.mutable?
|
||||||
|
@is_mutable
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create a new Drop
|
# Create a new Drop
|
||||||
|
@ -39,7 +44,7 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns the value for the given key, or nil if none exists
|
# Returns the value for the given key, or nil if none exists
|
||||||
def [](key)
|
def [](key)
|
||||||
if self.class.mutable && @mutations.key?(key)
|
if self.class.mutable? && @mutations.key?(key)
|
||||||
@mutations[key]
|
@mutations[key]
|
||||||
elsif respond_to? key
|
elsif respond_to? key
|
||||||
public_send key
|
public_send key
|
||||||
|
@ -65,7 +70,7 @@ module Jekyll
|
||||||
if respond_to?("#{key}=")
|
if respond_to?("#{key}=")
|
||||||
public_send("#{key}=", val)
|
public_send("#{key}=", val)
|
||||||
elsif respond_to? key
|
elsif respond_to? key
|
||||||
if self.class.mutable
|
if self.class.mutable?
|
||||||
@mutations[key] = val
|
@mutations[key] = val
|
||||||
else
|
else
|
||||||
raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
|
raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
|
||||||
|
|
Loading…
Reference in New Issue