为什么要手工管理软件呢
我觉得有 end 挺好,用 snippets 不用手敲,每次看见 end 会让自己有种安定感,就像开辟一个工作区一样
class Terminal
# Example:
# Terminal.set_pricings({
# "A" => {1 => 2.0, 4 => 7.0},
# "B" => {1 => 12.0},
# "C" => {1 => 1.25, 6 => 6.0},
# "D" => {1 => 0.15}
# })
def self.set_pricings(pricings)
@pricings = pricings
end
def self.pricings
@pricings
end
def initialize
@products = {}
end
def scan(name)
@products[name] = @products[name].to_i + 1
end
def total
result = 0
@products.each do |name, number|
result += self.class.item_cost(name, number)
end
result
end
def self.item_cost(name, number)
pricings[name].keys.sort.reverse.inject(0) do |sum, package|
if number / package > 0
sum += ((number / package) * pricings[name][package])
number = number % package
end
sum
end
end
end
require 'test/unit'
require 'terminal'
class TerminalTest < Test::Unit::TestCase
def setup
Terminal.set_pricings({
"A" => {1 => 2.0, 4 => 7.0},
"B" => {1 => 12.0},
"C" => {1 => 1.25, 6 => 6.0},
"D" => {1 => 0.15}
})
end
def test_should_get_cost
terminal = Terminal.new
terminal.scan 'A'
assert_equal 2.0, terminal.total
terminal.scan 'A'
assert_equal 4.0, terminal.total
2.times{ terminal.scan 'A' }
assert_equal 7.0, terminal.total
end
def test_multi_item_cost
assert_mult_scan_cost_equal 32.40, 'ABCDABAA'
assert_mult_scan_cost_equal 7.25, 'CCCCCCC'
assert_mult_scan_cost_equal 15.40, 'ABCD'
end
def assert_mult_scan_cost_equal(expected, names)
terminal = Terminal.new
names.each_char do |name|
terminal.scan name
end
assert_equal expected, terminal.total
end
end
eval 得不必要,Hash 就能解决
在我看来 @fsword 的言论没有问题。楼主专门发个道歉贴但同时想封别人的嘴真的有意识到问题吗?
String 编码,数据库连接编码,数据库编码,数据库表单编码……
有编码的地方很多,一个个排除
我喜欢周末听着音乐冲杯咖啡然后 bundle update
#10 楼 @clearJiang 对图片不熟,jpeg 还有压缩空间?
试试看
到 gravatar 上传常用头像
=> Ctrl-C to shutdown server
ruby-china 对国内 ruby 发展挺重要的
#22 楼 @feitian124 可以看到历代头像,同时管理多个邮箱,而且随时都能切换回去,这个功能绝大部分自建头像是做不到的~
现在打开 gravatar 头像列表就想起当时设这个头像的心情。
晒一下历代头像,每个头像背后都有一段记忆
现在应该有了
#3 楼 @tassandar 不冲突,顺便可以把 cache 放到 redis 上,cache 现在不用以后也要用的
#3 楼 @tassandar 不冲突,顺便可以把 cache 放到 redis 上,cache 现在不用以后也要用的
#3 楼 @tassandar 不冲突,顺便可以把 cache 放到 redis 上,cache 现在不用以后也要用的
系统有 redis 的话,可以弄个 list,插入新的,剔除老的
#19 楼 @tiseheaini puts 输出到标准输出,但是页面不是标准输出,也许到日志去了
个人页面右侧的 github 是最好的简历