mutaconf 0.0.4

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 48c32e67a2354968eb59c5e23d98eb148ee4cd40
4
+ data.tar.gz: fa3d2c5b847a084389bb79ad1d0eeb6532f92d3a
5
+ SHA512:
6
+ metadata.gz: 9015197b8f1ceaf5132f76a27f31780cff2ad956f985ba1164d8973bc3971fc7002bceab61cd7e1f9ad2589446d9ffcfd6c77d70a847eab1d3e3f079c071d5ae
7
+ data.tar.gz: 28008da318804191037ae4c122d75d0662f2f36fb4648182e55ab3b92f3b7a1805281e0c35d336260552dfea5a69ac6839214f14ea8535d54e91fdf9cbfe5b1c
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format doc
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ mutaconf
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0
data/.screenrc ADDED
@@ -0,0 +1,8 @@
1
+ source $HOME/.screenrc
2
+
3
+ screen -t vim 0
4
+ stuff "\${PROJECT_EDITOR-\$EDITOR}\012"
5
+ screen -t zsh 1
6
+ screen -t spec 2
7
+ stuff "rake"
8
+ select vim
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem 'bundler'
10
+ gem 'rake'
11
+ gem 'rspec'
12
+ gem 'jeweler'
13
+ gem 'gemcutter'
14
+ gem 'gem-release'
15
+ gem 'rake-version'
16
+ gem 'simplecov'
17
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,44 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.2.3)
5
+ gem-release (0.5.3)
6
+ gemcutter (0.7.1)
7
+ git (1.2.5)
8
+ jeweler (1.8.4)
9
+ bundler (~> 1.0)
10
+ git (>= 1.2.5)
11
+ rake
12
+ rdoc
13
+ json (1.7.7)
14
+ multi_json (1.7.2)
15
+ rake (10.0.4)
16
+ rake-version (0.3.1)
17
+ rake (~> 10)
18
+ rdoc (4.0.1)
19
+ json (~> 1.4)
20
+ rspec (2.13.0)
21
+ rspec-core (~> 2.13.0)
22
+ rspec-expectations (~> 2.13.0)
23
+ rspec-mocks (~> 2.13.0)
24
+ rspec-core (2.13.1)
25
+ rspec-expectations (2.13.0)
26
+ diff-lcs (>= 1.1.3, < 2.0)
27
+ rspec-mocks (2.13.1)
28
+ simplecov (0.7.1)
29
+ multi_json (~> 1.0)
30
+ simplecov-html (~> 0.7.1)
31
+ simplecov-html (0.7.1)
32
+
33
+ PLATFORMS
34
+ ruby
35
+
36
+ DEPENDENCIES
37
+ bundler
38
+ gem-release
39
+ gemcutter
40
+ jeweler
41
+ rake
42
+ rake-version
43
+ rspec
44
+ simplecov
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Alpha Hydrae
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,8 @@
1
+ # mutaconf
2
+
3
+ **Configuration utilities.**
4
+
5
+ ## Meta
6
+
7
+ * **Author:** Simon Oulevay (Alpha Hydrae)
8
+ * **License:** MIT (see [LICENSE.txt](https://raw.github.com/AlphaHydrae/mutaconf/master/LICENSE.txt))
data/Rakefile ADDED
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "mutaconf"
18
+ gem.homepage = "http://github.com/AlphaHydrae/mutaconf"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Configuration utilities.}
21
+ gem.description = %Q{Create simple DSLs and read configuration from hashes or objects.}
22
+ gem.email = "hydrae.alpha@gmail.com"
23
+ gem.authors = ["AlphaHydrae"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ Rake::TaskManager.class_eval do
29
+ def remove_task(task_name)
30
+ @tasks.delete(task_name.to_s)
31
+ end
32
+ end
33
+
34
+ [ 'version', 'version:bump:major', 'version:bump:minor', 'version:bump:patch', 'version:write' ].each do |task|
35
+ Rake.application.remove_task task
36
+ end
37
+
38
+ # version tasks
39
+ require 'rake-version'
40
+ RakeVersion::Tasks.new do |v|
41
+ v.copy 'lib/mutaconf.rb'
42
+ end
43
+
44
+ require 'rspec/core/rake_task'
45
+ desc "Run specs"
46
+ RSpec::Core::RakeTask.new do |t|
47
+ #t.pattern = "./spec/**/*_spec.rb" # don't need this, it's default.
48
+ # Put spec opts in a file named .rspec in root
49
+ end
50
+
51
+ task :default => :spec
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.4
@@ -0,0 +1,63 @@
1
+
2
+ module Mutaconf
3
+
4
+ class DSL
5
+ attr_accessor :keys, :target, :lenient
6
+
7
+ def initialize options = {}
8
+ @keys ||= options[:keys] || [] # TODO: spec pre-set keys in parent class
9
+ @target = Target.new options[:target]
10
+ @lenient = options[:lenient] if options.key?(:lenient)
11
+ end
12
+
13
+ def configure source = nil, options = {}, &block
14
+
15
+ if source.kind_of? Hash
16
+ configure_from_hash source, options
17
+ elsif source.kind_of? String
18
+ configure_from_file source, options
19
+ elsif source
20
+ configure_from_object source, options
21
+ end
22
+
23
+ instance_exec self, &block if block
24
+
25
+ @target.object
26
+ end
27
+
28
+ private
29
+
30
+ def configure_from_hash h, options = {}
31
+ h.each_pair do |k,v|
32
+ raise KeyError, k unless @keys.empty? or @keys.include?(k.to_sym) or @lenient
33
+ @target.set k, v if @keys.empty? or @keys.include?(k.to_sym)
34
+ end
35
+ end
36
+
37
+ def configure_from_file f, options = {}
38
+ args = [ File.open(f, 'r').read, f ]
39
+ args << options[:lineno] if options[:lineno]
40
+ instance_eval *args
41
+ end
42
+
43
+ def configure_from_object o, options = {}
44
+ @keys.each{ |key| @target.set key, o.send(key.to_sym) if o.respond_to? key.to_sym }
45
+ end
46
+
47
+ def method_missing name, *args, &block
48
+
49
+ m = name.to_s.match(/\A(\w+)\=?\Z/)
50
+
51
+ # TODO: fail if property is not in @keys
52
+ key = m[1]
53
+ if key
54
+ raise KeyError, key unless @target.has?(key) or @lenient
55
+ return @target.get key if args.empty?
56
+ raise KeyError, key unless @keys.empty? or @keys.include?(key.to_sym) or @lenient
57
+ @target.set key, args.first if @keys.empty? or @keys.include?(key.to_sym)
58
+ else
59
+ super
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module Mutaconf
3
+
4
+ class Error < StandardError; end
5
+
6
+ class KeyError < Error
7
+ attr_reader :key
8
+
9
+ def initialize key
10
+ super "No such property '#{key}'"
11
+ @key = key
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ require 'ostruct'
2
+
3
+ module Mutaconf
4
+
5
+ class Target
6
+ attr_reader :object
7
+
8
+ def initialize object
9
+ @object = object
10
+ end
11
+
12
+ def set key, value
13
+ if @object.kind_of? Hash
14
+ @object[key.to_sym] = value
15
+ else
16
+ @object.send "#{key}=", value
17
+ end
18
+ end
19
+
20
+ def get key
21
+ if @object.kind_of? Hash
22
+ @object[key.to_sym]
23
+ else
24
+ @object.send key.to_sym
25
+ end
26
+ end
27
+
28
+ def has? key
29
+ @object.kind_of?(Hash) or @object.kind_of?(OpenStruct) or @object.respond_to?("#{key}=")
30
+ end
31
+ end
32
+ end
data/lib/mutaconf.rb ADDED
@@ -0,0 +1,11 @@
1
+ # encoding: UTF-8
2
+
3
+ module Mutaconf
4
+ VERSION = '0.0.4'
5
+
6
+ def self.dsl *args
7
+ DSL.new *args
8
+ end
9
+ end
10
+
11
+ Dir[File.join File.dirname(__FILE__), File.basename(__FILE__, '.*'), '*.rb'].each{ |lib| require lib }
data/mutaconf.gemspec ADDED
@@ -0,0 +1,82 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "mutaconf"
8
+ s.version = "0.0.4"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["AlphaHydrae"]
12
+ s.date = "2013-04-14"
13
+ s.description = "Create simple DSLs and read configuration from hashes or objects."
14
+ s.email = "hydrae.alpha@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".rspec",
21
+ ".ruby-gemset",
22
+ ".ruby-version",
23
+ ".screenrc",
24
+ "Gemfile",
25
+ "Gemfile.lock",
26
+ "LICENSE.txt",
27
+ "README.md",
28
+ "Rakefile",
29
+ "VERSION",
30
+ "lib/mutaconf.rb",
31
+ "lib/mutaconf/dsl.rb",
32
+ "lib/mutaconf/errors.rb",
33
+ "lib/mutaconf/target.rb",
34
+ "mutaconf.gemspec",
35
+ "spec/block_spec.rb",
36
+ "spec/fixtures/eval.rb",
37
+ "spec/helper.rb",
38
+ "spec/source_spec.rb",
39
+ "spec/subclass_spec.rb",
40
+ "spec/target_spec.rb",
41
+ "spec/version_spec.rb"
42
+ ]
43
+ s.homepage = "http://github.com/AlphaHydrae/mutaconf"
44
+ s.licenses = ["MIT"]
45
+ s.require_paths = ["lib"]
46
+ s.rubygems_version = "2.0.3"
47
+ s.summary = "Configuration utilities."
48
+
49
+ if s.respond_to? :specification_version then
50
+ s.specification_version = 4
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_development_dependency(%q<bundler>, [">= 0"])
54
+ s.add_development_dependency(%q<rake>, [">= 0"])
55
+ s.add_development_dependency(%q<rspec>, [">= 0"])
56
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
57
+ s.add_development_dependency(%q<gemcutter>, [">= 0"])
58
+ s.add_development_dependency(%q<gem-release>, [">= 0"])
59
+ s.add_development_dependency(%q<rake-version>, [">= 0"])
60
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
61
+ else
62
+ s.add_dependency(%q<bundler>, [">= 0"])
63
+ s.add_dependency(%q<rake>, [">= 0"])
64
+ s.add_dependency(%q<rspec>, [">= 0"])
65
+ s.add_dependency(%q<jeweler>, [">= 0"])
66
+ s.add_dependency(%q<gemcutter>, [">= 0"])
67
+ s.add_dependency(%q<gem-release>, [">= 0"])
68
+ s.add_dependency(%q<rake-version>, [">= 0"])
69
+ s.add_dependency(%q<simplecov>, [">= 0"])
70
+ end
71
+ else
72
+ s.add_dependency(%q<bundler>, [">= 0"])
73
+ s.add_dependency(%q<rake>, [">= 0"])
74
+ s.add_dependency(%q<rspec>, [">= 0"])
75
+ s.add_dependency(%q<jeweler>, [">= 0"])
76
+ s.add_dependency(%q<gemcutter>, [">= 0"])
77
+ s.add_dependency(%q<gem-release>, [">= 0"])
78
+ s.add_dependency(%q<rake-version>, [">= 0"])
79
+ s.add_dependency(%q<simplecov>, [">= 0"])
80
+ end
81
+ end
82
+
@@ -0,0 +1,71 @@
1
+ require 'helper'
2
+
3
+ describe Mutaconf::DSL do
4
+
5
+ let(:target){ {} }
6
+ let(:dsl){ Mutaconf::DSL.new options }
7
+ let(:options){ { target: target } }
8
+
9
+ it "should configure properties with instance evaluation" do
10
+ result = dsl.configure do
11
+ a 'b'
12
+ c 'd'
13
+ end
14
+ expected = { a: 'b', c: 'd' }
15
+ result.should be(target)
16
+ target.should == expected
17
+ end
18
+
19
+ it "should configure properties with a configuration object" do
20
+ result = dsl.configure do |config|
21
+ config.e = 'f'
22
+ config.g = 'h'
23
+ config.i = 'j'
24
+ end
25
+ expected = { e: 'f', g: 'h', i: 'j' }
26
+ result.should be(target)
27
+ target.should == expected
28
+ end
29
+
30
+ context "with restricted keys" do
31
+
32
+ let(:options){ { target: target, keys: [ :a ] } }
33
+
34
+ it "should raise a key error for a unknown key with instance evaluation" do
35
+ lambda{ dsl.configure{ b 'c' } }.should raise_error(Mutaconf::KeyError, /'b'/)
36
+ end
37
+
38
+ it "should raise a key error for an unknown key with a configuration object" do
39
+ lambda{ dsl.configure{ |config| config.b = 'c' } }.should raise_error(Mutaconf::KeyError, /'b'/)
40
+ end
41
+ end
42
+
43
+ context "with restricted keys in lenient mode" do
44
+
45
+ let(:options){ { target: target, keys: [ :a, :e ], lenient: true } }
46
+
47
+ it "should configure restricted properties with instance evaluation" do
48
+ result = dsl.configure do
49
+ a 'b'
50
+ c 'd'
51
+ e 'f'
52
+ g 'h'
53
+ end
54
+ expected = { a: 'b', e: 'f' }
55
+ result.should be(target)
56
+ target.should == expected
57
+ end
58
+
59
+ it "should configure restricted properties with a configuration object" do
60
+ result = dsl.configure do |config|
61
+ config.a = 'b'
62
+ config.c = 'd'
63
+ config.e = 'f'
64
+ config.g = 'h'
65
+ end
66
+ expected = { a: 'b', e: 'f' }
67
+ result.should be(target)
68
+ target.should == expected
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,4 @@
1
+ a 'b'
2
+ c 'd'
3
+ e 'f'
4
+ g 'h'
data/spec/helper.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ Bundler.setup(:default, :development)
6
+ rescue Bundler::BundlerError => e
7
+ $stderr.puts e.message
8
+ $stderr.puts "Run `bundle install` to install missing gems"
9
+ exit e.status_code
10
+ end
11
+
12
+ require 'simplecov'
13
+ SimpleCov.start
14
+
15
+ require 'rspec'
16
+ require 'mutaconf'
@@ -0,0 +1,66 @@
1
+ require 'helper'
2
+ require 'ostruct'
3
+
4
+ describe Mutaconf::DSL do
5
+
6
+ let(:target){ {} }
7
+ let(:dsl){ Mutaconf::DSL.new options }
8
+ let(:options){ { target: target } }
9
+
10
+ it "should configure properties from a hash source" do
11
+ result = dsl.configure a: 'b', c: 'd'
12
+ expected = { a: 'b', c: 'd' }
13
+ result.should be(target)
14
+ target.should == expected
15
+ end
16
+
17
+ it "should configure properties from a file with instance evaluation" do
18
+ result = dsl.configure fixture(:eval)
19
+ expected = { a: 'b', c: 'd', e: 'f', g: 'h' }
20
+ result.should be(target)
21
+ target.should == expected
22
+ end
23
+
24
+ context "with restricted keys" do
25
+
26
+ let(:options){ { target: target, keys: [ :a ] } }
27
+
28
+ it "should raise a key error for an unknown key from a hash source" do
29
+ lambda{ dsl.configure b: 'c' }.should raise_error(Mutaconf::KeyError, /'b'/)
30
+ end
31
+
32
+ it "should raise a key error for an unknown key from a file with instance evaluation" do
33
+ lambda{ dsl.configure fixture(:eval) }.should raise_error(Mutaconf::KeyError, /'c'/)
34
+ end
35
+ end
36
+
37
+ context "with restricted keys in lenient mode" do
38
+
39
+ let(:options){ { target: target, keys: [ :a, :e ], lenient: true } }
40
+
41
+ it "should configure restricted properties from a hash source" do
42
+ result = dsl.configure a: 'b', c: 'd', e: 'f', g: 'h'
43
+ expected = { a: 'b', e: 'f' }
44
+ result.should be(target)
45
+ target.should == expected
46
+ end
47
+
48
+ it "should configure restricted properties from an object" do
49
+ result = dsl.configure OpenStruct.new(a: 'b', c: 'd', e: 'f', g: 'h')
50
+ expected = { a: 'b', e: 'f' }
51
+ result.should be(target)
52
+ target.should == expected
53
+ end
54
+
55
+ it "should configure restricted properties from a file with instance evaluation" do
56
+ result = dsl.configure fixture(:eval)
57
+ expected = { a: 'b', e: 'f' }
58
+ result.should be(target)
59
+ target.should == expected
60
+ end
61
+ end
62
+
63
+ def fixture name
64
+ File.join File.dirname(__FILE__), 'fixtures', "#{name}.rb"
65
+ end
66
+ end
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+ describe Mutaconf::DSL do
4
+
5
+ class CustomDSL < Mutaconf::DSL
6
+ attr_reader :value
7
+
8
+ def initialize options = {}
9
+ super options
10
+ @value = 0
11
+ end
12
+
13
+ def increase by
14
+ @value += by
15
+ end
16
+ end
17
+
18
+ let(:target){ {} }
19
+ let(:dsl){ CustomDSL.new target: target }
20
+
21
+ it "should work when subclassed" do
22
+ result = dsl.configure do
23
+ a 'b'
24
+ c 'd'
25
+ increase 5
26
+ end
27
+ expected = { a: 'b', c: 'd' }
28
+ result.should be(target)
29
+ target.should == expected
30
+ dsl.value.should == 5
31
+ end
32
+ end
@@ -0,0 +1,74 @@
1
+ require 'helper'
2
+
3
+ describe Mutaconf::Target do
4
+
5
+ subject{ Mutaconf::Target.new target }
6
+
7
+ context "with a hash" do
8
+
9
+ let(:target){ { a: 'z' } }
10
+
11
+ it "should set values" do
12
+ subject.set :a, 'b'
13
+ subject.set :c, 'd'
14
+ target.should == { a: 'b', c: 'd' }
15
+ end
16
+
17
+ it "should get values" do
18
+ subject.get(:a).should == 'z'
19
+ end
20
+
21
+ it "should have all values" do
22
+ ('a'..'z').each{ |key| subject.has?(key).should be_true }
23
+ end
24
+ end
25
+
26
+ context "with an open struct" do
27
+
28
+ let(:target){ OpenStruct.new a: 'z' }
29
+
30
+ it "should set values" do
31
+ subject.set :a, 'b'
32
+ subject.set :c, 'd'
33
+ target.a.should == 'b'
34
+ target.c.should == 'd'
35
+ end
36
+
37
+ it "should get values" do
38
+ subject.get(:a).should == 'z'
39
+ end
40
+
41
+ it "should have all values" do
42
+ ('a'..'z').each{ |key| subject.has?(key).should be_true }
43
+ end
44
+ end
45
+
46
+ context "with an object" do
47
+
48
+ let(:target) do
49
+ Class.new do
50
+ attr_accessor :a, :c
51
+
52
+ def initialize
53
+ @a = 'z'
54
+ end
55
+ end.new
56
+ end
57
+
58
+ it "should set values" do
59
+ subject.set :a, 'b'
60
+ subject.set :c, 'd'
61
+ end
62
+
63
+ it "should get values" do
64
+ subject.get(:a).should == 'z'
65
+ end
66
+
67
+ it "should have values corresponding to its setters" do
68
+ subject.has?(:a).should be_true
69
+ subject.has?(:b).should be_false
70
+ subject.has?(:c).should be_true
71
+ ('d'..'z').each{ |key| subject.has?(key).should be_false }
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,9 @@
1
+ require 'helper'
2
+
3
+ describe "Version" do
4
+
5
+ it "should be correct" do
6
+ version_file = File.join File.dirname(__FILE__), '..', 'VERSION'
7
+ Mutaconf::VERSION.should == File.open(version_file, 'r').read
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mutaconf
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: ruby
6
+ authors:
7
+ - AlphaHydrae
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
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: rake
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
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
+ - !ruby/object:Gem::Dependency
56
+ name: jeweler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: gemcutter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: gem-release
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake-version
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Create simple DSLs and read configuration from hashes or objects.
126
+ email: hydrae.alpha@gmail.com
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files:
130
+ - LICENSE.txt
131
+ - README.md
132
+ files:
133
+ - .rspec
134
+ - .ruby-gemset
135
+ - .ruby-version
136
+ - .screenrc
137
+ - Gemfile
138
+ - Gemfile.lock
139
+ - LICENSE.txt
140
+ - README.md
141
+ - Rakefile
142
+ - VERSION
143
+ - lib/mutaconf.rb
144
+ - lib/mutaconf/dsl.rb
145
+ - lib/mutaconf/errors.rb
146
+ - lib/mutaconf/target.rb
147
+ - mutaconf.gemspec
148
+ - spec/block_spec.rb
149
+ - spec/fixtures/eval.rb
150
+ - spec/helper.rb
151
+ - spec/source_spec.rb
152
+ - spec/subclass_spec.rb
153
+ - spec/target_spec.rb
154
+ - spec/version_spec.rb
155
+ homepage: http://github.com/AlphaHydrae/mutaconf
156
+ licenses:
157
+ - MIT
158
+ metadata: {}
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.0.3
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: Configuration utilities.
179
+ test_files: []