kshramt 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,24 +2,31 @@ module ::Kshramt::Config
2
2
  require 'yaml'
3
3
  require 'fileutils'
4
4
 
5
- def initialize(app_name, params = {})
5
+ def initialize(app_name, default = {})
6
6
  @dir = File.join(ENV['HOME'], '.config', app_name)
7
7
  @file = File.join(@dir, 'config.yaml')
8
- @params = if File.readable?(@file) && File.size(@file) > 0
9
- params.merge(YAML.load_file(@file))
8
+ need_dump = false
9
+ @config = if File.readable?(@file) && File.size(@file) > 0
10
+ yaml = YAML.load_file(@file)
11
+ config = default.merge(yaml)
12
+ need_dump = config.size > yaml.size
13
+ config
10
14
  else
11
- FileUtils.mkdir_p(@dir)
12
- open(@file, 'w'){|io|
13
- io.write(YAML.dump(params))
14
- io.flush
15
- }
16
- params
15
+ need_dump = true
16
+ default
17
17
  end
18
+ if need_dump
19
+ FileUtils.mkdir_p(@dir)
20
+ open(@file, 'w'){|io|
21
+ io.write(YAML.dump(@config))
22
+ io.flush
23
+ }
24
+ end
18
25
  end
19
26
 
20
27
  def method_missing(name, *args, &block)
21
- if @params.has_key?(name)
22
- @params[name]
28
+ if @config.has_key?(name)
29
+ @config[name]
23
30
  else
24
31
  if block
25
32
  super(name, *args, &block)
@@ -1,3 +1,3 @@
1
1
  module ::Kshramt
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kshramt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-10-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ruby_patch
16
- requirement: &2153296840 !ruby/object:Gem::Requirement
16
+ requirement: &2153309820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0.3'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2153296840
24
+ version_requirements: *2153309820
25
25
  description: Kshramt's modules and classes.
26
26
  email:
27
27
  executables: []