ambience 0.1.0 → 0.2.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.
- data/CHANGELOG +8 -0
- data/README.rdoc +24 -57
- data/Rakefile +20 -31
- data/lib/ambience.rb +3 -84
- data/lib/ambience/ambience.rb +104 -0
- data/lib/ambience/core_ext.rb +19 -0
- data/spec/ambience/ambience_spec.rb +49 -0
- data/spec/fixtures/basic.yml +5 -0
- data/spec/fixtures/environments.yml +14 -0
- data/spec/fixtures/symbols.yml +11 -0
- data/spec/spec_helper.rb +16 -0
- metadata +48 -18
- data/VERSION +0 -1
- data/init.rb +0 -1
- data/test/ambience_test.rb +0 -48
- data/test/fixtures/fixtures.rb +0 -23
- data/test/fixtures/some_config.yml +0 -13
- data/test/test_helper.rb +0 -7
data/CHANGELOG
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
== 0.2.0 (2010-03-06)
|
2
|
+
* Complete rewrite. Removed Rails-specific defaults and returning the Ambience config
|
3
|
+
as a Hashie::Mash (http://github.com/intridea/hashie). Take a look at the new Readme
|
4
|
+
and Specs for examples.
|
5
|
+
|
6
|
+
== 0.1.0 (2009-12-12)
|
7
|
+
* Initial release.
|
8
|
+
|
data/README.rdoc
CHANGED
@@ -1,78 +1,45 @@
|
|
1
1
|
= Ambience
|
2
2
|
|
3
|
-
|
3
|
+
App configuration feat. YAML and JVM properties. Lets you specify a default configuration in a YAML file and overwrite details via JVM properties for production.
|
4
4
|
|
5
|
-
|
6
|
-
with the available JVM properties when running the application on JRuby.
|
7
|
-
|
8
|
-
== Install
|
9
|
-
|
10
|
-
As a gem:
|
5
|
+
== Installation
|
11
6
|
|
12
7
|
$ gem install ambience
|
13
8
|
|
14
|
-
|
15
|
-
|
16
|
-
$ script/plugin install git://github.com/rubiii/ambience.git
|
17
|
-
|
18
|
-
== Default configuration
|
19
|
-
|
20
|
-
Default configuration at config/ambience.yml
|
21
|
-
|
22
|
-
defaults: &defaults
|
23
|
-
auth:
|
24
|
-
user: "client"
|
25
|
-
password: "secret"
|
26
|
-
service: "http://test.example.com"
|
27
|
-
|
28
|
-
development:
|
29
|
-
<<: *defaults
|
9
|
+
== How it works
|
30
10
|
|
31
|
-
|
32
|
-
<<: *defaults
|
11
|
+
Given you created a YAML config like this one:
|
33
12
|
|
34
|
-
|
35
|
-
|
13
|
+
auth:
|
14
|
+
address: http://example.com
|
15
|
+
username: ferris
|
16
|
+
password: test
|
36
17
|
|
37
|
-
|
18
|
+
You create an Ambience config by passing in the path to your config file:
|
38
19
|
|
39
|
-
|
20
|
+
AppConfig = Ambience.new File.join(Rails.root, "config", "ambience.yml")
|
40
21
|
|
41
|
-
|
22
|
+
Ambience will load and convert your config into a Hash:
|
42
23
|
|
43
|
-
|
24
|
+
{ "auth" => { "address" => "http://example.com", "username" => "ferris", "password" => "test" } }
|
44
25
|
|
45
|
-
|
26
|
+
Then it looks for any JVM properties (if your running JRuby)
|
46
27
|
|
47
|
-
|
48
|
-
|
49
|
-
"password => "secret",
|
50
|
-
"service" => "http://test.example.com"
|
51
|
-
}
|
28
|
+
auth.address = "http://live.example.com"
|
29
|
+
auth.password = "topsecret"
|
52
30
|
|
53
|
-
|
31
|
+
and deep merge them with your Hash:
|
54
32
|
|
55
|
-
|
33
|
+
{ "auth" => { "address" => "http://live.example.com", "username" => "ferris", "password" => "topsecret" } }
|
56
34
|
|
57
|
-
|
58
|
-
java.runtime.name = "Java(TM) SE Runtime Environment"
|
59
|
-
java.runtime.version = "1.6.0_14-b08"
|
35
|
+
Finally, it returns the Hash as a {Hashie::Mash}[http://github.com/intridea/hashie] so you can access values by specifying keys as Symbols or Strings or using method-like accessors:
|
60
36
|
|
61
|
-
|
37
|
+
AppConfig[:auth][:address]
|
38
|
+
# => "http://live.example.com"
|
62
39
|
|
63
|
-
auth
|
40
|
+
AppConfig["auth"]["username"]
|
41
|
+
# => "http://live.example.com"
|
64
42
|
|
65
|
-
|
43
|
+
AppConfig.auth.password
|
44
|
+
# => "topsecret"
|
66
45
|
|
67
|
-
"auth" => {
|
68
|
-
"user" => "client",
|
69
|
-
"password => "secret",
|
70
|
-
"service" => "http://live.example.com"
|
71
|
-
},
|
72
|
-
"java" => {
|
73
|
-
"runtime" => {
|
74
|
-
"name" => "Java(TM) SE Runtime Environment",
|
75
|
-
"version" => "1.6.0_14-b08"
|
76
|
-
}
|
77
|
-
},
|
78
|
-
"jruby" => { "home" => "/usr/local/lib/jruby" }
|
data/Rakefile
CHANGED
@@ -1,42 +1,31 @@
|
|
1
|
-
require "rubygems"
|
2
1
|
require "rake"
|
3
|
-
require "rake/
|
4
|
-
require "rake/
|
2
|
+
require "spec/rake/spectask"
|
3
|
+
require "spec/rake/verify_rcov"
|
5
4
|
|
6
|
-
task :default => :
|
5
|
+
task :default => :spec
|
7
6
|
|
8
|
-
Rake::
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
Spec::Rake::SpecTask.new do |spec|
|
8
|
+
spec.spec_files = FileList["spec/**/*_spec.rb"]
|
9
|
+
spec.spec_opts << "--color"
|
10
|
+
spec.libs += ["lib", "spec"]
|
11
|
+
spec.rcov = true
|
13
12
|
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
rdoc.rdoc_files.include("lib/**/*.rb")
|
19
|
-
rdoc.options = ["--line-numbers", "--inline-source"]
|
14
|
+
RCov::VerifyTask.new(:spec_verify => :spec) do |verify|
|
15
|
+
verify.threshold = 100.0
|
16
|
+
verify.index_html = "rcov/index.html"
|
20
17
|
end
|
21
18
|
|
22
19
|
begin
|
23
|
-
require "
|
24
|
-
Jeweler::Tasks.new do |spec|
|
25
|
-
spec.name = "ambience"
|
26
|
-
spec.author = "Daniel Harrington"
|
27
|
-
spec.email = "me@rubiii.com"
|
28
|
-
spec.homepage = "http://github.com/rubiii/ambience"
|
29
|
-
spec.summary = "JVM-Parameters for your JRuby app"
|
30
|
-
spec.description = spec.summary
|
20
|
+
require "hanna/rdoctask"
|
31
21
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
]
|
22
|
+
Rake::RDocTask.new do |rdoc|
|
23
|
+
rdoc.title = "Ambience - App configuration feat. YAML and JVM properties"
|
24
|
+
rdoc.rdoc_dir = "doc"
|
25
|
+
rdoc.rdoc_files.include("**/*.rdoc").include("lib/**/*.rb")
|
26
|
+
rdoc.options << "--line-numbers"
|
27
|
+
rdoc.options << "--webcvs=http://github.com/rubiii/ambience/tree/master/"
|
39
28
|
end
|
40
29
|
rescue LoadError
|
41
|
-
puts "
|
42
|
-
end
|
30
|
+
puts "'gem install hanna' for documentation"
|
31
|
+
end
|
data/lib/ambience.rb
CHANGED
@@ -1,88 +1,7 @@
|
|
1
|
-
require "rubygems"
|
2
1
|
require "yaml" unless defined? YAML
|
3
2
|
require "erb" unless defined? ERB
|
4
3
|
|
5
|
-
|
6
|
-
class << self
|
4
|
+
require "hashie"
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
# the application is running on JRuby.
|
11
|
-
def new(environment = RAILS_ENV, config_file = nil)
|
12
|
-
hash = setup_config environment, load_config_file(config_file)
|
13
|
-
hash = setup_jvm hash
|
14
|
-
end
|
15
|
-
|
16
|
-
# Returns if the application's running on JRuby.
|
17
|
-
def jruby?
|
18
|
-
RUBY_PLATFORM =~ /java/
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
# Loads the given +config_file+. Tries to load "ambience.yml" from the
|
24
|
-
# application's config folder in case no +config_file+ was given. Returns
|
25
|
-
# the content from the config file or nil in case no config file was found.
|
26
|
-
def load_config_file(config_file)
|
27
|
-
config_file ||= File.join(RAILS_ROOT, "config", "ambience.yml")
|
28
|
-
config = File.expand_path(config_file)
|
29
|
-
file = File.read(config) if File.exist? config
|
30
|
-
file ||= nil
|
31
|
-
end
|
32
|
-
|
33
|
-
# Returns the ERB-interpreted content at the given +env+ from a given Yaml
|
34
|
-
# +config+ String and returns a Hash containing the evaluated content.
|
35
|
-
# Defaults to returning an empty Hash in case +config+ is nil.
|
36
|
-
def setup_config(env, config)
|
37
|
-
hash = YAML.load(ERB.new(config).result)[env] unless config.nil?
|
38
|
-
hash ||= {}
|
39
|
-
end
|
40
|
-
|
41
|
-
# Expects the current config +hash+, iterates through the JVM properties,
|
42
|
-
# adds them to the given +hash+ and returns the merged result.
|
43
|
-
def setup_jvm(hash)
|
44
|
-
if jruby?
|
45
|
-
jvm_properties.each do |key, value|
|
46
|
-
param = hash_from_property key, value
|
47
|
-
hash = deep_merge(hash, param) unless hash.nil?
|
48
|
-
end
|
49
|
-
end
|
50
|
-
hash
|
51
|
-
end
|
52
|
-
|
53
|
-
# Merges a given +hash+ with a +target+ Hash and returns the merged result.
|
54
|
-
def deep_merge(hash, target)
|
55
|
-
target.keys.each do |key|
|
56
|
-
if target[key].is_a? Hash and hash[key].is_a? Hash
|
57
|
-
hash[key] = deep_merge(hash[key], target[key])
|
58
|
-
next
|
59
|
-
end
|
60
|
-
hash[key] = target[key]
|
61
|
-
end
|
62
|
-
hash
|
63
|
-
end
|
64
|
-
|
65
|
-
# Expects +key+ and +value+ from a JVM property and returns a Hash that
|
66
|
-
# complies to the YAML format.
|
67
|
-
def hash_from_property(key, value)
|
68
|
-
hash, split = {}, key.split(".")
|
69
|
-
(split.size-1).downto(0) do |i|
|
70
|
-
v = i == (split.size-1) ? value : hash
|
71
|
-
hash = { split[i] => v }
|
72
|
-
end
|
73
|
-
hash
|
74
|
-
end
|
75
|
-
|
76
|
-
# Returns the JVM properties.
|
77
|
-
def jvm_properties
|
78
|
-
JavaLang::System.get_properties
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
if Ambience.jruby?
|
85
|
-
module JavaLang
|
86
|
-
include_package "java.lang"
|
87
|
-
end
|
88
|
-
end
|
6
|
+
require "ambience/core_ext"
|
7
|
+
require "ambience/ambience"
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# = Ambience
|
2
|
+
#
|
3
|
+
# App configuration feat. YAML and JVM properties. Lets you specify a default configuration
|
4
|
+
# in a YAML file and overwrite details via JVM properties for production.
|
5
|
+
#
|
6
|
+
# == How it works
|
7
|
+
#
|
8
|
+
# Given you created a YAML config like this one:
|
9
|
+
#
|
10
|
+
# auth:
|
11
|
+
# address: http://example.com
|
12
|
+
# username: ferris
|
13
|
+
# password: test
|
14
|
+
#
|
15
|
+
# You create an Ambience config by passing in the path to your config file:
|
16
|
+
#
|
17
|
+
# AppConfig = Ambience.new File.join(Rails.root, "config", "ambience.yml")
|
18
|
+
#
|
19
|
+
# Ambience will load and convert your config into a Hash:
|
20
|
+
#
|
21
|
+
# { "auth" => { "address" => "http://example.com", "username" => "ferris", "password" => "test" } }
|
22
|
+
#
|
23
|
+
# Then it looks for any JVM properties (if your running JRuby)
|
24
|
+
#
|
25
|
+
# auth.address = "http://live.example.com"
|
26
|
+
# auth.password = "topsecret"
|
27
|
+
#
|
28
|
+
# and deep merge them with your Hash:
|
29
|
+
#
|
30
|
+
# { "auth" => { "address" => "http://live.example.com", "username" => "ferris", "password" => "topsecret" } }
|
31
|
+
#
|
32
|
+
# Finally, it returns the Hash as a {Hashie::Mash}[http://github.com/intridea/hashie] so you can
|
33
|
+
# access values by specifying keys as Symbols or Strings or using method-like accessors:
|
34
|
+
#
|
35
|
+
# AppConfig[:auth][:address]
|
36
|
+
# # => "http://live.example.com"
|
37
|
+
#
|
38
|
+
# AppConfig["auth"]["username"]
|
39
|
+
# # => "http://live.example.com"
|
40
|
+
#
|
41
|
+
# AppConfig.auth.password
|
42
|
+
# # => "topsecret"
|
43
|
+
class Ambience
|
44
|
+
class << self
|
45
|
+
|
46
|
+
# Returns a new Ambience config from a given YAML +config_file+ for an optional +env+.
|
47
|
+
# Overwrites properties with any JVM properties (in case the application is running on JRuby).
|
48
|
+
def new(config_file, env = nil)
|
49
|
+
config_hash = parse_config load_config(config_file)
|
50
|
+
config_hash = config_hash[env.to_s] || config_hash[env.to_sym] if env
|
51
|
+
config_hash.deep_merge! jvm_property_hash
|
52
|
+
Hashie::Mash.new config_hash
|
53
|
+
end
|
54
|
+
|
55
|
+
# Returns whether the current Ruby platfrom is JRuby.
|
56
|
+
def jruby?
|
57
|
+
RUBY_PLATFORM =~ /java/
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
# Loads a given +config_file+. Raises an ArgumentError in case the config could not be found.
|
63
|
+
def load_config(config_file)
|
64
|
+
raise ArgumentError, "Missing config: #{config_file}" unless File.exist? config_file
|
65
|
+
File.read config_file
|
66
|
+
end
|
67
|
+
|
68
|
+
# Returns the ERB-interpreted content from a given YAML +config+ String and returns a Hash
|
69
|
+
# containing the evaluated content. Defaults to returning an empty Hash.
|
70
|
+
def parse_config(config)
|
71
|
+
YAML.load ERB.new(config).result || {}
|
72
|
+
end
|
73
|
+
|
74
|
+
# Returns a Hash containing any JVM properties.
|
75
|
+
def jvm_property_hash
|
76
|
+
jvm_properties.inject({}) do |hash, (key, value)|
|
77
|
+
hash.deep_merge hash_from_property(key, value)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# Returns a Hash generated from a JVM +property+ and its +value+.
|
82
|
+
#
|
83
|
+
# ==== Example:
|
84
|
+
#
|
85
|
+
# hash_from_property "webservice.auth.address", "http://auth.example.com"
|
86
|
+
# # => { "webservice" => { "auth" => { "address" => "http://auth.example.com" } } }
|
87
|
+
def hash_from_property(property, value)
|
88
|
+
property.split(".").reverse.inject(value) { |value, item| { item => value } }
|
89
|
+
end
|
90
|
+
|
91
|
+
# Returns the JVM properties.
|
92
|
+
def jvm_properties
|
93
|
+
jruby? ? JavaLang::System.get_properties : {}
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
if jruby?
|
99
|
+
module JavaLang
|
100
|
+
include_package "java.lang"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Hash
|
2
|
+
|
3
|
+
# Returns a new Hash with self and +other_hash+ merged recursively.
|
4
|
+
# Implementation from ActiveSupport::CoreExtensions::Hash::DeepMerge.
|
5
|
+
def deep_merge(other_hash)
|
6
|
+
merge(other_hash) do |key, oldval, newval|
|
7
|
+
oldval = oldval.to_hash if oldval.respond_to? :to_hash
|
8
|
+
newval = newval.to_hash if newval.respond_to? :to_hash
|
9
|
+
oldval.class.to_s == "Hash" && newval.class.to_s == "Hash" ? oldval.deep_merge(newval) : newval
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Returns a new Hash with self and +other_hash+ merged recursively. Modifies the receiver in place.
|
14
|
+
# Implementation from ActiveSupport::CoreExtensions::Hash::DeepMerge.
|
15
|
+
def deep_merge!(other_hash)
|
16
|
+
replace deep_merge(other_hash)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Ambience do
|
4
|
+
include SpecHelper
|
5
|
+
|
6
|
+
it "should return the content of a given config file as a Hashie::Mash" do
|
7
|
+
config = Ambience.new config_file(:basic)
|
8
|
+
|
9
|
+
config.should be_a(Hashie::Mash)
|
10
|
+
config.auth.username.should == "ferris"
|
11
|
+
config[:auth][:address].should == "http://example.com"
|
12
|
+
config["auth"]["password"].should == "test"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return the config for an optional environment as a Hashie::Mash" do
|
16
|
+
config = Ambience.new config_file(:environments), :production
|
17
|
+
|
18
|
+
config.should be_a(Hashie::Mash)
|
19
|
+
config.auth.username.should == "ferris"
|
20
|
+
config[:auth]["password"].should == "topsecret"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return the config specified as Symbols as a Hashie::Mash" do
|
24
|
+
config = Ambience.new config_file(:symbols), "production"
|
25
|
+
|
26
|
+
config.should be_a(Hashie::Mash)
|
27
|
+
config.auth.username.should == "ferris"
|
28
|
+
config[:auth]["password"].should == "test"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should merge the config with any JVM properties when using JRuby" do
|
32
|
+
Ambience.stubs(:jruby?).returns(true)
|
33
|
+
Ambience.stubs(:jvm_properties).returns(
|
34
|
+
"auth.address" => "http://live.example.com",
|
35
|
+
"auth.password" => "topsecret"
|
36
|
+
)
|
37
|
+
config = Ambience.new config_file(:basic)
|
38
|
+
|
39
|
+
config.should be_a(Hashie::Mash)
|
40
|
+
config.auth.username.should == "ferris"
|
41
|
+
config[:auth][:address].should == "http://live.example.com"
|
42
|
+
config["auth"]["password"].should == "topsecret"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should raise an ArgumentError in case the given config file could not be found" do
|
46
|
+
lambda { Ambience.new "missing_config.yml" }.should raise_error(ArgumentError)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "spec"
|
2
|
+
require "mocha"
|
3
|
+
|
4
|
+
Spec::Runner.configure do |config|
|
5
|
+
config.mock_with :mocha
|
6
|
+
end
|
7
|
+
|
8
|
+
require "ambience"
|
9
|
+
|
10
|
+
module SpecHelper
|
11
|
+
|
12
|
+
def config_file(name)
|
13
|
+
File.join File.dirname(__FILE__), "fixtures", "#{name}.yml"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ambience
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
@@ -9,11 +9,40 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-03-06 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hashie
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.2.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.8
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: mocha
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.9.7
|
44
|
+
version:
|
45
|
+
description:
|
17
46
|
email: me@rubiii.com
|
18
47
|
executables: []
|
19
48
|
|
@@ -22,15 +51,17 @@ extensions: []
|
|
22
51
|
extra_rdoc_files:
|
23
52
|
- README.rdoc
|
24
53
|
files:
|
25
|
-
-
|
54
|
+
- CHANGELOG
|
26
55
|
- Rakefile
|
27
|
-
-
|
28
|
-
-
|
56
|
+
- README.rdoc
|
57
|
+
- lib/ambience/ambience.rb
|
58
|
+
- lib/ambience/core_ext.rb
|
29
59
|
- lib/ambience.rb
|
30
|
-
-
|
31
|
-
-
|
32
|
-
-
|
33
|
-
-
|
60
|
+
- spec/ambience/ambience_spec.rb
|
61
|
+
- spec/spec_helper.rb
|
62
|
+
- spec/fixtures/basic.yml
|
63
|
+
- spec/fixtures/environments.yml
|
64
|
+
- spec/fixtures/symbols.yml
|
34
65
|
has_rdoc: true
|
35
66
|
homepage: http://github.com/rubiii/ambience
|
36
67
|
licenses: []
|
@@ -38,10 +69,10 @@ licenses: []
|
|
38
69
|
post_install_message:
|
39
70
|
rdoc_options:
|
40
71
|
- --charset=UTF-8
|
41
|
-
- --title
|
42
|
-
- Ambience
|
43
72
|
- --line-numbers
|
44
73
|
- --inline-source
|
74
|
+
- --title
|
75
|
+
- Ambience - App configuration feat. YAML and JVM properties
|
45
76
|
require_paths:
|
46
77
|
- lib
|
47
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -62,8 +93,7 @@ rubyforge_project:
|
|
62
93
|
rubygems_version: 1.3.5
|
63
94
|
signing_key:
|
64
95
|
specification_version: 3
|
65
|
-
summary:
|
96
|
+
summary: App configuration feat. YAML and JVM properties
|
66
97
|
test_files:
|
67
|
-
-
|
68
|
-
-
|
69
|
-
- test/test_helper.rb
|
98
|
+
- spec/ambience/ambience_spec.rb
|
99
|
+
- spec/spec_helper.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.0
|
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "ambience"
|
data/test/ambience_test.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "test_helper")
|
2
|
-
|
3
|
-
class AmbienceTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
include Fixtures
|
6
|
-
|
7
|
-
context "Ambience using anything else than JRuby" do
|
8
|
-
setup do
|
9
|
-
Ambience.stubs(:jruby?).returns(false)
|
10
|
-
end
|
11
|
-
|
12
|
-
context "with config file set up" do
|
13
|
-
should "return a Hash containing the config file content" do
|
14
|
-
result = Ambience.new "test", some_config_file
|
15
|
-
assert_equal some_config_hash, result
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "with no config file available" do
|
20
|
-
should "return an empty Hash" do
|
21
|
-
result = Ambience.new "test", "nofile"
|
22
|
-
assert_equal Hash.new, result
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context "Ambience using JRuby" do
|
28
|
-
setup do
|
29
|
-
Ambience.stubs(:jruby?).returns(true)
|
30
|
-
Ambience.stubs(:jvm_properties).returns(some_jvm_properties)
|
31
|
-
end
|
32
|
-
|
33
|
-
context "with config file set up" do
|
34
|
-
should "return a Hash containing the config file and JVM properties" do
|
35
|
-
result = Ambience.new "test", some_config_file
|
36
|
-
assert_equal some_jvm_updated_config_hash, result
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
context "with no config file available" do
|
41
|
-
should "return a Hash containing the JVM properties" do
|
42
|
-
result = Ambience.new "test", "nofile"
|
43
|
-
assert_equal some_converted_jvm_properties, result
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
data/test/fixtures/fixtures.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Fixtures
|
2
|
-
|
3
|
-
def some_config_file
|
4
|
-
File.join(File.dirname(__FILE__), "some_config.yml")
|
5
|
-
end
|
6
|
-
|
7
|
-
def some_config_hash
|
8
|
-
{ "auth" => { "user" => "test", "password" => "test" } }
|
9
|
-
end
|
10
|
-
|
11
|
-
def some_jvm_properties
|
12
|
-
{ "auth.user" => "jvm" }
|
13
|
-
end
|
14
|
-
|
15
|
-
def some_converted_jvm_properties
|
16
|
-
{ "auth" => { "user" => "jvm" } }
|
17
|
-
end
|
18
|
-
|
19
|
-
def some_jvm_updated_config_hash
|
20
|
-
{ "auth" => { "user" => "jvm", "password" => "test" } }
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
data/test/test_helper.rb
DELETED