user_config 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/user_config.rb +10 -1
- data/spec/user_config_spec.rb +7 -0
- data/user_config.gemspec +2 -2
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/user_config.rb
CHANGED
@@ -3,6 +3,9 @@ require 'yaml'
|
|
3
3
|
require 'pathname'
|
4
4
|
|
5
5
|
class UserConfig
|
6
|
+
class DirectoryExistenceError < StandardError
|
7
|
+
end
|
8
|
+
|
6
9
|
def self.default_value
|
7
10
|
unless @default_value
|
8
11
|
@default_value = {}
|
@@ -20,10 +23,16 @@ class UserConfig
|
|
20
23
|
# opts[:home] is root directory, of which default value is ENV['HOME'].
|
21
24
|
# opts[:permission] is a file permission of the configuration directory,
|
22
25
|
# of which default value is 0700.
|
26
|
+
# If opts[:new_directory] is true and the directory exists
|
27
|
+
# then an error raises.
|
23
28
|
def initialize(directory_name, opts = {})
|
24
29
|
@directory = File.expand_path(File.join(opts[:home] || ENV['HOME'], directory_name))
|
25
30
|
@file = {}
|
26
|
-
|
31
|
+
if File.exist?(@directory)
|
32
|
+
if opts[:new_directory]
|
33
|
+
raise UserConfig::DirectoryExistenceError, "Can not create new directory: #{@directory}"
|
34
|
+
end
|
35
|
+
else
|
27
36
|
FileUtils.mkdir_p(@directory)
|
28
37
|
FileUtils.chmod(opts[:permission] || 0700, @directory)
|
29
38
|
end
|
data/spec/user_config_spec.rb
CHANGED
@@ -20,6 +20,13 @@ describe UserConfig do
|
|
20
20
|
uconf.directory.should == File.expand_path(File.join(@home, 'dir1'))
|
21
21
|
end
|
22
22
|
|
23
|
+
it "should raise error" do
|
24
|
+
UserConfig.new('dir1', :home => @home)
|
25
|
+
lambda do
|
26
|
+
uconf = UserConfig.new('dir1', :home => @home, :new_directory => true)
|
27
|
+
end.should raise_error UserConfig::DirectoryExistenceError
|
28
|
+
end
|
29
|
+
|
23
30
|
it "should create directory" do
|
24
31
|
uconf = UserConfig.new('dir2', :home => @home)
|
25
32
|
File.exist?(File.join(@home, 'dir2')).should be_true
|
data/user_config.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{user_config}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Takayuki YAMAGUCHI"]
|
12
|
-
s.date = %q{2011-07-
|
12
|
+
s.date = %q{2011-07-08}
|
13
13
|
s.description = %q{The library creates, saves, and loads configuration files, which are in a user's home directory or a specified directory.}
|
14
14
|
s.email = %q{d@ytak.info}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: user_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Takayuki YAMAGUCHI
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-08 00:00:00 +09:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -105,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements:
|
106
106
|
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
hash:
|
108
|
+
hash: -3256709702624192472
|
109
109
|
segments:
|
110
110
|
- 0
|
111
111
|
version: "0"
|