小编Phr*_*ogz的帖子

将秒数转换为小时数(半小时为.50而非30)

我有以下方法将持续时间(以秒为单位)转换为小时.例如,2个半小时将导致2.30另外,2小时和15分钟将导致2.15.因此它输出小时数和分钟数.

我想修改方法显示2.5或2.25而不是上面的方法.我需要这样做才能进行计算.例如,如果有30美元/小时的工资和员工工作10个半小时,我需要增加30*10.5而不是30*10.30.

def hour_quantity
  unless self.duration.blank?
    hours = (self.duration/60)/60
    minutes = (self.duration/60) % 60
    hours.to_s + '.' + minutes.to_s
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

确定http://foo.com是否重定向到http://www.foo.com

我有一个~150个URL的列表.我需要找出每个域是解析www.domain.com还是仅解析domain.com.

ruby web-scraping

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

将 SVG 中的组拆分为围绕内容定位的子图像

我在导入 SVG 时遇到了单个元素的问题,希望能以某种方式提出建议。

我有一个在 Illustrator 中创建的 SVG,有几个图层,最终成为组元素。当我从我的服务器检索 SVG 时,我得到了类似的东西。

<svg>
  <g>
  <g>
</svg>
Run Code Online (Sandbox Code Playgroud)

我不想将图像作为一个放置,因此我将其按组分解,并用自己的 svg 标签包围每个组,然后放置在页面上。

<svg>
  <g>
</svg>

<svg>
  <g>
</svg>
Run Code Online (Sandbox Code Playgroud)

这很棒,像我想要的那样工作。

我的问题在于,其中每个项目的路径都绘制在原始文件中。它们都从 Illustrator 文件中提取 (0,0),因此当我尝试放置它们时,它们的左侧都有大量空白区域,其他元素曾经存在于此。

我试过使用 transform="translate(-50,-50)" 或其他方法来移动元素,但由于它们没有 x,y 属性,我不知道将它们移到哪里。

有谁知道偏移绘制路径的方法?或者,是否有一种方法可以读取 SVG 并将其分解为每个单独的元素并使用?

使用 firebug 或 chrome 时,它​​们会向我显示具有正确大小的单个元素,但由于 Illustrator 中绘制的路径的位置,它们被放置了大量空白。

我试过contentDocumentdocumentElement这两个都为空。也许我用错了?

我是一个沉重的 Actionscript 开发人员,现在使用 Javascript 和 jQuery,所以我习惯于 x,y 坐标系统和放置元素,但这似乎不是它应该工作的方式:/

javascript jquery svg

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

选择一组元素的最有效方法

例如,如果我有一个无序列表,可以说,

<ul>
    <li class="foo">Foo</li>
    <li class="bar">Bar</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我可以选择foo作为$('ul li.foo'),$('li.foo')$('.foo').

那么哪种方式更有效(如果有的话)以及为什么.或者是在选择子项时指定父母只是出于删除任何冲突的唯一原因,以防有其他元素具有相同的类名!

css jquery

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

使用[1..n]从Ruby字符串中删除第一个字符

我试图基本上尝试删除.字符串中的内容.extension

所以我正在使用

'.extension'[1..10] #gives extension
Run Code Online (Sandbox Code Playgroud)

当然,这将适用于10个字符,我将如何使它适用于任何长度.我不知道要搜索什么,因为我不知道这个数组样式[x..y]是什么.

ruby ruby-on-rails

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

插值正则表达式中char类的过早结束

我似乎无法解决这个问题,希望有人可以提供帮助:

Nilfacs是从哈希中提取的字符串数组.

对于这一行:

looping_finaltext = finaltext.reject {|sentence| nilfacs.any? {|fac| sentence =~ /#{(fac)}/i}}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:warning: character class has ']' without escape: /[[]]/block (2 levels) in <main>': premature end of char-class: /[[]]/i (RegexpError)

所有字符串都只是普通单词(如"条件"),不包含需要转义的字符.

这是否表明某些意外的东西被作为字符串输入数组?或者这行中的语法有问题吗?

ruby regex

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

单击与Mechanize的xpath链接

我想点击我用xpath(nokogiri)选择的Mechanize的链接.

怎么可能?

    next_page = page.search "//div[@class='grid-dataset-pager']/span[@class='currentPage']/following-sibling::a[starts-with(@class, 'page')][1]"
    next_page.click
Run Code Online (Sandbox Code Playgroud)

问题是nokogiri元素没有点击功能.

我无法读取href(URL)并发送get请求,因为链接已定义onclick函数(无href属性).

如果那是不可能的,有哪些替代方案?

ruby xpath mechanize nokogiri mechanize-ruby

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

XPath选择前面的元素与可选的插入空白文本节点

给定一个元素作为上下文我想选择前面的兄弟元素并检查它是否具有特定的名称.需要注意的是,如果存在具有非空白内容的插入文本节点,我不想选择它.

例如,给定这个XML文档......

<r>
  <a>a1</a><a>a2</a>
   b
  <a>a3</a>
    <a>a4</a>
  <b/>
  <a>a5</a>
</r>
Run Code Online (Sandbox Code Playgroud)

…然后:

  • 对于"a1",应该没有匹配(<a>紧接在它之前没有兄弟元素)
  • 对于"a2",则应匹配"a1"(没有插入文本节点)
  • 对于"a3",应该没有匹配(存在具有非空白内容的插入文本节点)
  • 对于"a4",则应匹配"a3"(插入的文本节点仅为空格)
  • 对于"a5",应该没有匹配(前一个兄弟元素不是<a>).

我可以检查,如果前一兄弟是<a>preceding-sibling::*[1][name()="a"]

但是,我无法弄清楚如何说"选择以下兄弟节点,无论元素或文本,看看是不是文本或normalize-space(.)="".我最好的猜测是这样的:

preceding-sibling::*[1][name()="a"][following-sibling::node()[1][not(text()) or normalize-space(.)=""]]
Run Code Online (Sandbox Code Playgroud)

......但似乎没有效果.


这是我的测试Ruby文件:

require 'nokogiri'

xpath = 'preceding-sibling::*[1][name()="a"][following-sibling::node()[1][not(text()) or normalize-space(.)=""]]'
fragment = Nokogiri::XML.fragment '<a>a1</a><a>a2</a> b <a>a3</a> <a>a4</a> <b/> <a>a5</a>'    

fragment.css('a').each{ |a| p [a.text,a.xpath(xpath).to_s] }
#=> ["a1", ""]
#=> ["a2", ""]
#=> ["a3", "<a>a2</a>"]
#=> ["a4", "<a>a3</a>"]
#=> ["a5", ""]
Run Code Online (Sandbox Code Playgroud)

"a2"和"a3"的结果是错误的,让我感到困惑.它<a>正确地找到了前面的内容,但是后来没有正确地验证第一个后续兄弟是不是文本(应该允许"a2"找到"a1")还是只有空格(这应该防止"a3")找到"a2".


编辑:这是我写的XPath,以及我打算做的事情:

  • preceding-sibling::*[1][name()="a"]…- 找到第一个前面的元素,并确保它是一个<a>.这看似按预期工作.

    • [following-sibling::node()[1][…]] …

ruby xpath nokogiri

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

SVG <path>中的随机点

问题描述起来非常简单.我有一个简单的SVG封闭形状,如下所示:

<path d="M435.95,147.99l0.33,0.49l-0.11,1.07l-0.39,0.04l-0.29,-0.15l0.21,-1.4l0.25,-0.05Z"></path>
Run Code Online (Sandbox Code Playgroud)

我想在这个形状的某个地方随意画一个点.

怎么做?我希望解决方案尽可能简单.

geometry svg path

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

结合使用animateMotion和keyTimes / keyPoints

我正在尝试<animateMotion>通过使用keyTimes="…"and keyPoints="…"属性在SVG上使用非线性动画速率。它似乎不起作用:动画运动是尽可能线性的。

这是测试文件,尝试一下!

<svg xmlns="http://www.w3.org/2000/svg" xmlns:x="http://www.w3.org/1999/xlink"
     viewBox="0 0 300 200">
  <style>
    path   { stroke:#999 }
    circle { fill-opacity:0.5; stroke:black }
  </style>
  <path   id="p" d="M30,160 L270,40" />
  <circle id="c" r="5" />
  <animateMotion x:href="#c" fill="freeze"
    dur="10s"
    keyTimes="0;0.1;1"
    keyPoints="0;0.9;1">
    <mpath x:href="#p" />
  </animateMotion>
</svg>
Run Code Online (Sandbox Code Playgroud)

工作时,球应在第一秒内沿路径移动90%,并在剩余的9秒内将最后10%的路径移动。我需要进行哪些更改才能使其正常工作?

我在网上找到了另一个可以正常运行的示例,因此我知道这不是我的OS /浏览器/版本存在问题。

(FWIW:Win7x64,Chrome30)

animation svg smil

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