kshramt 0.0.1 → 0.1.0

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.
@@ -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: []