小编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
查看次数

通过方法语法调用的运算符方法的优先级

最近我开始学习Ruby,我正在试验Ruby如何在单个对象上调用方法.但是,下面的代码片让我很难,因为我没有意识到它是如何工作的

a = 4
b = -3
c = 2

puts a*b-c                      # operator precedence preserved
puts a . * b . - c              # operator precedence not preserved
puts a.send(:*, b).send(:-, c)  # operator precedence preserved
puts a-b*c                      # operator precedence preserved
puts a . - b . * c              # operator precedence preserved
puts a.send(:-, b).send(:*, c)  # operator precedence not preserved
Run Code Online (Sandbox Code Playgroud)

输出:

-14
-20    
-14
10
10
14
Run Code Online (Sandbox Code Playgroud)

谁能够解释运营商优先权如何在这里工作?我假设每个部分中的所有三种语法都应该反映相同的含义.如果已经提出或解释过这个问题,我先道歉.

ruby operators

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

使用curl通过SSO重定向获取MediaWiki页面信息

tl; dr:对URL的HTTP请求可通过Chrome和Firefox使用,但无法使用curl

详细资料

我的公司使用MediaWiki作为Intranet Wiki。我的应用程序曾经使用以下命令成功使用cURL来获取有关页面的信息:

curl -s -k -u "username:password" "https://wiki.intranet/mainwiki/api.php?action=query&titles=SomePage&prop=info&format=xml"

但是,IT部门最近已将Wiki更改为使用某种“单点登录”系统。如果我现在请求该URL,则会通过以下位置获得一系列HTTP 302重定向:

  • /sso?request_uri=/mainwiki/api.php?action=query&titles=SomePage&prop=info&format=xml
  • http://wiki.intranet/sso/?request_uri=/mainwiki/api.php%3faction=query&titles=SomePage&prop=info&format=xml
  • https://wiki.intranet/sso/?request_uri=/mainwiki/api.php%3faction=query&titles=SomePage&prop=info&format=xml

当我使用cURL请求最后一个URL时,我从服务器收到400(错误请求)响应。使用-I显示标题的参数,这里是:

> curl -S -k -I -u "username:password" "https://wiki.intranet/sso/?request_uri=/mainwiki/api.php%3faction=query&titles=SomePage&prop=info&format=xml"
HTTP/1.1 400 Bad Request
Date: Wed, 29 Apr 2015 20:47:49 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Google Chrome浏览器请求相同的URL时,会看到想要的结果!

我如何使用获取信息curl


编辑:当我使用Firefox请求原始URL时,它也会经过相同的重定向,然后显示两个401(需要授权)状态。当我在Firefox中填写用户名/密码时,它会带我通过另一个重定向回到原始url,这时它会收到状态200响应以及所需的XML。

mediawiki curl ntlm

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

使用关键字参数确定方法的arity

我正在开发一个Ruby应用程序,我在其中动态调用基于JSON数据的方法.松散:

def items
  # do something
end

def createItem( name:, data:nil )
  # do something that requires a name keyword argument
end

def receive_json(json) # e.g. { "cmd":"createItem", "name":"jim" }
  hash = JSON.parse(json)
  cmd = hash.delete('cmd')
  if respond_to?(cmd)
    params = Hash[ hash.map{ |k,v| [k.to_sym, v } ]
    method(cmd).arity==0 ? send(cmd) : send(cmd,params)
  end
end
Run Code Online (Sandbox Code Playgroud)

如上所示,某些方法不带参数,有些方法带有关键字参数.在Ruby 2.1.0(我正在开发)中arity,上述两种方法都是0.但是,如果我send(cmd,params)总是这样,那么对于不带参数的方法我会收到错误.

如何send在需要时使用正确传递关键字参数,但在没有时省略它们?

ruby method-dispatch keyword-argument

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