Class: Rubu::Mark
- Inherits:
-
Object
- Object
- Rubu::Mark
- Defined in:
- lib/rubu.rb
Overview
Source or Target file for Step commands. Rubu handles only Marks, and hence bare file names are not usable.
Mark includes both relative and absolute paths for the file.
Instance Attribute Summary (collapse)
-
- (Object) base
readonly
Base name.
-
- (Object) dir
readonly
Absolute directory.
-
- (Object) ext
readonly
File extension.
-
- (Object) rdir
readonly
Relative directory.
-
- (Object) skip
Skip file in Step.
Class Method Summary (collapse)
-
+ (Object) glob(pattern)
Convert a list of file names matched with glob pattern to Marks.
-
+ (Object) list(files)
Convert a list of file names to Marks.
-
+ (Object) path(file_path)
Convert file path to Mark.
Instance Method Summary (collapse)
-
- (Object) [](key)
Get options with key.
-
- (Object) []=(key, val)
Set option.
-
- (Boolean) exist?
Does Mark exist?.
-
- (Mark) initialize(rdir, base, ext)
constructor
Create Mark object.
-
- (Object) path(ext = @ext)
Return absolute path.
-
- (Object) peer(rdir, ext, base = nil)
Return peer of Mark.
-
- (Object) rpath(ext = @ext)
Return relative path.
-
- (Object) set_opt(key, val)
Set option.
-
- (Object) time
Mark update time.
Constructor Details
- (Mark) initialize(rdir, base, ext)
Create Mark object.
333 334 335 336 337 338 339 340 341 342 343 344 345 |
# File 'lib/rubu.rb', line 333 def initialize( rdir, base, ext ) if rdir.kind_of? Array @dir = File.absolute_path( rdir.join( '/' ) ).split( '/' ) @rdir = rdir else @dir = File.absolute_path( rdir ).split( '/' ) @rdir = rdir.split( '/' ) end @ext = ext @base = base @opt = {} @skip = false end |
Instance Attribute Details
- (Object) base (readonly)
Base name.
319 320 321 |
# File 'lib/rubu.rb', line 319 def base @base end |
- (Object) dir (readonly)
Absolute directory.
313 314 315 |
# File 'lib/rubu.rb', line 313 def dir @dir end |
- (Object) ext (readonly)
File extension.
322 323 324 |
# File 'lib/rubu.rb', line 322 def ext @ext end |
- (Object) rdir (readonly)
Relative directory.
316 317 318 |
# File 'lib/rubu.rb', line 316 def rdir @rdir end |
- (Object) skip
Skip file in Step.
325 326 327 |
# File 'lib/rubu.rb', line 325 def skip @skip end |
Class Method Details
+ (Object) glob(pattern)
Convert a list of file names matched with glob pattern to Marks.
307 308 309 |
# File 'lib/rubu.rb', line 307 def Mark.glob( pattern ) Mark.list( Dir.glob( pattern ) ) end |
+ (Object) list(files)
Convert a list of file names to Marks.
296 297 298 299 300 301 |
# File 'lib/rubu.rb', line 296 def Mark.list( files ) unless files.kind_of? Array files = [ files ] end files.map{ |file| Mark.path( file ) } end |
+ (Object) path(file_path)
Convert file path to Mark.
284 285 286 287 288 289 290 291 |
# File 'lib/rubu.rb', line 284 def Mark.path( file_path ) path = File.absolute_path( file_path ) dir = File.dirname( path ).split( '/' ) rdir = dir - Dir.pwd.split( '/' ) ext = File.extname( path ) base = File.basename( path, ext ) Mark.new( rdir, base, ext ) end |
Instance Method Details
- (Object) [](key)
Get options with key.
348 349 350 |
# File 'lib/rubu.rb', line 348 def []( key ) @opt[ key ] end |
- (Object) []=(key, val)
Set option.
353 354 355 |
# File 'lib/rubu.rb', line 353 def []=( key, val ) @opt[ key ] = val end |
- (Boolean) exist?
Does Mark exist?
388 389 390 |
# File 'lib/rubu.rb', line 388 def exist? File.exist?( path ) end |
- (Object) path(ext = @ext)
Return absolute path.
366 367 368 |
# File 'lib/rubu.rb', line 366 def path( ext = @ext ) "#{@dir.join('/')}/#{@base}#{ext}" end |
- (Object) peer(rdir, ext, base = nil)
Return peer of Mark.
382 383 384 385 |
# File 'lib/rubu.rb', line 382 def peer( rdir, ext, base = nil ) base ||= @base Mark.new( rdir, base, ext ) end |
- (Object) rpath(ext = @ext)
Return relative path.
373 374 375 |
# File 'lib/rubu.rb', line 373 def rpath( ext = @ext ) "#{@rdir.join('/')}/#{@base}#{ext}" end |
- (Object) set_opt(key, val)
Set option.
358 359 360 361 |
# File 'lib/rubu.rb', line 358 def set_opt( key, val ) @opt[ key ] = val self end |
- (Object) time
Mark update time.
393 394 395 |
# File 'lib/rubu.rb', line 393 def time File.stat( path ).mtime end |