Class: Filebase::YAML

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

Instance Method Summary collapse

Constructor Details

#initialize(root) ⇒ YAML

Returns a new instance of YAML.



7
8
9
# File 'lib/drivers/yaml.rb', line 7

def initialize( root )
  @root = root.to_s
end

Instance Method Details

#allObject



15
16
17
# File 'lib/drivers/yaml.rb', line 15

def all
  Dir[ path('*') ].map { |file| find( File.basename(file,'.yml' ) ) }.compact
end

#delete(key) ⇒ Object



29
30
31
# File 'lib/drivers/yaml.rb', line 29

def delete( key )
	FileUtils.remove( path( key ) )
end

#find(key) ⇒ Object



19
20
21
22
23
# File 'lib/drivers/yaml.rb', line 19

def find( key )
	obj = ::YAML.load( File.read( path( key ) ) ) rescue nil
	obj['key'] = key if Hash === obj
	obj or nil # convert false to nil
end

#path(key) ⇒ Object



11
12
13
# File 'lib/drivers/yaml.rb', line 11

def path( key )
  File.join( @root, key.to_s ) + '.yml'
end

#save(key, object) ⇒ Object



25
26
27
# File 'lib/drivers/yaml.rb', line 25

def save( key, object )
	File.write( path( key ), object.to_yaml ) and object
end