トップ «前の日記(2012-03-20) 最新 次の日記(2012-03-22)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2012-03-21 :-(

_ 午前

0520 起床

0830 出勤

0900 検討

_ 午後

1300 検討

1700 退勤

_

1900 NetBSDほげ

2030 飯

2200 NetBSDほげ

_ [Ruby][静的解析]Ruby の静的解析ツールを使ってみたんだがー

いくつかあるらしいんだが 2009 年の記事。

Reek

Reek を使ってみる。( FlogFlay は同じ作者なんだがウェブページがキモイので避けた )

Kevin Rutherford氏によるReekは「Rubyのためのコードスメル(編集部注:より深部に存在する問題を指し示している可能性のある、プログラムのソースコードに見られる徴候のこと(Wikipediaより:http://en.wikipedia.org/wiki/Code_smell))検知器」である。Reekには、長いメソッドボディや大きなクラス、望ましくない名前などを検知するリストがついてくる。このチェックはSexpProcessorのサブクラスとして書かれており、AST上のビジターとして機能する。ReekのコードはGithubで提供されている。

インストール。怒られた

% gem install reek
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: ruby_parser requires ParseTree (>= 0), ParseTree (>= 0); ruby2ruby requires ParseTree (~> 3.0), ParseTree (~> 3.0), ParseTree (~> 3.0)

依存のアレをインストール。怒られた

% gem install ParseTree
Fetching: ZenTest-4.7.0.gem (100%)
ERROR:  Error installing ParseTree:
        ZenTest requires RubyGems version ~> 1.8. Try 'gem update --system' to update RubyGems itself.

素直に update

% gem update --system

依存のアレをインストール

% gem install ParseTree

インストール

% gem install reek

とりあえず demo を試す。

% reek reekdemo.rb
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:10: warning: already initialized constant ENC_NONE
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:11: warning: already initialized constant ENC_EUC
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:12: warning: already initialized constant ENC_SJIS
/usr/lib/ruby/gems/1.8/gems/ruby_parser-2.3.1/lib/ruby_parser_extras.rb:13: warning: already initialized constant ENC_UTF8
reekdemo.rb -- 6 warnings:
  Dirty has no descriptive comment (IrresponsibleModule)
  Dirty#awful has 4 parameters (LongParameterList)
  Dirty#awful has boolean parameter 'log' (ControlCouple)
  Dirty#awful has the parameter name 'x' (UncommunicativeName)
  Dirty#awful has the parameter name 'y' (UncommunicativeName)
  Dirty#awful has the variable name 'w' (UncommunicativeName)

なんかいろいろ言われた。

Issue #88: Reek breaks with ruby2ruby 1.3.1 - kevinrutherford/reek

それはそれとして未定義変数はチェックできないらしい。

こういうコード

p a['not exist']

未定義

% ruby reekdemo1.rb
reekdemo1.rb:1: undefined local variable or method `a' for main:Object (NameError)

reek してみる。

% reek reekdemo1.rb
reekdemo1.rb -- 0 warnings

(´・ω・`)

flay

flay も試してみた。

% flay reekdemo1.rb
Total score (lower is better) = 0

(´・ω・`)

_ [python][pit]python pit

Pythonでの、Pitの使い方 世界一わかりやすいムービー付き - When it’s ready. (a2c.get.diary)

テキトーにインストール

% sudo easy_install pit

とか、tar を取得したのならば setup.py を実行する。

% sudo setup.py install

EDITOR を設定しとく

% export EDITOR=vim
% echo $EDITOR
vim

試してみる

% python
>>> from pit import Pit
>>> conf = Pit.get('label', {'require':{'login':'your ID','passwd':'GoMa'}})

(ここでEDITORが起動するのでテキトーに入力)

>>> conf['login']
'homura'
>>> conf['passwd']
'akemi'
>>> conf
{'passwd': 'akemi', 'login': 'homura'}

ほむほむ