小编fgu*_*len的帖子

Ruby&Syslog和自定义工具

我是新玩的系统日志.

我们决定使用syslog来跟踪Rails应用程序中的一些特殊事件.

问题是我不想使用默认/var/log/system.log文件,而是使用自定义文件/var/log/myapp_events.log.

我知道为此,我必须/etc/syslog.conf像这样定义我自己的设施:

myapp_events.* /var/log/myapp_events.log
Run Code Online (Sandbox Code Playgroud)

重新启动syslogd后,我发现我可以直接在bash控制台中使用它:

syslog -s -k Facility myapp_events Message "this is my message"
Run Code Online (Sandbox Code Playgroud)

消息显示在/var/log/myapp_events.log预期中,但我无法使用syslog ruby​​ gem重现此行为.我试过了:

require 'syslog'
Syslog.open('myapp_events', Syslog::LOG_PID | Syslog::LOG_CONS) { |s| s.warning 'this is my message' }  # sends the message to system.log
Syslog.open('myapp_events', Syslog::LOG_PID | Syslog::LOG_CONS, 'myapp_events') { |s| s.warning 'this is my message' }  # error because 'myapp_event' can't be converted to int.
Run Code Online (Sandbox Code Playgroud)

我看到Syslog.open有第三个参数是设施,但它必须是一个整数,我所拥有的是一个字符串.

有什么建议吗?

ruby syslog

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

Backbone.js:从集合中删除项目

我正在使用backbone.js来实现一个名为Roster的好友列表.我对名册收集和个人的主干观点rosterEntry如下:

    Slx.Roster.Views.RosterEntry = Backbone.View.extend({
    tagName: "li",
    className : "rosterEntry clearfix",
    templateSelector: '#rosterEntryTemplate',

    initialize: function() {
        _.bindAll(this, 'render');
        this.model.bind('change', this.render);
        this.model.bind('remove', this.remove);
        this.template = _.template($("#rosterEntryTemplate").html());
    },

    remove: function () {
        debug.log("Called remove event on model");
        $(this.el).remove();
    },
    render: function() {
        var renderedContent = this.template(this.model.toJSON());
        this.id = this.model.Id;
        $(this.el).attr('id', "friendid-" + this.model.get("id")).html(renderedContent);
        return this;
    }
});

    Slx.Roster.Views.Roster = Backbone.View.extend({
        el: "div#roster-container",
        initialize: function () {
            _.bindAll(this, 'render', 'add', 'remove');
            this.template = _.template($("#rosterTemplate").html());
            this.collection.bind('reset', this.render);
            this.collection.bind('add', this.add);
            this.collection.bind('remove', this.remove);
        },
        add: …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js

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

Ruby如何合并两个具有略微不同标头的CSV文件

我有两个带有一些常用标题的CSV文件,其他只出现在一个或另一个中的文件,例如:

# csv_1.csv
H1,H2,H3
V11,V22,V33
V14,V25,V35
Run Code Online (Sandbox Code Playgroud)
# csv_2.csv
H1,H4
V1a,V4b
V1c,V4d
Run Code Online (Sandbox Code Playgroud)

我想合并两者并获得一个新的CSV文件,该文件结合了以前CSV文件的所有信息.在需要时注入新列,并使用值提供新单元格.

结果示例:

H1,H2,H3,H4
V11,V22,V33,
V14,V25,V35,
V1a,,,V4b
V1c,,,V4d 
Run Code Online (Sandbox Code Playgroud)

ruby csv merge

5
推荐指数
1
解决办法
1854
查看次数

assert_no_template

我在想,如果我们是否有类似assert_no_template的的对面assert_template.

我试图测试的是实际渲染中没有使用具体模板.

ruby-on-rails functional-testing

4
推荐指数
2
解决办法
869
查看次数

基于不同权重随机混洗阵列的算法

我有一组我想随机随机播放的元素,但每个元素都有不同的优先级或权重.因此,具有更大权重的元素必须具有更多的概率才能在结果的顶部.

我有这个数组:

elements = [
  { :id => "ID_1", :weight => 1 },
  { :id => "ID_2", :weight => 2 },
  { :id => "ID_3", :weight => 6 }
]
Run Code Online (Sandbox Code Playgroud)

我想将它洗所以用ID的元素"ID_3"〜6次以上的概率比元素第一"ID_1"〜3倍以上的概率比元素"ID_2".

 更新

澄清:一旦你选择了第一个位置,其他元素将使用相同的逻辑争取休息位置.

ruby sorting algorithm

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

Ember,如何从自定义适配器继承

我有一个全球定制适配器:

// app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';

export default ActiveModelAdapter.extend({
  namespace: 'api',
  host: 'http://reportsdashboard-v2.daliaresearch.com.dev'
});
Run Code Online (Sandbox Code Playgroud)

另一个特定于一个模型:

// app/adapters/chart.js
import ActiveModelAdapter from 'active-model-adapter';

export default ActiveModelAdapter.extend({
  namespace: 'api',
  host: 'http://reportsdashboard-v2.daliaresearch.com.dev',
  buildURL: function(type, id, snapshot) {
    return this.host + '/' + this.namespace + '/reports/' + snapshot.record.get('report.id') + '/charts/' + id;
  }
});
Run Code Online (Sandbox Code Playgroud)

如您所见,存在定义属性'namespace''api'的重复.这是我尝试从ChartsAdapter继承ApplicationAdapter原因之一.

javascript ember.js ember-cli

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

Ruby,了解 if 块中的局部变量范围

我在if块中的变量声明中检测到意外行为:

puts "local_variables: #{local_variables}"
puts "defined? my_variable ini: #{defined? my_variable}"

if true
  my_variable = 1
  puts "local_variables in the 'if' block: #{local_variables}"
end

1.times do
  my_variable_2 = 1
  puts "local_variables in the 'times' block: #{local_variables}"
  puts "defined? my_variable_2 in the 'times' block: #{defined? my_variable_2}"
end

puts "defined? my_variable_2 end: #{defined? my_variable_2}"
puts "defined? my_variable end: #{defined? my_variable}"
puts "my_variable: #{my_variable}"
Run Code Online (Sandbox Code Playgroud)

结果是:

puts "local_variables: #{local_variables}"
puts "defined? my_variable ini: #{defined? my_variable}"

if true
  my_variable = 1
  puts "local_variables in …
Run Code Online (Sandbox Code Playgroud)

ruby binding scope

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

覆盖接口方法但使用派生类的参数

我想创建一个服务结构,所有这些服务都源自IService具有唯一方法的接口Perform

为了允许派生类定义特定 Perform 实现需要的参数类型,我将这些参数封装在一个名为的接口中 IConfig

问题是我无法访问自定义 Perform 实现中的派生类属性,因为我被迫键入将参数为IConfig

有什么方法可以用接口方法的参数类的派生类的参数覆盖接口/抽象类方法吗?

例子:

interface IConfig {}

class Config : IConfig
{
    public int Property;
}

interface IService
{
    void Perform(IConfig config);
}

class Service : IService
{
    void IService.Perform(IConfig config)
    {
        config.Property;
    }
}
Run Code Online (Sandbox Code Playgroud)

通过上面的Service实现,我得到了错误:

“IConfig”不包含“属性”的定义

如果我把它改成这样:

class Service : IService
{
    void IService.Perform(Config config)
    {
        config.Property;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'Service' 没有实现接口成员 'IService.Perform(IConfig)'

在可实现的接口成员中找不到显式接口声明中的“Service.Perform(Config)”

我想知道是否有类似的东西:

void IService.Perform((IConfig)Config config)
Run Code Online (Sandbox Code Playgroud)

或者

void IService.Perform(Config config as IConfig) …
Run Code Online (Sandbox Code Playgroud)

c#

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

Godot:有什么方法可以从编辑器调用脚本中的方法吗?(用于测试目的)

我来自Unity,在那里你可以使用ContextMenu方法属性。它将在编辑器中添加一个按钮,您可以单击该按钮,并且将调用脚本中的方法。

这对于测试/调试目的非常有帮助。当您正在测试某个功能并且想要一种简单的方法来触发它时。

Godot 中是否有类似的东西,或者我可以使用任何解决方法?

(这里是戈多3.5)

godot

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

Unity:新输入系统和旧事件系统之间的冲突

使用新的 InputSystem 时。如果我将 Canvas 组件添加到我的场景中,它会自动带来旧的 EventSystem 并且我在控制台中看到此错误:

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
UnityEngine.Input.get_mousePosition () (at <213e6bf8f2dd495fbd693e6ce506136b>:0)
UnityEngine.UI.MultipleDisplayUtilities.GetMousePositionRelativeToMainDisplayResolution () (at /Applications/Unity/Hub/Editor/2020.1.14f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/MultipleDisplayUtilities.cs:40)
UnityEngine.EventSystems.BaseInput.get_mousePosition () (at /Applications/Unity/Hub/Editor/2020.1.14f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/InputModules/BaseInput.cs:75)
UnityEngine.EventSystems.StandaloneInputModule.UpdateModule () (at /Applications/Unity/Hub/Editor/2020.1.14f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/InputModules/StandaloneInputModule.cs:175)
UnityEngine.EventSystems.EventSystem.TickModules () (at /Applications/Unity/Hub/Editor/2020.1.14f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:328)
UnityEngine.EventSystems.EventSystem.Update () (at /Applications/Unity/Hub/Editor/2020.1.14f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:343)
Run Code Online (Sandbox Code Playgroud)

unity-game-engine

3
推荐指数
2
解决办法
4310
查看次数