Class: Rubu::Mark

Inherits:
Object
  • Object
show all
Defined in:
lib/rubu.rb

Overview

Source or Target file for build commands. Rubu handles only Marks, and hence bare file names are not usable.

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Mark) initialize(rdir, base, ext)

Returns a new instance of Mark



299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'lib/rubu.rb', line 299

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.



290
291
292
# File 'lib/rubu.rb', line 290

def base
  @base
end

- (Object) dir (readonly)

Absolute directory.



284
285
286
# File 'lib/rubu.rb', line 284

def dir
  @dir
end

- (Object) ext (readonly)

File extension.



293
294
295
# File 'lib/rubu.rb', line 293

def ext
  @ext
end

- (Object) rdir (readonly)

Relative directory.



287
288
289
# File 'lib/rubu.rb', line 287

def rdir
  @rdir
end

- (Object) skip

Skip file.



296
297
298
# File 'lib/rubu.rb', line 296

def skip
  @skip
end

Class Method Details

+ (Object) glob(pattern)

Convert a list of file names matched with pattern to Marks.



268
269
270
# File 'lib/rubu.rb', line 268

def Mark.glob( pattern )
    Mark.list( Dir.glob( pattern ) )
end

+ (Object) list(files)

Convert a list of file names to Marks.



260
261
262
263
264
265
# File 'lib/rubu.rb', line 260

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.



273
274
275
276
277
278
279
280
# File 'lib/rubu.rb', line 273

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.



314
315
316
# File 'lib/rubu.rb', line 314

def []( key )
    @opt[ key ]
end

- (Object) []=(key, val)

Set options.



319
320
321
# File 'lib/rubu.rb', line 319

def []=( key, val )
    @opt[ key ] = val
end

- (Boolean) exist?

Does Mark exist?

Returns:

  • (Boolean)


348
349
350
# File 'lib/rubu.rb', line 348

def exist?
    File.exist?( path )
end

- (Object) path(ext = nil)

Return absolute path.



330
331
332
333
# File 'lib/rubu.rb', line 330

def path( ext = nil )
    ext ||= @ext
    "#{@dir.join('/')}/#{@base}#{ext}"
end

- (Object) peer(rdir, ext, base = nil)

Return peer of Mark.



342
343
344
345
# File 'lib/rubu.rb', line 342

def peer( rdir, ext, base = nil )
    base ||= @base
    Mark.new( rdir, base, ext )
end

- (Object) rpath(ext = nil)

Return relative path.



336
337
338
339
# File 'lib/rubu.rb', line 336

def rpath( ext = nil )
    ext ||= @ext
    "#{@rdir.join('/')}/#{@base}#{ext}"
end

- (Object) set_opt(key, val)

Set options.



324
325
326
327
# File 'lib/rubu.rb', line 324

def set_opt( key, val )
    @opt[ key ] = val
    self
end

- (Object) time

Mark creation time.



353
354
355
# File 'lib/rubu.rb', line 353

def time
    File.stat( path ).mtime
end