Class: Rubu::Mark
- Inherits:
-
Object
- Object
- Rubu::Mark
- 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)
-
- (Object) base
readonly
Base name.
-
- (Object) dir
readonly
Absolute directory.
-
- (Object) ext
readonly
File extension.
-
- (Object) rdir
readonly
Relative directory.
-
- (Object) skip
Skip file.
Class Method Summary (collapse)
-
+ (Object) glob(pattern)
Convert a list of file names matched with 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.
-
- (Object) []=(key, val)
Set options.
-
- (Boolean) exist?
Does Mark exist?.
-
- (Mark) initialize(rdir, base, ext)
constructor
A new instance of Mark.
-
- (Object) path(ext = nil)
Return absolute path.
-
- (Object) peer(rdir, ext, base = nil)
Return peer of Mark.
-
- (Object) rpath(ext = nil)
Return relative path.
-
- (Object) set_opt(key, val)
Set options.
-
- (Object) time
Mark creation time.
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?
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 |