小编Cyr*_*ris的帖子

使用SublimeText2选择所有和多个游标

我有一个包含100条新闻文章的文本文件.我需要选择全部>将光标移动到每行的开头并打开"多个游标",这样我就可以添加一些数据.

由于新文章没有相同的乞讨字符,我不能使用CTRL + F3.

有没有办法[CTRL] + [A](全选)然后>打开"多个游标"打开每行的乞讨?

sublimetext sublimetext2

52
推荐指数
1
解决办法
2万
查看次数

Rails自动加载完全大写的名称,如API

我有一些结构

  • /lib/dokuwiki.rb
  • /lib/dokuwiki/exception.rb
  • /lib/dokuwiki/api/connection.rb

dokuwiki.rb

require 'dokuwiki/exception.rb'

module Dokuwiki
  ...
Run Code Online (Sandbox Code Playgroud)

DokuWiki的/ API/connection.rb

module Dokuwiki
  module API
    class Connection
      ...
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试Dokuwiki::API::Connection.new从控制器(没有任何require)调用时,Rails默认常量自动加载失败.我相信这是因为::API模块应该有一个名为/a_p_i/而不是/api/丑陋的文件夹.

当然我可以在主要的'/lib/dokuwiki.rb'文件中要求'dokuwiki/api/connection.rb',但是它不会自动重新加载这个类(这在开发环境中有点烦人)

我该怎么做才能保留好的/api/文件夹名称,并且能够在不/lib/dokuwiki/api/connection.rb重新启动服务器的情况下进行一些实时修改?

ruby ruby-on-rails constants

25
推荐指数
1
解决办法
3118
查看次数

Amazon Cloudwatch使用JSON字段记录数据洞察

我试图在其中一个字段中使用包含JSON的数据的Logs Insights,并解析JSON字段

当我使用入门代码将其放入数据时,我的数据如下所示

fields @timestamp, @message
| sort @timestamp desc
| limit 25
Run Code Online (Sandbox Code Playgroud)

如何path在嵌套的JSON中轻松提取变量以对其执行聚合?通过查看一些文档,我认为@message.path可行,但似乎并非如此.有没有人成功解释了Insights中的JSON日志

在此输入图像描述

编辑:我的数据的样本

#
@timestamp
@message
1
2018-12-19 23:42:52.000
I, [2018-12-19T23:42:52.629855 #23447] INFO -- : [2ce588f1-c27d-4a55-ac05-62a75b39e762] {"method":"GET","path":"/api/v1/professionals/ID","format":"json","controller":"API::V1::Public::ProfessionalsController","action":"show","status":200,"duration":285.27,"view":222.36,"time":"2018-12-19T23:42:52.344+00:00","params":{"include":"user,tags,promotions,company_sector,similar_professionals.tags,similar_professionals.user","format":"json","compress":false,"id":"ID"},"@timestamp":"2018-12-19T23:42:52.629Z","@version":"1","message":"[200] GET /api/v1/professionals/ID (API::V1::Public::ProfessionalsController#show)"}
@logStream  i-05d1d61ab853517a0
@message  I, [2018-12-19T23:42:52.629855 #23447] INFO -- : [2ce588f1-c27d-4a55-ac05-62a75b39e762] {"method":"GET","path":"/api/v1/professionals/ID","format":"json","controller":"API::V1::Public::ProfessionalsController","action":"show","status":200,"duration":285.27,"view":222.36,"time":"2018-12-19T23:42:52.344+00:00","params":{"include":"xxx","format":"json","compress":false,"id":"ID"},"@timestamp":"2018-12-19T23:42:52.629Z","@version":"1","message":"[200] GET /api/v1/professionals/ID (API::V1::Public::ProfessionalsController#show)"}
@timestamp  1545262972000
2
2018-12-19 23:42:16.000
I, [2018-12-19T23:42:16.723472 #851] INFO -- : [ea712503-eb86-4a6e-ab38-ddbcd6c2b4d0] {"method":"GET","path":"/api/v1/heartbeats/new","format":"json","controller":"API::V1::Public::HeartbeatsController","action":"new","status":201,"duration":9.97,"view":3.2,"time":"2018-12-19T23:42:16.712+00:00","params":{"format":"json","compress":false},"@timestamp":"2018-12-19T23:42:16.722Z","@version":"1","message":"[201] GET /api/v1/heartbeats/new (API::V1::Public::HeartbeatsController#new)"}
Run Code Online (Sandbox Code Playgroud)

json amazon-cloudwatch amazon-cloudwatchlogs

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

强制推送一个 git lfs 文件 ID

使用 git lfs,如何强制推送我知道我在本地拥有但由于某种原因没有推送到服务器的文件 ID?

即,在我的构建系统上,我有类似的错误

Git LFS:(15 个文件中的 0 个,已跳过 1 个)0 B / 1.10 MB,已跳过 4.30 MBGit LFS:(15 个文件中的 15 个,已跳过 1 个)1.10 MB / 1.10 MB,已跳过 4.30 MB [f54812afe7bfdff14adb754bc54bc54bc54bc54bc54bc57fcdabc54bcdac54bc5cdabc54bc5cdabc58cdabc54bc5cdabc54fdfdfdff14dbc154bc57fdfdfdff15服务器:[404] 服务器上不存在对象

所以我知道我只需要推送这个 ID 为的文件,f5481...但是执行此操作的命令是什么?git lfs push不起作用,我必须在该特定文件 ID 上强制同步

我记得曾经在某个 github 问题中发现那个魔法命令丢失了,但我已经丢失了它并且 man 文档似乎没有帮助......

git git-lfs

13
推荐指数
2
解决办法
3781
查看次数

使用 Google IdP 联合登录的 AWS VPN - app_not_configured_for_user

我正在尝试按照这些说明使用 Google IdP 的联合登录来设置 VPN 连接。

以前,我使用 Google 配置了一个 saml-provider,它可以很好地使用 ARN 角色通过 Google 对 AWS 控制台的用户进行身份验证

当我设置 VPN 连接时,它成功打开浏览器并要求我选择我的 google 帐户,但在选择该帐户后,我收到了来自 Google 的错误消息

在此处输入图片说明

根据这个帮助部分

验证 SAMLRequest 中 saml:Issuer 标记中的值是否与管理控制台的 SAML 服务提供商详细信息部分中配置的实体 ID 值匹配。该值区分大小写。

所以这是一个来自 AWS 而不是我的问题?Google IdP 与 VPN 身份验证完全兼容吗?(我发现这个文档提到了与 okta 的兼容性)

编辑

感谢下面的一些答案,我设法让它与 Google IdP 一起工作。这是相关 SAML Google 应用程序屏幕的屏幕截图(请注意,对于组,我最终添加了员工部门,但我想其他任何方法都可以)

在此处输入图片说明

在此处输入图片说明

为了能够在 G Suite 界面中保存以 http:// 开头的 ACS URL,请使用teknowlogist提供的技巧:打开检查器 > 网络选项卡,执行使用 https 保存 URL 的请求,然后右键单击复制它作为 cURL,将 https 替换为 http,粘贴到常规控制台中,就可以了。

vpn amazon-web-services saml-2.0 idp

12
推荐指数
3
解决办法
2590
查看次数

Jest - 在describe块中导入多个测试,重用beforeEach()中定义的变量

我熟悉RSpec,通过编写共享示例很容易重用测试用例

shared_example_for 'a cute pet' do 
  it 'tests that the pet is a small' { expect(pet.size).to be_lesser_than(10) }
  it 'tests that the pet can smile' { expect(pet.can_smile?).to be }
end

describe 'The Octocat' do
  let(:pet) Octocat.new

  it_behaves_like 'a cute pet'
end
...
describe 'The Doge' do 
  let(:pet) Doge.new

  it_behaves_like 'a cute pet'
end
Run Code Online (Sandbox Code Playgroud)

在Jest中有相同的东西吗?有什么能让我重用在beforeEach()块中设置的变量?我试图找到一种方法,使用类似如下的方法:

# __tests__/cuteness.js
export const cutenessTests = function() {
  test('it is small', () => {
    expect(petSetInBefore.length).toBeLesserThan(5)
  })
  test('it can smile', () => {
    expect(petSetInBefore.canSmile).toBe(true)
  })
}

# …
Run Code Online (Sandbox Code Playgroud)

javascript automated-tests jestjs

11
推荐指数
3
解决办法
403
查看次数

Capybara服务器和浏览器错误,服务器上没有跟踪

出于某种原因,我的一个黄瓜测试似乎在恶作剧驱动程序和rails服务器上都失败了.

我对浏览器崩溃进行了全面跟踪,但在服务器端几乎没有任何内容.

当我打开Capybara截图时,我看到了

内部服务器错误namenil的未定义方法:NilClass

当我拖尾test.log

在0ms内完成500内部服务器错误(Elasticsearch:0.0ms)

(并没有痕迹)

我试过了

  • 设置 config.action_dispatch.show_exceptions = true
  • b标志(但它只是显示了水豚错误详细跟踪
  • (我的配置级别设置为:我的环境文件中已经调试)

如何在服务器端获得完整的回溯?

编辑

  • Capybara 2.13.0
  • Rails 5.0.2
  • 所有在backtrace_silencers中评论的内容

ruby-on-rails capybara ruby-on-rails-5

9
推荐指数
1
解决办法
508
查看次数

用于ActionMailer的Rails before_action将使用邮件程序参数

假设我有一个发送不同电子邮件的邮件程序,但预计会使用相同的参数调用.我想为所有邮件程序操作处理这些参数.因此,调用一个before_action将读取发送到邮件程序方法的参数

/mailers/my_mailer.rb
class MyMailer < ApplicationMailer
    before_filter do |c|
      # c.prepare_mail # Will fail, because I need to pass `same_param` arguments
      # # I want to send the original arguments
      # c.prepare_mail(same_param) # How do I get `same_param` here ?
    end

    def action1(same_param)
      # email view is going to use @to, @from, @context    
      method_only_specific_to_action1
    end

    def action2(same_param)
      # email view is going to use @to, @from, @context
      method_only_specific_to_action2
    end

    private
      def prepare_mail(same_params)
        @to = same_params.recipient
        @from = same_params.initiator …
Run Code Online (Sandbox Code Playgroud)

ruby actionmailer ruby-on-rails-5

8
推荐指数
1
解决办法
2513
查看次数

如何编码"按键继续"

我正在尝试实现一个简单的"按任意键继续".我将此消息打印到控制台,我想在按下一个键后将其擦除.

在" 使用ruby在命令提示符中写入以前的输出行 "之后,我尝试了这段代码:

def continue
  print "Press any key to continue\r"
  gets
end

puts "An awesome story begins..."
continue
puts "And ends after 2 lines"
Run Code Online (Sandbox Code Playgroud)

但是,这个\r技巧不起作用,下一个puts不会删除句子.是因为不同的功能背景吗?将gets产生一个新行?或者因为我在Windows操作系统上?

ruby

8
推荐指数
1
解决办法
7158
查看次数

Rails 5 throw abort:如何设置错误消息?

Rails已经引入了这种throw(:abort)语法,但现在我如何获得有意义的销毁错误?

对于验证错误,人们会这样做

if not user.save
  # => user.errors has information

if not user.destroy
  # => user.errors is empty
Run Code Online (Sandbox Code Playgroud)

这是我的模特

class User

  before_destroy :destroy_validation,
    if: :some_reason

  private

  def destroy_validation
    throw(:abort) if some_condition
  end
Run Code Online (Sandbox Code Playgroud)

activemodel ruby-on-rails-5

8
推荐指数
2
解决办法
7869
查看次数