我试图像这样扩展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新手.
我怎样才能为这个功能写得更好?我可以使用哈希表.
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) 考虑一下这个简单的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). …
我有以下方法将持续时间(以秒为单位)转换为小时.例如,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) 我有一个~150个URL的列表.我需要找出每个域是解析www.domain.com还是仅解析domain.com.
我在导入 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 中绘制的路径的位置,它们被放置了大量空白。
我试过contentDocument,documentElement这两个都为空。也许我用错了?
我是一个沉重的 Actionscript 开发人员,现在使用 Javascript 和 jQuery,所以我习惯于 x,y 坐标系统和放置元素,但这似乎不是它应该工作的方式:/
例如,如果我有一个无序列表,可以说,
<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').
那么哪种方式更有效(如果有的话)以及为什么.或者是在选择子项时指定父母只是出于删除任何冲突的唯一原因,以防有其他元素具有相同的类名!
我试图基本上尝试删除.字符串中的内容.extension
所以我正在使用
'.extension'[1..10] #gives extension
Run Code Online (Sandbox Code Playgroud)
当然,这将适用于10个字符,我将如何使它适用于任何长度.我不知道要搜索什么,因为我不知道这个数组样式[x..y]是什么.
给定一组复杂对象,一个用于将每个映射到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) 问题描述起来非常简单.我有一个简单的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)
我想在这个形状的某个地方随意画一个点.
怎么做?我希望解决方案尽可能简单.
ruby ×6
svg ×3
javascript ×2
jquery ×2
css ×1
geometry ×1
map ×1
path ×1
smil ×1
web-scraping ×1