Skip to content

Commit

Permalink
Merge pull request #776 from Shopify/avoid-anonymous-eval
Browse files Browse the repository at this point in the history
Avoid anonymous eval
  • Loading branch information
jnunemaker authored Mar 20, 2024
2 parents 8773af1 + fc39edd commit 5b25ae9
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions lib/httparty/module_inheritable_attributes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def mattr_inheritable(*args)
@mattr_inheritable_attrs += args

args.each do |arg|
module_eval %(class << self; attr_accessor :#{arg} end)
singleton_class.attr_accessor(arg)
end

@mattr_inheritable_attrs
Expand All @@ -42,14 +42,12 @@ def inherited(subclass)
subclass.instance_variable_set(ivar, instance_variable_get(ivar).clone)

if instance_variable_get(ivar).respond_to?(:merge)
method = <<-EOM
subclass.class_eval <<~RUBY, __FILE__, __LINE__ + 1
def self.#{inheritable_attribute}
duplicate = ModuleInheritableAttributes.hash_deep_dup(#{ivar})
#{ivar} = superclass.#{inheritable_attribute}.merge(duplicate)
end
EOM

subclass.class_eval method
RUBY
end
end
end
Expand Down

0 comments on commit 5b25ae9

Please sign in to comment.