在Ruby on Rails中,我处于这样一种情况:我希望我的应用程序(在特定的测试环境中)拦截应用程序生成的所有外发电子邮件,而是将它们发送到不同的测试地址(也可能修改正文)说"最初发送到:......").
我看到ActionMailer有一些钩子可以观察或拦截邮件,但如果有更简单的方法,我不想自己动手解决.建议?
我们有一个流程,我们已经实现了一个soap客户端来向服务提供商发送soap消息.
如果失败,我们需要重试服务调用3次.所以我们在内部使用HTTP Outbound Endpoint直到成功范围.
它按预期进行重试,但是在成功情况下,即使我们从服务获得响应,我们也会观察到超时错误,如下所示.
[DispatchThread:1] org.apache.cxf.endpoint.ClientImpl:等待响应操作{ http://support.cxf.module.mule.org/ }的超时调用.
观察:
我已经删除了直到成功并直接拥有HTTP Outbound端点,在这种情况下没有超时错误.
我后来尝试过,直到成功并有一个承认表达式接受响应,仍然同时响应.
failureExpression ="#[message.inboundProperties ['http.status']!= 200]"ackExpression ="#[message.correlationId]"
任何人都可以建议,如何配置直到成功接受响应,而不是浪费时间错误.
默认情况下,vim拼写检查程序可识别代码,因此它不会拼写检查文件的代码部分.实际上,在markdown中,它将(pandoc multiline)表视为代码,因此不会拼写检查其内容.
有可能覆盖这个吗?或者为包括代码在内的整个文件启用拼写检查.
我终于设法解析了网站的一部分:
get '/' do
url = '<website>'
data = Nokogiri::HTML(open(url))
@rows = data.css("td[valign=top] table tr")
erb :muster
end
Run Code Online (Sandbox Code Playgroud)
现在我想在我的视图中提取某一行.因此我输入了我的HTML代码:
<%= @rows[2] %>
Run Code Online (Sandbox Code Playgroud)
它实际上返回代码,但它有UTF8的问题:
<td class="class_name"> </td>
Run Code Online (Sandbox Code Playgroud)
相反它说
<td class="class_name">?</td>
Run Code Online (Sandbox Code Playgroud)
如何在nokogiri解析,erb和HTML生成期间确保UTF8?
在测试或创建新函数时,我经常喜欢打印正在发生的每一行代码,这样我就可以看到每一行的处理方式.
有没有办法可以达到这个目的?我正在寻找更方便的东西,所以我不必在每一行后打印.
例如,而不是写这个功能
def test_func():
l = range(10)
print l
l = zip(l,range(30,40))
print l
l = dict(l)
print l
Run Code Online (Sandbox Code Playgroud)
我想写这个没有写印刷,但仍然打印每一行
def test_func():
l = range(10)
l = zip(l,range(30,40))
l = dict(l)
Run Code Online (Sandbox Code Playgroud)
也许我可以使用Python装饰器或其他东西?
我知道标签与空格有很多问题,但看起来,与PEP 0008关于Python 3的说法相反,混合标签和空格并不总是非法的.具体来说,在同一块中混合制表符和空格是非法的,但在同一文件中允许带有空格的块和带有制表符的块.
例如,这会在Python 3.4上引发TabError:
for x in range(10):
print(x) # Spaces
print(x) # Tab
Run Code Online (Sandbox Code Playgroud)
但这很好:
for x in range(10):
print(x) # Spaces
for y in range(5):
print(y) # Tab
Run Code Online (Sandbox Code Playgroud)
这是设计的吗?
编辑:问题不是标签是否比空格更好.问题是Python是否允许同一文件中的制表符和空格是设计的.
如果有任何方法可以返回直接消息,我搜索了api instagram,却一无所获.你能说出是否有东西,或者是否有可能吗?Instagram不提供?或者我可以通过编程方式完成?我需要捕获直接消息,是否可能?
突然(可能是在更新软件包之后)vim停止使用YouCompleteMe并抛出:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: No module named _io
Run Code Online (Sandbox Code Playgroud)
(当我尝试从vim内部导入io时也会发生这种情况:python import io).
我在过去几个小时里一直在争夺这个问题,不知道问题是什么,重新安装了python和vim几次,无论是来源还是来自aptitude都没有区别.我注意到,与命令行相比,vim中的python使用了一个有趣的路径:
~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys; print sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
>>>
Run Code Online (Sandbox Code Playgroud)
从vim:
:python import sys; print sys.path
['/usr/lib/python27.zip', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', …Run Code Online (Sandbox Code Playgroud) 这个文件:
package foo
func errorer() error {
return errors.New("Whoops")
}
Run Code Online (Sandbox Code Playgroud)
将改为goimports:
package foo
import "errors"
func errorer() error {
return errors.New("Whoops")
}
Run Code Online (Sandbox Code Playgroud)
但是,我想github.com/pkg/errors在这个项目的每个地方都使用这个包,而不是errors包.
我可以告诉goimports他们总是喜欢这个github.com/pkg/errors包吗?
使用包https://github.com/golang/crypto/tree/master/ed25519即时尝试获取给定私钥的公钥.
这些数据来自http://www.bittorrent.org/beps/bep_0044.html:test 2(可盐加盐)
问题是,ed25519.Public()在用给定的私钥输入时不会返回相同的公钥.golang实现返回PVK的最后32个字节.但在我的测试数据中,这是出乎意料的.
这里的代码https://play.golang.org/p/UJNPCyuGQB
package main
import (
"encoding/hex"
"golang.org/x/crypto/ed25519"
"log"
)
func main() {
priv := "e06d3183d14159228433ed599221b80bd0a5ce8352e4bdf0262f76786ef1c74db7e7a9fea2c0eb269d61e3b38e450a22e754941ac78479d6c54e1faf6037881d"
pub := "77ff84905a91936367c01360803104f92432fcd904a43511876df5cdf3e7e548"
sig := "6834284b6b24c3204eb2fea824d82f88883a3d95e8b4a21b8c0ded553d17d17ddf9a8a7104b1258f30bed3787e6cb896fca78c58f8e03b5f18f14951a87d9a08"
// d := hex.EncodeToString([]byte(priv))
privb, _ := hex.DecodeString(priv)
pvk := ed25519.PrivateKey(privb)
buffer := []byte("4:salt6:foobar3:seqi1e1:v12:Hello World!")
sigb := ed25519.Sign(pvk, buffer)
pubb, _ := hex.DecodeString(pub)
sigb2, _ := hex.DecodeString(sig)
log.Println(ed25519.Verify(pubb, buffer, sigb))
log.Printf("%x\n", pvk.Public())
log.Printf("%x\n", sigb)
log.Printf("%x\n", sigb2)
}
Run Code Online (Sandbox Code Playgroud)
如何使用golang生成与bep相同的公钥?
python ×3
go ×2
vim ×2
actionmailer ×1
cryptography ×1
ed25519 ×1
email ×1
environment ×1
html ×1
indentation ×1
instagram ×1
linux ×1
mule ×1
mule-studio ×1
nokogiri ×1
parsing ×1
python-3.x ×1
ruby ×1
testing ×1
utf-8 ×1