小编JP.*_*JP.的帖子

Ruby的异常错误类

您可以创建异常的子类以使其更具描述性,但您应如何设置默认的"消息"?

class MyError < StandardError
  # default message = "You've triggered a MyError"
end

begin
  raise MyError, "A custom message"
rescue Exception => e
  p e.message
end

begin
  raise MyError
raise Exception => e
  p e.message
end
Run Code Online (Sandbox Code Playgroud)

第一个应输出'自定义消息'

第二个应该输出'你已经触发了一个MyError'

有关最佳做法的任何建议吗?

ruby

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

AngularJS:显示加载HTML直到加载数据

在数据加载完成之前,如何让AngularJS显示加载微调器?

如果我的控制器已$scope.items = [{name: "One"}]静态设置,并且填充了一个AJAX加载器$scope.items[0]['lateLoader'] = "Hello",我希望微调器显示直到AJAX加载完成,然后用检索到的数据填充绑定范围.

<ul ng-repeat="item in items">
  <li>
    <p>Always present: {{item.name}}</p>
    <p>Loads later: <span ng-bind="item.lateLoader"><i class="icon icon-refresh icon-spin"></i></span></p>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

此代码立即填充绑定范围,并且由于item.lateLoader空,所以微调器将替换为空.

我该怎么干净呢?

javascript angularjs angularjs-ng-repeat

21
推荐指数
3
解决办法
8万
查看次数

在Javascript中发现Bonjour?也许?

所以它是一个远景,我将从那开始.

是否可以单独在javascript中发现bonjour广告的HTTP服务?

为什么这会有用?想象一下本地服务正在寻找一些数据(例如您当前的纬度/经度),数据通过网络服务公开并由Bonjour Zeroconf做广告.一个(远程)网站可能想知道你当前的纬度/经度,而不是必须知道你正在运行MyGPSserverVersion2,该网站可以使用javascript搜索本地bonjour _Compatible_location_services._tcp,然后一旦有了IP地址就继续.

如果这是不可能的(我认为可能就是这种情况,Javascript是相当受限制的)然后有什么障碍,是否有人对如何克服它们有任何想法?

javascript bonjour zeroconf

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

打印CSS - 元素的完整页面

我的media="print"CSS中是否有一些语法可以使一个div元素覆盖整个打印页面?

<div id="important_thing">Important!</div>
<ol id="other_stuff">
  <li>Thing</li>
  <li>blah</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

print.css

#important_thing {
  width:100%;
  height:100%;
}

#other_stuff li {
  float:left;
  width:20pt;
  height:8pt;
}
Run Code Online (Sandbox Code Playgroud)

这没有达到预期的效果.我希望有一个完整的页面用于"重要的东西"以及所有列表元素所需的许多其他页面.

有任何想法吗?

css printing

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

用XSLT编写JSON

我正在尝试编写XSLT以将特定网页转换为JSON.下面的代码演示了Ruby如何进行这种转换,但是XSLT没有生成有效的JSON(数组中有太多逗号) - 任何人都知道如何编写XSLT来生成有效的JSON?

require 'rubygems'
require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://bbc.co.uk/radio1/playlist'))
xslt = Nokogiri::XSLT(DATA.read)

puts out = xslt.transform(doc)

# Now follows the XSLT
__END__
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
    <xsl:output method="text" encoding="UTF-8" media-type="text/plain"/>

    <xsl:template match="/">
        [
        <xsl:for-each select="//*[@id='playlist_a']//div[@class='artists_and_songs']//ul[@class='clearme']">
            {'artist':'<xsl:value-of select="li[@class='artist']" />','track':'<xsl:value-of select="li[@class='song']" />'},
        </xsl:for-each>
        ]
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

xslt json

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

同构JS应用程序中的环境变量:Webpack查找和替换?

我正在使用webpack捆绑一个同构的JS应用程序(基于此示例),以便浏览器运行与服务器相同的代码.一切都运行顺利,除了我有config.js一些设置从服务器上的环境变量拉入:

module.exports = {
  servers:
    auth: process.env.AUTH_SERVER_URL,
    content: process.env.CONTENT_SERVER_URL
  }
}
Run Code Online (Sandbox Code Playgroud)

在服务器上这是盛大的,但是当webpack为客户端呈现这个process是空的时,这不起作用.

我希望有一种'查找和替换'webpack插件,它将仅用该文件中的内容替换它们?

"…config.js content…".replace(/process\.env\.([a-z0-9_]+)/, function(match, varName) {
  return process.env[varName];
})
Run Code Online (Sandbox Code Playgroud)

javascript webpack

14
推荐指数
2
解决办法
6790
查看次数

Sinatra中的静态页面路由(Ruby)

你可以通过将它们放入public/(默认情况下)来为Sinatra提供静态文件- 我现在有一个index.html在那里,但是如何将根点指向该文件而不必将其解析为模板?

要清楚,我可以/index.html成功访问,并且我想路由/到相同的静态文件,但没有重定向.知道怎么做吗?

ruby routing sinatra

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

从容器(docker)中宣布您的应用程序

我在周末在码头工人的IRC上问了这个问题,但在我考虑答案之前不得不停下来:

如果我有许多应用程序在容器中运行(暂时,假设它们都运行在相同的物理硬件上,但不一定是这种情况),我希望每个应用程序能够找到每个应用程序其他自动.

使用某种注册表(例如,etcd或DNS-SD/Bonjour),您可以宣布您的服务和任何相关细节,让其他应用程序了解它们并相应地路由流量.

这里的问题是,虽然应用程序可以知道它容器中服务的主机名/端口,但这不一定是它可以访问的端口或地址.有两点需要加入的信息:

  • 可以访问服务的地方 ; 可从容器外部进入
  • 什么服务呢(版本号,服务类型); 可从容器内部进入

您如何建议我在容器屏障上获取此信息?

  1. 我可以通过TCP将docker暴露给容器,因此应用程序可以查询其显示的位置,但这似乎违反了关注点的分离.
  2. 我可以在我的容器中打开一个文件/端口,主机系统在启动容器后查询以准备通告,但这感觉有点像我要重新发明WSDL.

关于如何解决这个问题的任何想法或指导?

architecture service-discovery docker linux-containers

13
推荐指数
1
解决办法
2969
查看次数

Logstash索引JSON数组

Logstash太棒了.我可以像这样发送JSON(多行可读性):

{
  "a": "one"
  "b": {
    "alpha":"awesome"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后使用搜索词在kibana中查询该行b.alpha:awesome.尼斯.

但是我现在有一个像这样的JSON日志行:

{
  "different":[
    {
      "this": "one",
      "that": "uno"
    },
    {
      "this": "two"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我希望能够找到像different.this:two (或different.this:one,或different.that:uno)这样的搜索行

如果我直接使用Lucene,我会遍历different数组,并为其中的每个哈希生成一个新的搜索索引,但Logstash目前似乎像这样摄取该行:

不同:{this:one,that:uno},{this:two}

这不会帮助我使用different.this或搜索日志行different.that.

我是否有任何关于编解码器,过滤器或代码更改的想法,我可以做到这一点?

json logstash

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

将文件存储在BASH脚本中

有没有办法在BASH脚本中存储二进制数据,以便以后可以在该脚本中将其传送到程序?

目前(在Mac OS X上)我正在做

play sound.m4a
# do stuff
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

SOUND <<< the m4a data, encoded somehow?
END
echo $SOUND | play
#do stuff
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

bash

11
推荐指数
2
解决办法
9719
查看次数