cuke_fig 0.0.1
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.
- checksums.yaml +15 -0
- data/lib/cuke_fig.rb +70 -0
- metadata +86 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
N2Y3MzIzMzVlOTdlYTBhMGJhYjBlNjdkMzljYjgwYTQ1MzQ5M2M4Mg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NGZiMmYxNjNlNWVkNDlmODIyMDlmNmI3MGIyM2Y3MTUyYzEyMGM4Mw==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzBmM2Q3NzU4ZmM0OTJiZDliM2U2NWM3NjRkOTdkNDk4MmMxZmMzMGZmZGFi
|
10
|
+
N2QyMDlmMzk1NWE1MGRlOTMyYmY3MTE2OGEzNWQ5ZDQ2NGI2NDA1ZjJiM2Zh
|
11
|
+
YzYxNTBjOGFhODZmNDU5YjBlNTFlNmQ2NzM1ODlhM2YzZmY4ZmE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZDhmYWM2YmIyOWVkOTZmZTE1ZGZmMTZiNjUzYTVhNjYzN2MyODdkOGZlY2Ew
|
14
|
+
MWZjNzYyNDIwODdhZWRkZTZjZWMzOWUxYzUwZjIwZmI3MmIzZDJiOTlhZWY2
|
15
|
+
MWFiZDJiZmZkNGI2NzcxYTM5NDFmMDU2YzA3YmEzZGUzNzVmMjI=
|
data/lib/cuke_fig.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
|
2
|
+
module CukeFig
|
3
|
+
class Config
|
4
|
+
attr_reader :global_config, :methods
|
5
|
+
|
6
|
+
def self.get
|
7
|
+
@global_config ||= Config.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@methods ||= []
|
12
|
+
end
|
13
|
+
|
14
|
+
def clear
|
15
|
+
@global_config = Config.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def load(conf_files)
|
19
|
+
conf_files = [conf_files] unless conf_files.is_a? Array
|
20
|
+
conf_files.each do |conf|
|
21
|
+
attr_name = File.basename(conf, '.yml').gsub('-', '_')
|
22
|
+
attr_value = YAML.load_file conf
|
23
|
+
set attr_name, attr_value
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def set(attr_name, attr_value)
|
28
|
+
var_name = ('@' + attr_name.to_s).to_sym
|
29
|
+
if instance_variable_defined?(var_name) && attr_value.is_a?(Hash)
|
30
|
+
# Get and merge. Keep merging if hash values are hashes
|
31
|
+
merger = proc { |_key, v1, v2| v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.merge(v2, &merger) : (v2.nil? ? v1 : v2) }
|
32
|
+
instance_variable_get(var_name).merge! attr_value, &merger
|
33
|
+
else
|
34
|
+
# Create
|
35
|
+
instance_variable_set(var_name, attr_value)
|
36
|
+
singleton_class.class_eval { attr_reader attr_name }
|
37
|
+
@methods << attr_name.to_s
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def config
|
43
|
+
Config.get
|
44
|
+
end
|
45
|
+
|
46
|
+
def expand_config_files(common, env_config: nil, override: nil)
|
47
|
+
expanded = []
|
48
|
+
expanded.concat common unless common.nil?
|
49
|
+
expanded.concat env_config unless env_config.nil?
|
50
|
+
expanded.concat override unless override.nil?
|
51
|
+
expanded
|
52
|
+
end
|
53
|
+
|
54
|
+
def setup(common, environment: nil, env_configs: nil, override: nil)
|
55
|
+
config.clear
|
56
|
+
env_config = env_configs[environment] unless env_configs.nil? || environment.nil?
|
57
|
+
config_files = expand_config_files common, env_config: env_config, override: override
|
58
|
+
config.set(:env, environment)
|
59
|
+
config.load(config_files)
|
60
|
+
config.methods.each do |method|
|
61
|
+
define_method method do |*args, &block|
|
62
|
+
config.send method, *args, &block
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
extend(CukeFig)
|
68
|
+
end
|
69
|
+
|
70
|
+
World(CukeFig)
|
metadata
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cuke_fig
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Anders Åslund
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cucumber
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-expectations
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Multilevel configuration for cucumber
|
56
|
+
email: anders.aslund@teknoir.se
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- lib/cuke_fig.rb
|
62
|
+
homepage: http://www.teknoir.se
|
63
|
+
licenses:
|
64
|
+
- MIT
|
65
|
+
metadata: {}
|
66
|
+
post_install_message:
|
67
|
+
rdoc_options: []
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 2.4.5
|
83
|
+
signing_key:
|
84
|
+
specification_version: 4
|
85
|
+
summary: A YAML file config library for cucumber
|
86
|
+
test_files: []
|