小编Kev*_*cha的帖子

我可以在我们以外的地方发送一条关于云观察警报的短信吗?

看起来AWS不提供SMS作为美国东部以外的SNS主题订户的协议.我想连接我的CloudWatch警报并在出现故障时收到短信,但无法将其发送到SMS.

有没有办法做到这一点?

python amazon-web-services amazon-sns amazon-cloudwatch aws-lambda

4
推荐指数
1
解决办法
2092
查看次数

我应该在NilClass中包含Enumerable吗?

在我使用的rails应用程序中非常常见的错误之一是nil类错误.具体来说,我经常看到像"NoMethodError:undefined方法`每个'为nil:NilClass"的错误.

这些都很烦人,通常是良性的,并且在整个地方挤满了可怕的无法检查代码.

这是一个例子:

[3] pry(main)> def test(enum)
[3] pry(main)*   enum.each { |x| puts x }
[3] pry(main)* end
=> nil
[4] pry(main)> test(nil)
NoMethodError: undefined method `each' for nil:NilClass
from (pry):2:in `test'
[5] pry(main)>
Run Code Online (Sandbox Code Playgroud)

如果我只是输入一个返回除非枚举,或者返回除非responds_to?(:each).但是,如果我不希望这些检查混淆我的代码怎么办?

好吧,我想到了一个想法,我想知道这是不是一个坏主意.

[5] pry(main)> class NilClass
[5] pry(main)*   include Enumerable
[5] pry(main)*
[5] pry(main)*   def each; end
[5] pry(main)* end
=> nil
[6] pry(main)> test(nil)
=> nil
[7] pry(main)>
Run Code Online (Sandbox Code Playgroud)

我无法想象任何库依赖于nil上的NoMethodError来驱动逻辑(如果他们这样做听起来像我不应该使用的库).此外,这提供了各种好处,因为现在可以使用整个枚举方法:

[12] pry(main)> Enumerable.public_instance_methods(false).each { |method| puts "#{method.to_s.ljust(20)} => #{nil.send(method) {} }" if nil.method(method).parameters.empty? }
to_a                 => …
Run Code Online (Sandbox Code Playgroud)

ruby enums ruby-on-rails

3
推荐指数
1
解决办法
95
查看次数