class MemoRack::PageInfo
Attributes
max_lines[RW]
Public Class Methods
define_keys(*keys, &block)
click to toggle source
# File lib/memorack/pageinfo.rb, line 110 def self.define_keys(*keys, &block) block = lambda { |key| values[key] || parse(key) } unless block keys.each { |name| define_key(name, &block) } end
new(path, hash = nil, parent = {}, ifnone = nil)
click to toggle source
Calls superclass method
# File lib/memorack/pageinfo.rb, line 12 def initialize(path, hash = nil, parent = {}, ifnone = nil) super ifnone @path = path merge!(hash) if hash @max_lines = 5 @parent = parent end
Public Instance Methods
app()
click to toggle source
実行アプリケーション
# File lib/memorack/pageinfo.rb, line 65 def app begin @parent.app rescue end end
git?()
click to toggle source
git で管理されているか?
# File lib/memorack/pageinfo.rb, line 73 def git? if @git == nil @git ||= File.exists?(File.join(app.root, '.git')) @git ||= File.exists?(File.join(app.root, '../.git')) end @git end
log()
click to toggle source
git log で更新日時一覧を取得する
# File lib/memorack/pageinfo.rb, line 83 def log unless @log @log = [] return @log unless git? begin dir, fname = File.split(@path) Dir.chdir(dir) { |dir| log << File::Stat.new(fname).mtime if `git status` =~ /modified:\s+#{fname}/ `git log --pretty='%ad' --date iso '#{fname}'`.each_line { |line| @log << line } } rescue end end @log end
parse(*info_list)
click to toggle source
ファイルを解析
# File lib/memorack/pageinfo.rb, line 27 def parse(*info_list) methods = {} info_list.each { |info| m = "accept_#{info}" methods[info] = m if respond_to?(m) } open(@path, 'r') { |file| prev = nil n = 1 until methods.empty? break unless line = file.gets break if parse_end?(line, n) methods.each { |key, m| v = send(m, line, prev) if v values[key] = v methods.delete(key) end } prev = line n += 1 end } values[info_list.first] end
parse_end?(line, n)
click to toggle source
ファイル解析の終了か?
# File lib/memorack/pageinfo.rb, line 60 def parse_end?(line, n) max_lines < n end
value_to_time(value)
click to toggle source
値を Timeクラスに変換する
# File lib/memorack/pageinfo.rb, line 105 def value_to_time(value) value = Time.parse(value) if value.kind_of?(String) value end
values()
click to toggle source
# File lib/memorack/pageinfo.rb, line 22 def values @values ||= {} end