AbsoluteRenamer 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/AbsoluteRenamer.gemspec +26 -87
- data/Gemfile +4 -0
- data/README.rdoc +3 -1
- data/Rakefile +2 -59
- data/bin/absrenamer +4 -6
- data/conf/absrenamer/absrenamer.conf +1 -1
- data/lib/absolute_renamer.rb +99 -103
- data/lib/absolute_renamer/config.rb +43 -34
- data/lib/absolute_renamer/core-packages/core-case/module.rb +23 -24
- data/lib/absolute_renamer/core-packages/core-general/module.rb +106 -128
- data/lib/absolute_renamer/core-packages/core-general/parser.rb +75 -64
- data/lib/absolute_renamer/core-packages/core-interactive/parser.rb +15 -15
- data/lib/absolute_renamer/core-packages/core-interactive/plugin.rb +29 -29
- data/lib/absolute_renamer/core-packages/core-listing/parser.rb +6 -6
- data/lib/absolute_renamer/core-packages/core-listing/plugin.rb +10 -10
- data/lib/absolute_renamer/external.rb +48 -48
- data/lib/absolute_renamer/file_info.rb +87 -88
- data/lib/absolute_renamer/imodule.rb +69 -72
- data/lib/absolute_renamer/iparser.rb +4 -4
- data/lib/absolute_renamer/iplugin.rb +6 -6
- data/lib/absolute_renamer/libs/file.rb +8 -8
- data/lib/absolute_renamer/libs/hash.rb +23 -23
- data/lib/absolute_renamer/libs/string.rb +21 -21
- data/lib/absolute_renamer/parser.rb +57 -58
- data/lib/absolute_renamer/use_config.rb +6 -6
- data/lib/absolute_renamer/version.rb +3 -0
- data/lib/absolute_renamer/with_children.rb +15 -15
- data/test/config_test.rb +1 -8
- data/test/file_info_test.rb +23 -22
- data/test/imodule_test.rb +1 -8
- metadata +54 -18
- data/VERSION +0 -1
data/AbsoluteRenamer.gemspec
CHANGED
@@ -1,94 +1,33 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/absolute_renamer/version", __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
5
|
+
s.name = "AbsoluteRenamer"
|
6
|
+
s.version = AbsoluteRenamer::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Simon COURTOIS"]
|
9
|
+
s.email = ["happynoff@free.fr"]
|
10
|
+
s.homepage = "http://github.com/simonc/AbsoluteRenamer"
|
11
|
+
s.summary = "AbsoluteRenamer is a very powerful tool that helps files " \
|
12
|
+
"and directories renaming using the Krename syntax."
|
13
|
+
s.description = "AbsoluteRenamer is a very powerful tool that helps files " \
|
14
|
+
"and directories renaming using the Krename syntax. Unlike " \
|
15
|
+
"many batch renaming tools, AbsoluteRenamer is able to " \
|
16
|
+
"rename folders. AbsoluteRenamer is modular and can be " \
|
17
|
+
"extended to adapt itself to any kind of file or to add " \
|
18
|
+
"new options and features."
|
9
19
|
|
10
|
-
s.required_rubygems_version =
|
11
|
-
s.
|
12
|
-
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.email = %q{happynoff@free.fr}
|
16
|
-
s.executables = ["absrenamer"]
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"LICENSE",
|
19
|
-
"README.rdoc"
|
20
|
-
]
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
".gitignore",
|
24
|
-
"AbsoluteRenamer.gemspec",
|
25
|
-
"LICENSE",
|
26
|
-
"README.rdoc",
|
27
|
-
"Rakefile",
|
28
|
-
"VERSION",
|
29
|
-
"bin/absrenamer",
|
30
|
-
"conf/absrenamer/absrenamer.conf",
|
31
|
-
"lib/absolute_renamer.rb",
|
32
|
-
"lib/absolute_renamer/config.rb",
|
33
|
-
"lib/absolute_renamer/core-packages/core-case/module.rb",
|
34
|
-
"lib/absolute_renamer/core-packages/core-general/module.rb",
|
35
|
-
"lib/absolute_renamer/core-packages/core-general/parser.rb",
|
36
|
-
"lib/absolute_renamer/core-packages/core-interactive/parser.rb",
|
37
|
-
"lib/absolute_renamer/core-packages/core-interactive/plugin.rb",
|
38
|
-
"lib/absolute_renamer/core-packages/core-listing/parser.rb",
|
39
|
-
"lib/absolute_renamer/core-packages/core-listing/plugin.rb",
|
40
|
-
"lib/absolute_renamer/core-packages/core-packages.rb",
|
41
|
-
"lib/absolute_renamer/external.rb",
|
42
|
-
"lib/absolute_renamer/file_info.rb",
|
43
|
-
"lib/absolute_renamer/imodule.rb",
|
44
|
-
"lib/absolute_renamer/iparser.rb",
|
45
|
-
"lib/absolute_renamer/iplugin.rb",
|
46
|
-
"lib/absolute_renamer/libs/file.rb",
|
47
|
-
"lib/absolute_renamer/libs/hash.rb",
|
48
|
-
"lib/absolute_renamer/libs/string.rb",
|
49
|
-
"lib/absolute_renamer/parser.rb",
|
50
|
-
"lib/absolute_renamer/use_config.rb",
|
51
|
-
"lib/absolute_renamer/with_children.rb",
|
52
|
-
"test/absolute_renamer_test.rb",
|
53
|
-
"test/config_test.rb",
|
54
|
-
"test/file_info_test.rb",
|
55
|
-
"test/file_test.rb",
|
56
|
-
"test/hash_test.rb",
|
57
|
-
"test/imodule_test.rb",
|
58
|
-
"test/iplugin_test.rb",
|
59
|
-
"test/parser_test.rb",
|
60
|
-
"test/string_test.rb",
|
61
|
-
"test/test_helper.rb"
|
62
|
-
]
|
63
|
-
s.homepage = %q{http://github.com/simonc/AbsoluteRenamer}
|
64
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
65
|
-
s.require_paths = ["lib"]
|
66
|
-
s.rubyforge_project = %q{absrenamer}
|
67
|
-
s.rubygems_version = %q{1.3.5}
|
68
|
-
s.summary = %q{AbsoluteRenamer is a very powerful tool that helps files and directories renaming using the Krename syntax.}
|
69
|
-
s.test_files = [
|
70
|
-
"test/string_test.rb",
|
71
|
-
"test/file_test.rb",
|
72
|
-
"test/iplugin_test.rb",
|
73
|
-
"test/absolute_renamer_test.rb",
|
74
|
-
"test/test_helper.rb",
|
75
|
-
"test/config_test.rb",
|
76
|
-
"test/hash_test.rb",
|
77
|
-
"test/imodule_test.rb",
|
78
|
-
"test/parser_test.rb",
|
79
|
-
"test/file_info_test.rb"
|
80
|
-
]
|
20
|
+
s.required_rubygems_version = ">= 1.3.6"
|
21
|
+
s.rubyforge_project = "absrenamer"
|
22
|
+
|
23
|
+
s.add_development_dependency "bundler", ">= 1.0.0"
|
24
|
+
s.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
81
25
|
|
82
|
-
|
83
|
-
|
84
|
-
|
26
|
+
s.files = `git ls-files`.split("\n")
|
27
|
+
s.executables = `git ls-files`.split("\n").map {|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
28
|
+
s.require_path = 'lib'
|
29
|
+
s.test_files = `git ls-files`.split("\n").map{|f| f =~ /^test\/.*/ ? f : nil}.compact
|
30
|
+
s.extra_rdoc_files = ["LICENSE", "README.rdoc"]
|
85
31
|
|
86
|
-
|
87
|
-
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
88
|
-
else
|
89
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
90
|
-
end
|
91
|
-
else
|
92
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
93
|
-
end
|
32
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
94
33
|
end
|
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -18,7 +18,9 @@ For instance, the following line will rename all IMG*.JPG files in photo_01.jpg,
|
|
18
18
|
|
19
19
|
You can simply install AbsoluteRenamer with gem :
|
20
20
|
|
21
|
-
sudo gem install
|
21
|
+
sudo gem install gemcutter
|
22
|
+
sudo gem tumble
|
23
|
+
sudo gem install AbsoluteRenamer
|
22
24
|
|
23
25
|
== Documentation
|
24
26
|
|
data/Rakefile
CHANGED
@@ -1,59 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "AbsoluteRenamer"
|
8
|
-
gem.summary = %Q{AbsoluteRenamer is a very powerful tool that helps files and directories renaming using the Krename syntax.}
|
9
|
-
gem.description = %Q{AbsoluteRenamer is a very powerful tool that helps files and directories renaming using the Krename syntax. \
|
10
|
-
Unlike many batch renaming tools, AbsoluteRenamer is able to rename folders. \
|
11
|
-
AbsoluteRenamer is modular and can be extended to adapt itself to any kind of file or to add new options and features.}
|
12
|
-
gem.email = "happynoff@free.fr"
|
13
|
-
gem.homepage = "http://github.com/simonc/AbsoluteRenamer"
|
14
|
-
gem.authors = ["Simon COURTOIS"]
|
15
|
-
gem.add_development_dependency "thoughtbot-shoulda"
|
16
|
-
gem.rubyforge_project = "absrenamer"
|
17
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
|
-
end
|
19
|
-
rescue LoadError
|
20
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
21
|
-
end
|
22
|
-
|
23
|
-
require 'rake/testtask'
|
24
|
-
Rake::TestTask.new(:test) do |test|
|
25
|
-
test.libs << 'lib' << 'test'
|
26
|
-
test.pattern = 'test/**/*_test.rb'
|
27
|
-
test.verbose = true
|
28
|
-
end
|
29
|
-
|
30
|
-
begin
|
31
|
-
require 'rcov/rcovtask'
|
32
|
-
Rcov::RcovTask.new do |test|
|
33
|
-
test.libs << 'test'
|
34
|
-
test.pattern = 'test/**/*_test.rb'
|
35
|
-
test.verbose = true
|
36
|
-
end
|
37
|
-
rescue LoadError
|
38
|
-
task :rcov do
|
39
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
task :test => :check_dependencies
|
44
|
-
|
45
|
-
task :default => :test
|
46
|
-
|
47
|
-
require 'rake/rdoctask'
|
48
|
-
Rake::RDocTask.new do |rdoc|
|
49
|
-
if File.exist?('VERSION')
|
50
|
-
version = File.read('VERSION')
|
51
|
-
else
|
52
|
-
version = ""
|
53
|
-
end
|
54
|
-
|
55
|
-
rdoc.rdoc_dir = 'rdoc'
|
56
|
-
rdoc.title = "AbsoluteRenamer #{version}"
|
57
|
-
rdoc.rdoc_files.include('README*')
|
58
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
59
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/bin/absrenamer
CHANGED
@@ -43,13 +43,11 @@ require 'absolute_renamer/config'
|
|
43
43
|
require 'absolute_renamer/parser'
|
44
44
|
require 'absolute_renamer/external'
|
45
45
|
|
46
|
-
|
47
|
-
global_conf
|
48
|
-
custom_conf
|
46
|
+
default_conf = File.dirname(__FILE__) + '/../conf/absrenamer/absrenamer.conf'
|
47
|
+
global_conf = '/etc/absrenamer/absrenamer.conf'
|
48
|
+
custom_conf = '~/.absrenamerrc'
|
49
49
|
|
50
|
-
AbsoluteRenamer::Config.load(
|
51
|
-
AbsoluteRenamer::Config.load(global_conf) if File.exists? global_conf
|
52
|
-
AbsoluteRenamer::Config.load(custom_conf) if File.exists? custom_conf
|
50
|
+
AbsoluteRenamer::Config.load([default_conf, global_conf, custom_conf])
|
53
51
|
|
54
52
|
AbsoluteRenamer::External.load_gems
|
55
53
|
AbsoluteRenamer::External.load_core
|
data/lib/absolute_renamer.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__))
|
2
|
-
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
3
2
|
|
3
|
+
require 'absolute_renamer/version'
|
4
4
|
require 'absolute_renamer/config'
|
5
5
|
require 'absolute_renamer/with_children'
|
6
6
|
require 'absolute_renamer/external'
|
@@ -13,114 +13,110 @@ require 'absolute_renamer/use_config'
|
|
13
13
|
|
14
14
|
# top level module of AbsoluteRenamer.
|
15
15
|
module AbsoluteRenamer
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
# The main class of AbsoluteRenamer.
|
17
|
+
#
|
18
|
+
# Organizes the files and directories renaming process.
|
19
|
+
class Processor
|
20
|
+
class << self
|
21
|
+
include AbsoluteRenamer::UseConfig
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
# Creates the new names for each file passed to AbsoluteRenamer.
|
24
|
+
#
|
25
|
+
# Asks to each module if it as something to replace
|
26
|
+
# in the name of each file.
|
27
|
+
#
|
28
|
+
# Calls the +before_names_generation+ entry point.
|
29
|
+
def create_names_list
|
30
|
+
call_entry_point(:before_names_generation)
|
27
31
|
|
28
|
-
|
29
|
-
|
30
|
-
# Asks to each module if he as something to replace
|
31
|
-
# in the name of each file.
|
32
|
-
#
|
33
|
-
# Calls the +before_names_generation+ entry point.
|
34
|
-
def create_names_list
|
35
|
-
call_entry_point(:before_names_generation)
|
36
|
-
return if conf[:files].empty?
|
37
|
-
mods = {}
|
38
|
-
conf[:files].each do |file|
|
39
|
-
name = conf[:options][:format].clone
|
40
|
-
ext = conf[:options][:ext_format].clone
|
41
|
-
do_replacements(file.name, :before)
|
42
|
-
AbsoluteRenamer::IModule.children.each do |mod|
|
43
|
-
mod_sym = mod.symbol
|
44
|
-
mods[mod_sym] ||= mod.new
|
45
|
-
name = mods[mod_sym].process(file, name)
|
46
|
-
ext = mods[mod_sym].process(file, ext, :ext) unless file.dir
|
47
|
-
end
|
48
|
-
do_replacements(name, :after)
|
49
|
-
file.new_name = name
|
50
|
-
file.new_name << '.' << ext unless (file.dir or file.ext.empty?)
|
51
|
-
end
|
52
|
-
if (conf[:options][:dir] and conf[:options][:rec])
|
53
|
-
conf[:files].sort! { |a, b| AbsoluteRenamer::FileInfo.compare_level(a, b) }
|
54
|
-
end
|
55
|
-
mods.clear
|
56
|
-
end
|
32
|
+
name_format = conf[:options][:format]
|
33
|
+
ext_format = conf[:options][:ext_format]
|
57
34
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
# - before_file_renaming ;
|
63
|
-
# - after_file_renaming ;
|
64
|
-
# - after_batch_renaming.
|
65
|
-
def do_renaming
|
66
|
-
if call_entry_point(:before_batch_renaming)
|
67
|
-
conf[:files].each do |file|
|
68
|
-
if call_entry_point(:before_file_renaming, :file => file)
|
69
|
-
if file.respond_to?(conf[:options][:mode])
|
70
|
-
file.send(conf[:options][:mode])
|
71
|
-
end
|
72
|
-
call_entry_point(:after_file_renaming, :file => file)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
call_entry_point(:after_batch_renaming)
|
76
|
-
end
|
77
|
-
end
|
35
|
+
conf[:files].each do |file|
|
36
|
+
do_replacements(file.name, :before)
|
37
|
+
name, ext = AbsoluteRenamer::IModule.process(file, name_format.clone, ext_format.clone)
|
38
|
+
do_replacements(name, :after)
|
78
39
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|
40
|
+
file.new_name = name
|
41
|
+
unless ext.empty? or file.dir or file.ext.empty? or conf[:options][:no_ext]
|
42
|
+
file.new_name << ".#{ext}"
|
43
|
+
end
|
44
|
+
end
|
86
45
|
|
87
|
-
|
88
|
-
|
89
|
-
# Ask to each plugin if it implements the entry point
|
90
|
-
# and calls it with params if it isn't null.
|
91
|
-
# It keeps going will all plugins return true.
|
92
|
-
#
|
93
|
-
# returns true if all plugins returned true
|
94
|
-
def call_entry_point(ep, params = nil)
|
95
|
-
puts "Plugin Entry Point: #{ep}" if conf[:debug]
|
96
|
-
keep_going = true
|
97
|
-
@plugins.each_value do |plugin|
|
98
|
-
if plugin.respond_to?(ep)
|
99
|
-
keep_going &= params.nil? ? plugin.send(ep) : plugin.send(ep, params)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
keep_going
|
103
|
-
end
|
46
|
+
conf[:files].sort! if (conf[:options][:dir] and conf[:options][:rec])
|
47
|
+
end
|
104
48
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
unless replacements.nil?
|
119
|
-
replacements.each do |repl|
|
120
|
-
format.gsub!(repl[:pattern], repl[:replace])
|
121
|
-
end
|
122
|
-
end
|
49
|
+
# For each file/dir replaces his name by his new name.
|
50
|
+
#
|
51
|
+
# Calls the following entry points :
|
52
|
+
# - before_batch_renaming ;
|
53
|
+
# - before_file_renaming ;
|
54
|
+
# - after_file_renaming ;
|
55
|
+
# - after_batch_renaming.
|
56
|
+
def do_renaming
|
57
|
+
surround_with_entry_points(:batch_renaming) do
|
58
|
+
conf[:files].each do |file|
|
59
|
+
surround_with_entry_points(:file_renaming, :file => file) do
|
60
|
+
file.send(conf[:options][:mode]) if file.respond_to? conf[:options][:mode]
|
61
|
+
{:file => file}
|
123
62
|
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Loads the plugins list in the @plugins variable.
|
68
|
+
def load_plugins
|
69
|
+
@plugins = {}
|
70
|
+
AbsoluteRenamer::IPlugin.children.each do |plugin|
|
71
|
+
@plugins[plugin.symbol] = plugin.new
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def surround_with_entry_points(ep, params = nil)
|
76
|
+
if call_entry_point("before_#{ep}".to_sym, params)
|
77
|
+
result = yield
|
78
|
+
call_entry_point("after_#{ep}".to_sym, result)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# Calls the given entry point for each plugin available
|
83
|
+
#
|
84
|
+
# Ask to each plugin if it implements the entry point
|
85
|
+
# and calls it with params if it isn't null.
|
86
|
+
# It keeps going while all plugins return true.
|
87
|
+
#
|
88
|
+
# returns true if all plugins returned true
|
89
|
+
def call_entry_point(ep, params = nil)
|
90
|
+
puts "Plugin Entry Point: #{ep}" if conf[:debug]
|
91
|
+
keep_going = true
|
92
|
+
@plugins.each_value do |plugin|
|
93
|
+
if plugin.respond_to?(ep)
|
94
|
+
keep_going &= params.nil? ? plugin.send(ep) : plugin.send(ep, params)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
keep_going
|
98
|
+
end
|
99
|
+
|
100
|
+
# Applies replacements
|
101
|
+
#
|
102
|
+
# The replacements are stored in conf[options][replacements][moment]
|
103
|
+
# and are provided as command line paramters.
|
104
|
+
#
|
105
|
+
# format represents the string in which the replacements are done
|
106
|
+
# moment determines which replacements are done (on old or new name)
|
107
|
+
def do_replacements(format, moment)
|
108
|
+
begin
|
109
|
+
replacements = conf[:options][:replacements][moment]
|
110
|
+
rescue NoMethodError
|
111
|
+
replacements = nil
|
112
|
+
end
|
113
|
+
|
114
|
+
unless replacements.nil?
|
115
|
+
replacements.each do |repl|
|
116
|
+
format.gsub!(repl[:pattern], repl[:replace])
|
117
|
+
end
|
124
118
|
end
|
119
|
+
end
|
125
120
|
end
|
121
|
+
end
|
126
122
|
end
|
@@ -1,44 +1,53 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
3
|
module AbsoluteRenamer
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
# Class handeling the configuration.
|
5
|
+
class Config
|
6
|
+
class << self
|
7
|
+
# Opens and loads a list of Yaml files into the +@conf+ variable.
|
8
|
+
# config_paths: list of files to load.
|
9
|
+
def load(config_paths)
|
10
|
+
@conf ||= {
|
11
|
+
:options => {
|
12
|
+
:dots => 1,
|
13
|
+
:ext_format => '$',
|
14
|
+
:format => '$',
|
15
|
+
:interactive => :never,
|
16
|
+
:maxdepth => 0,
|
17
|
+
:mode => :rename
|
18
|
+
}
|
19
|
+
}
|
11
20
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@conf[:options] ||= {}
|
17
|
-
@conf[:options][:format] ||= '$'
|
18
|
-
@conf[:options][:ext_format] ||= '$'
|
21
|
+
config_paths.each do |conf_file|
|
22
|
+
if File.exists?(conf_file)
|
23
|
+
if tmp_conf = YAML::load_file(conf_file)
|
24
|
+
@conf.deep_merge!(tmp_conf)
|
19
25
|
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
20
29
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
30
|
+
# Returns a configuration value identified by +key+.
|
31
|
+
# If +key+ is ignored, returns the +@conf+ hash.
|
32
|
+
def get(key = nil)
|
33
|
+
return @conf[key] if (key and @conf.has_key?(key))
|
34
|
+
return @conf if key.nil?
|
35
|
+
end
|
27
36
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
37
|
+
# Sets a configuration value in the +@conf+ variable.
|
38
|
+
def set(key, value = '')
|
39
|
+
@conf[key] = value unless key.nil?
|
40
|
+
end
|
32
41
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
42
|
+
# Returns a configuration value identified by +key+.
|
43
|
+
def [](key)
|
44
|
+
@conf[key]
|
45
|
+
end
|
37
46
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
47
|
+
# Sets a configuration value in the +@conf+ variable.
|
48
|
+
def []=(key, value)
|
49
|
+
@conf[key] = value
|
50
|
+
end
|
43
51
|
end
|
44
|
-
end
|
52
|
+
end
|
53
|
+
end
|