可以结合Lua里实现简单的类-对象看。在我的应用中,存在类似以下代码: function Item.new() local o = { property = {} } return newObject(o, Item) end property是一个key-value的表,里面的内容不是固定的。最开始我为Item类写了get/set函数,用于存取p...
Ruby应用几则(解析HTML、XMLRPC)
Ruby解析HTML Ruby解析HTML(或XML)可以使用nokogiri。我的应用里需要查找HTML页面里的某个元素,结果发现实现方式非常简单,就像使用jquery一样。例如我要获取到octopress博客文章里的文章内容、文章标题、文章分类,就像这篇博客: # get post title and content for an octopress post def post_in...
编写独立的Ruby脚本
Ruby肯定不仅仅用于编写Rails程序。要使用Ruby编写独立的脚本/程序,就像shell一样,其方式也很简单: #!/usr/bin/env ruby if ARGV.size == 0 puts 'usage: program arg1 arg2' exit end ARGV.each do |arg| print arg end 脚本内容没有什么限制,函数、类、模块的组...
让wxListCtrl支持子item编辑
我使用的wxLua版本信息为wxLua 2.8.7.0 built with wxWidgets 2.8.8,也就是LuaForWindows_v5.1.4-40.exe这个安装包里自带的wxLua。我不知道其他wxWidgets版本里wxListCtrl怎样,但我使用的版本里wxListCtrl是不支持编辑里面的子item的。在我使用的report模式下,子item也就是特定某一行一列的i...
『你会把Ruby的哪些特性加入Java』
参考(翻译、摘抄)于Can Ruby Live without Rails?。这篇文章发表于2006年,受访者在回答“如果可以你会把Ruby的哪些特性加入Java“这个问题时,提到了Ruby的一些我个人认为比较突出的语法特性。其实并不是针对Java语言,何况6年时间过去,以Java语法特性的加入速度怕早就有Ruby这些特性了。我对Java不熟,仅限于曾经写的几个简单的android应用,买了...
Lua里实现简单的类-对象
要在Lua里实现面向对象有很多方法,为了支持面向对象的一些特性(类、对象、继承、重载等),其实现可能会比较复杂。看看云风的这篇,以及后面的评论,有总结的不错的。这真是让人对Lua刮目相看。但是我并不需要这些机制,一般情况下我只需要支持类即可。 类其实就是定义一个对象的函数模板,避免我写出带模块名并且第一个参数是操作对象的函数(像C一样)。以下代码提炼于rapanui(基于moai的高层封装...
像写函数式语言代码一样写C++
忘记最早接触函数式编程语言是什么时候了,也忘记接触的第一门函数式语言是哪一门。断断续续接触过好几种函数式语言(当然都算不纯的,ruby/lisp不算纯吧),这些语言的思想在潜移默化中多多少少对我有所影响。 我是个C++程序员,我不知道我平时写的都是些什么代码。最让人印象深刻就是我会经常写遍历STL容器的代码,是经常,这样的遍历你可能也不陌生: for (ListType::iterato...
为octopress每篇文章添加一个文章信息
当你的博客文章被转载时,你肯定希望转载者能添加一个原始地址。或者你的文章被各种RSS抓取器抓取时,你也希望能在明显的位置显示这个原始地址。使用octopress写博客时,可以通过插件来做这件事。最开始,我只是想单纯地添加这个“原始地址“,一番google未能找到现成的插件,所以只好动手。 话说编写octopress真不是件容易事,因为我实在没找到编写插件的文档。octopress基于jek...
ruby中的case...when语法
参考How to write a switch statement in Ruby? 其实用Rails写个业务逻辑不算复杂的app根本用不上ruby的很多高级语法,更别说<meta programming in ruby>中的东西了(凡是打上meta programming标签的都不是什么简单的东西,参考c++/lisp)。ruby中的case…when语句和c/c++中的sw...
HTML中table的高亮以及tooltip
在一个需要显示很多数据的表格(table)中,为了更友好地查看一行数据,常常需要在鼠标指针移到某一行时,高亮此行。要实现这个效果有很多方法,这里列举一个方法: function setTableHover(t) { $(t + " tbody tr") .mouseover(function() { $(this).addClass("hover");}) .m...