Unverified Commit fc5a9c2b authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto Committed by GitHub

Merge pull request #4877 from shuujii/drop-dependencies-from-mruby-complex-to-some-gems

Drop dependencies from `mruby-complex` to some gems
parents cc6d1742 4bdb1eb5
......@@ -3,8 +3,5 @@ MRuby::Gem::Specification.new('mruby-complex') do |spec|
spec.author = 'mruby developers'
spec.summary = 'Complex class'
spec.add_dependency 'mruby-metaprog', core: 'mruby-metaprog'
spec.add_dependency 'mruby-object-ext', core: 'mruby-object-ext'
spec.add_dependency 'mruby-numeric-ext', core: 'mruby-numeric-ext'
spec.add_dependency 'mruby-math', core: 'mruby-math'
end
......@@ -8,7 +8,7 @@ class Complex < Numeric
end
def to_s
"#{real}#{'+' unless imaginary.negative?}#{imaginary}i"
"#{real}#{'+' unless imaginary < 0}#{imaginary}i"
end
def +@
......@@ -56,7 +56,7 @@ class Complex < Numeric
if rhs.is_a? Complex
real == rhs.real && imaginary == rhs.imaginary
elsif rhs.is_a? Numeric
imaginary.zero? && real == rhs
imaginary == 0 && real == rhs
end
end
......@@ -106,14 +106,14 @@ class Complex < Numeric
[Fixnum, Float].each do |cls|
[:+, :-, :*, :/, :==].each do |op|
cls.instance_exec do
cls.instance_eval do
original_operator_name = "__original_operator_#{op}_complex"
alias_method original_operator_name, op
define_method op do |rhs|
if rhs.is_a? Complex
Complex(self).send(op, rhs)
Complex(self).__send__(op, rhs)
else
send(original_operator_name, rhs)
__send__(original_operator_name, rhs)
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment