kshramt 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 65cf479698375a1f98bf54ad43f8b94f9a9092fb
4
+ data.tar.gz: 8133712f35860f9c5104e82ac97ba8282181c801
5
+ SHA512:
6
+ metadata.gz: 92517feff3d88ff44c711eeafc62a0b0de19389d79a040e5b416a703e9e6db2a34b76678f64430ec3d418ce59559db6390b8fa20a32498b382940d1c24eacfc8
7
+ data.tar.gz: 5457ffe196e26374f70b491edb9ce5f8a83e38adc805aab964549509ed4f86e73569721984d933782aae56210f67aba5d86b4643992f5d1fa195565c503e0f33
data/kshramt.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'ruby_patch'
2
2
 
3
- gem_name = File.basename(__DIR__)
3
+ gem_name = 'kshramt'
4
4
  require "./lib/#{gem_name}/version"
5
5
 
6
6
  Gem::Specification.new do |s|
@@ -10,7 +10,8 @@ Gem::Specification.new do |s|
10
10
  s.version = Kshramt::VERSION
11
11
 
12
12
  s.add_development_dependency 'ruby_patch', '~> 0.3'
13
+ s.add_development_dependency 'watchr', '~> 0.7'
13
14
  s.description = "Kshramt's modules and classes."
14
15
  s.author = 'kshramt'
15
- s.required_ruby_version = '~> 1.9'
16
+ s.required_ruby_version = '~> 2.0'
16
17
  end
@@ -1,38 +1,32 @@
1
- module ::Kshramt::Config
1
+ require 'ostruct'
2
+
3
+ class ::Kshramt::Config < OpenStruct
2
4
  require 'yaml'
3
5
  require 'fileutils'
4
6
 
5
7
  def initialize(app_name, default = {})
6
- @dir = File.join(ENV['HOME'], '.config', app_name)
7
- @file = File.join(@dir, 'config.yaml')
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
14
- else
15
- need_dump = true
16
- default
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
- }
8
+ @file = File.join(ENV['HOME'], '.config', app_name, 'config.yaml')
9
+ loaded_config = if File.readable?(@file) && File.size(@file) > 0
10
+ YAML.load_file(@file)
11
+ else
12
+ {}
13
+ end
14
+ config = default.merge(loaded_config)
15
+ @table = config
16
+ if config.size > loaded_config.size
17
+ self.dump_file(@file, default)
24
18
  end
25
19
  end
26
20
 
27
- def method_missing(name, *args, &block)
28
- if @config.has_key?(name)
29
- @config[name]
30
- else
31
- if block
32
- super(name, *args, &block)
33
- else
34
- super(name, *args)
35
- end
21
+ def dump_file(file = @file, additional_config = {})
22
+ FileUtils.mkdir_p(File.dirname(file))
23
+ open(file, 'w') do |io|
24
+ io.write(self.dump(additional_config))
25
+ io.flush
36
26
  end
37
27
  end
28
+
29
+ def dump(additional_config = {})
30
+ YAML.dump(self.to_h.merge(additional_config))
31
+ end
38
32
  end
@@ -1,3 +1,3 @@
1
1
  module ::Kshramt
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,27 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kshramt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - kshramt
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-21 00:00:00.000000000 Z
11
+ date: 2013-12-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ruby_patch
16
- requirement: &2153309820 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0.3'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *2153309820
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: watchr
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.7'
25
41
  description: Kshramt's modules and classes.
26
42
  email:
27
43
  executables: []
@@ -34,27 +50,26 @@ files:
34
50
  - lib/kshramt/version.rb
35
51
  homepage:
36
52
  licenses: []
53
+ metadata: {}
37
54
  post_install_message:
38
55
  rdoc_options: []
39
56
  require_paths:
40
57
  - lib
41
58
  required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
59
  requirements:
44
- - - ~>
60
+ - - "~>"
45
61
  - !ruby/object:Gem::Version
46
- version: '1.9'
62
+ version: '2.0'
47
63
  required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
64
  requirements:
50
- - - ! '>='
65
+ - - ">="
51
66
  - !ruby/object:Gem::Version
52
67
  version: '0'
53
68
  requirements: []
54
69
  rubyforge_project:
55
- rubygems_version: 1.8.15
70
+ rubygems_version: 2.0.3
56
71
  signing_key:
57
- specification_version: 3
72
+ specification_version: 4
58
73
  summary: Kshramt's modules and classes.
59
74
  test_files: []
60
75
  has_rdoc: