小编Phr*_*ogz的帖子

使用方法扩展Ruby String类以更改内容

我试图像这样扩展ruby字符串类:

String.class_eval do
  def clear!
    # Here I want the string value to be set to empty string. The following code is not working.
    self = ''
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

写一个更好的开关盒功能?

我是一个Ruby新手.
我怎样才能为这个功能写得更好?我可以使用哈希表.

def readable_status(status)
  if status == "1" 
    return "go"
  end
  if status == "2"
    return "stop"
  end
  if status == "3"
    return "die"
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
4
解决办法
186
查看次数

为什么这个JS创建的SVG <animate>无法在Chrome中运行?

考虑一下这个简单的SVG SMIL动画:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 100 100">
  <circle r="40" fill="red">
    <animate
      attributeType="CSS" begin="click"
      attributeName="fill" to="blue" dur="0.3s" fill="freeze"/>
  </circle>
</svg>
Run Code Online (Sandbox Code Playgroud)

这在Windows上的Chrome v18中正常工作(以模拟颜色的模块为模):http:
//phrogz.net/svg/change-color-on-click-simple.svg

当我<animate>使用JavaScript 生成元素时,一切都适用于Firefox,Safari和Opera,但不适用于Chrome.在Chrome中,单击圆圈时没有任何反应.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 100 100">
  <circle r="40" fill="red"/>
  <script>
    var c = document.querySelector('circle');
    createOn(c,'animate',{
      attributeType:'CSS', begin:'click',
      attributeName:'fill', to:'blue',
      dur:'0.3s', fill:'freeze'
    });
    function createOn(el,name,attrs){
      var e = el.appendChild(document.createElementNS(el.namespaceURI,name));
      for (var name in attrs) e.setAttribute(name,attrs[name]);
      return e;
    }
  </script>
Run Code Online (Sandbox Code Playgroud)

在这里查看此JavaScript版本:http:
//phrogz.net/svg/change-color-on-click-simple-js.svg

控制台中没有脚本错误.第一个示例的内容实际上是通过在加载第二个示例后从Chrome开发者工具中选择"复制为HTML"生成的,因此我知道它正在生成正确的属性名称和值.在namespaceURI所述的<animate>元件是两个(在SVG命名空间)之间的相同,因为是namespaceURI所有属性(null). …

javascript svg google-chrome smil

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

将秒数转换为小时数(半小时为.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
查看次数

查找映射数据的最小值

给定一组复杂对象,一个用于将每个映射到Comparable值的算法,以及找到最小值的愿望,是否有一个内置的库方法,它将在一次通过中执行此操作?

有效但不完美的解决方案:

# Iterates through the array twice
min = objects.map{ |o| make_number o }.min

# Calls make_number one time more than is necessary
min = make_number( objects.min_by{ |o| make_number o } )
Run Code Online (Sandbox Code Playgroud)

高效但冗长的解决方案:

min = nil
objects.each{ |o| n=make_number(o); min=n if !min || n<min }
Run Code Online (Sandbox Code Playgroud)

ruby map

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

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