Hatena::Groupsubtech

冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

 | 

Jun 15, 2008 (Sun)

feature name 16:21 はてなブックマーク - feature name - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。


def feature_name(class_name)
	class_name.split(/::/).map {|const|
		const.scan(/[A-Z](?:(?![A-Z][a-z])[A-Za-z])*/).map {|i| i.downcase }.join("_")
	}.join("/")
end


require "rubygems"
require "spec"

describe "feature_name" do
	it "should generate filename from class_name" do
		feature_name("A").should           == "a"
		feature_name("Foo").should         == "foo"
		feature_name("FooBar").should      == "foo_bar"
		feature_name("FOOBar").should      == "foo_bar"
		feature_name("Foo::Bar").should    == "foo/bar"
		feature_name("Foo::BarBaz").should == "foo/bar_baz"
	end
end

def feature_name_(class_name)
	class_name.split(/::/).map {|const|
		const.downcase
	}.join("/")
end

require "rubygems"
require "spec"

describe "feature_name_" do
	it "should generate filename from class_name" do
		feature_name_("A").should           == "a"
		feature_name_("Foo").should         == "foo"
		feature_name_("FooBar").should      == "foobar"
		feature_name_("FOOBar").should      == "foobar"
		feature_name_("Foo::Bar").should    == "foo/bar"
		feature_name_("Foo::BarBaz").should == "foo/barbaz"
	end
end

アンダースコアださいなぁ…… どうせ逆変換できないなら後者でいい感じかなぁ。

 | 

スポンサード リンク

書いてる人

cho45 (佐藤広央) (www.lowreal.net)

Perl, JavaScript, Ruby, HTML, CSS, Web etc


スポンサード リンク