wikk_configuration 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/History.txt +8 -0
- data/Manifest.txt +7 -0
- data/README.md +54 -0
- data/Rakefile +29 -0
- data/lib/wikk_configuration.rb +45 -0
- data/test/conf.json +8 -0
- data/test/manualtest.rb +45 -0
- metadata +90 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d42847eb805d60cdf0fb9ac2db0ab1f7a24c2a39
|
4
|
+
data.tar.gz: 551238c64c629ffcf4c7fa3db80e25bf554de3e6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6fd33de2da796b31db252c123ea34b65f507d63bf13ef45a216bada06d4cca7ed3cc9c8e8bc675f6c6384eb08abf50b4bfa939abb01f80a12d43072b04ed2b7e
|
7
|
+
data.tar.gz: 428247fa5c65afdc61c1798b960416fd13f6b2cf5b5c01845e2f81d6dfa9390890640b1fdc7ed19290718536944b1316cc95dfd3cedbf4d59d1732485372735a
|
data/History.txt
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
robertburrowes Sun May 8 22:43:56 2016 +1200
|
2
|
+
Changed makefile into install.sh
|
3
|
+
robertburrowes Sun Jan 10 19:33:55 2016 +1300
|
4
|
+
Install only
|
5
|
+
robertburrowes Sun Jan 10 19:33:46 2016 +1300
|
6
|
+
Reads json configuration and provides access to the configuration data
|
7
|
+
Rob Burrowes Sun Jan 10 19:26:05 2016 +1300
|
8
|
+
Initial commit
|
data/Manifest.txt
ADDED
data/README.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# configuration
|
2
|
+
|
3
|
+
* http://rbur004.github.com/configuration/
|
4
|
+
* Source https://github.com/wikarekare/configuration
|
5
|
+
* Gem https://rubygems.org/gems/wikk_configuration
|
6
|
+
|
7
|
+
## DESCRIPTION:
|
8
|
+
|
9
|
+
Ruby class to read json configuration files, and present the top level values as method calls
|
10
|
+
|
11
|
+
## FEATURES/PROBLEMS:
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
## SYNOPSIS:
|
16
|
+
|
17
|
+
require 'configuration'
|
18
|
+
|
19
|
+
## REQUIREMENTS:
|
20
|
+
|
21
|
+
|
22
|
+
## INSTALL:
|
23
|
+
|
24
|
+
* sudo gem install wikk_configuration
|
25
|
+
|
26
|
+
## LICENSE:
|
27
|
+
|
28
|
+
Copyright (c) 2016, wikarekare
|
29
|
+
All rights reserved.
|
30
|
+
|
31
|
+
Redistribution and use in source and binary forms, with or without
|
32
|
+
modification, are permitted provided that the following conditions are met:
|
33
|
+
|
34
|
+
* Redistributions of source code must retain the above copyright notice, this
|
35
|
+
list of conditions and the following disclaimer.
|
36
|
+
|
37
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
38
|
+
this list of conditions and the following disclaimer in the documentation
|
39
|
+
and/or other materials provided with the distribution.
|
40
|
+
|
41
|
+
* Neither the name of configuration nor the names of its
|
42
|
+
contributors may be used to endorse or promote products derived from
|
43
|
+
this software without specific prior written permission.
|
44
|
+
|
45
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
46
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
47
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
48
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
49
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
50
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
51
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
52
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
53
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
54
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
# -*- ruby -*-
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'hoe'
|
6
|
+
Hoe.plugin :yard
|
7
|
+
|
8
|
+
Hoe.spec 'wikk_configuration' do
|
9
|
+
self.developer( "Rob Burrowes","r.burrowes@auckland.ac.nz")
|
10
|
+
remote_rdoc_dir = '' # Release to root
|
11
|
+
|
12
|
+
self.yard_title = 'wikk_configuration'
|
13
|
+
self.yard_options = ['--markup', 'markdown', '--protected']
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
#Validate manfest.txt
|
18
|
+
#rake check_manifest
|
19
|
+
|
20
|
+
#Local checking. Creates pkg/
|
21
|
+
#rake gem
|
22
|
+
|
23
|
+
#create doc/
|
24
|
+
#rake docs
|
25
|
+
#In directory docs/
|
26
|
+
#scp -r . rbur004@rubyforge.org:/var/www/gforge-projects/versioncheck/
|
27
|
+
|
28
|
+
#Copy up to rubygem.org
|
29
|
+
#rake release VERSION=1.0.1
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
#Reads json configuration and provides access to the configuration data
|
4
|
+
#as method calls.
|
5
|
+
class Configuration
|
6
|
+
VERSION = '0.1.0'
|
7
|
+
|
8
|
+
#Creates an instance of Configuration from a json file
|
9
|
+
# @param [String] filename The Json file
|
10
|
+
# @return [Configuration]
|
11
|
+
def initialize(filename="#{File.dirname(__FILE__)}/../conf/config.json")
|
12
|
+
json = File.read(filename)
|
13
|
+
@pjson = JSON.parse(json)
|
14
|
+
end
|
15
|
+
|
16
|
+
#Provides a test for a method named after a json configuration item exists
|
17
|
+
# @note We need to define respond_to? as well as method_missing to satisfy tests in some libraries.
|
18
|
+
# @param symbol [Symbol,String] The method name we need to test exists
|
19
|
+
# @param include_private [Boolean] Extend the test to private methods
|
20
|
+
# @return [Boolean] true if the method exists
|
21
|
+
def respond_to?(symbol, include_private = false)
|
22
|
+
(@pjson[symbol.to_s] != nil) || super(symbol, include_private)
|
23
|
+
end
|
24
|
+
|
25
|
+
#Default handler to map json configuration names to method names
|
26
|
+
# @note Be aware of the possibility of name conflicts between built in class methods an configuration items defined in the json file)
|
27
|
+
# @param symbol [symbol,String] The method name that maps to a json configuration item
|
28
|
+
# @param args [Array] Not used, but would hold arguments to the method call. Should be zero length for our methods.
|
29
|
+
# @param block [Block] Not used, but would be a code block supplied to the method.
|
30
|
+
# @return [Object] the data associated with the json name, (hence method name) in the configuration file.
|
31
|
+
def method_missing(symbol , *args, &block)
|
32
|
+
s = symbol.to_s
|
33
|
+
if @pjson[s] != nil
|
34
|
+
return @pjson[s]
|
35
|
+
else
|
36
|
+
super
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String] the configuration
|
41
|
+
def to_s
|
42
|
+
@pjson.to_s
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
data/test/conf.json
ADDED
data/test/manualtest.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
#require_relative '../lib/wikk_configuration.rb' #For preinstall testing
|
3
|
+
require 'wikk_configuration.rb' #For post install testing
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
#Provides a self test of this class, by reading the test configuration file.
|
7
|
+
# and attempting to access configuration items as methods.
|
8
|
+
def test(config_file)
|
9
|
+
puts "creating config from '#{config_file}'"
|
10
|
+
config = Configuration.new(config_file)
|
11
|
+
|
12
|
+
puts "******Should be there*********"
|
13
|
+
puts "base_directories is defined? #{config.respond_to?(:base_directory)}"
|
14
|
+
puts "base_directories is: '#{config.base_directory}'"
|
15
|
+
puts "******Should NOT be there*********"
|
16
|
+
puts "not_there is defined? #{config.respond_to?(:not_there)}"
|
17
|
+
puts "******Array*********"
|
18
|
+
puts "hello is of class: #{config.hello.class}"
|
19
|
+
puts "config.hello[0] => #{config.hello[0]}"
|
20
|
+
puts "******Hash*********"
|
21
|
+
puts "world is of class: #{config.world.class}"
|
22
|
+
puts "config.world['1'] => #{config.world['1']}"
|
23
|
+
puts "******Boolean*********"
|
24
|
+
puts "boolean is of class: #{config.boolean.class}"
|
25
|
+
puts "config.boolean => #{config.boolean}"
|
26
|
+
puts "******String*********"
|
27
|
+
puts "string is of class: #{config.string.class}"
|
28
|
+
puts "config.string => #{config.string}"
|
29
|
+
puts "******Numeric*********"
|
30
|
+
puts "numeric is of class: #{config.numeric.class}"
|
31
|
+
puts "config.numeric => #{config.numeric}"
|
32
|
+
puts "****** Dump config using to_s *********"
|
33
|
+
pp config
|
34
|
+
end
|
35
|
+
|
36
|
+
puts "Start"
|
37
|
+
begin
|
38
|
+
test('conf.json')
|
39
|
+
rescue Exception => error
|
40
|
+
puts "Error: error"
|
41
|
+
end
|
42
|
+
puts "End"
|
43
|
+
|
44
|
+
|
45
|
+
|
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wikk_configuration
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rob Burrowes
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hoe-yard
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.2
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hoe
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.15'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.15'
|
41
|
+
description: Ruby class to read json configuration files, and present the top level
|
42
|
+
values as method calls
|
43
|
+
email:
|
44
|
+
- r.burrowes@auckland.ac.nz
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files:
|
48
|
+
- History.txt
|
49
|
+
- Manifest.txt
|
50
|
+
- README.md
|
51
|
+
files:
|
52
|
+
- History.txt
|
53
|
+
- Manifest.txt
|
54
|
+
- README.md
|
55
|
+
- Rakefile
|
56
|
+
- lib/wikk_configuration.rb
|
57
|
+
- test/conf.json
|
58
|
+
- test/manualtest.rb
|
59
|
+
homepage: http://rbur004.github.com/configuration/
|
60
|
+
licenses:
|
61
|
+
- MIT
|
62
|
+
metadata: {}
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options:
|
65
|
+
- "--markup"
|
66
|
+
- markdown
|
67
|
+
- "--protected"
|
68
|
+
- "--title"
|
69
|
+
- wikk_configuration
|
70
|
+
- "--quiet"
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
requirements: []
|
84
|
+
rubyforge_project:
|
85
|
+
rubygems_version: 2.5.1
|
86
|
+
signing_key:
|
87
|
+
specification_version: 4
|
88
|
+
summary: Ruby class to read json configuration files, and present the top level values
|
89
|
+
as method calls
|
90
|
+
test_files: []
|