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

Drop dependencies from `mruby-complex` to some gems
This commit is contained in:
Yukihiro "Matz" Matsumoto
2019-12-16 13:51:48 +09:00
committed by GitHub
2 changed files with 5 additions and 8 deletions
-3
View File
@@ -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
+5 -5
View File
@@ -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