rc 0.1.1 → 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.
metadata CHANGED
@@ -1,101 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
+ - Rubyworks
8
9
  - Trans
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2012-04-09 00:00:00.000000000 Z
13
+ date: 2012-04-30 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- name: finder
16
- requirement: &8666580 !ruby/object:Gem::Requirement
16
+ name: courtier
17
+ requirement: &20862920 !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
- - - ! '>='
20
+ - - =
20
21
  - !ruby/object:Gem::Version
21
- version: '0'
22
+ version: 0.2.0
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *8666580
25
+ version_requirements: *20862920
25
26
  - !ruby/object:Gem::Dependency
26
- name: detroit
27
- requirement: &8663120 !ruby/object:Gem::Requirement
27
+ name: courtier
28
+ requirement: &20862420 !ruby/object:Gem::Requirement
28
29
  none: false
29
30
  requirements:
30
- - - ! '>='
31
+ - - =
31
32
  - !ruby/object:Gem::Version
32
- version: '0'
33
+ version: 0.2.0
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *8663120
36
- - !ruby/object:Gem::Dependency
37
- name: qed
38
- requirement: &6999260 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :development
45
- prerelease: false
46
- version_requirements: *6999260
47
- - !ruby/object:Gem::Dependency
48
- name: ae
49
- requirement: &6997500 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :development
56
- prerelease: false
57
- version_requirements: *6997500
58
- description: ! "RC is a multi-tenant configuration system for Ruby projects.\nIt is
59
- a spin-off of the original Confection project with\na simplifed overall design and
60
- the ability to work with \nalmost any Ruby-based command line tool."
36
+ version_requirements: *20862420
37
+ description: Courtier manages an application's configuration via a single multi-tenant
38
+ project file.
61
39
  email:
62
40
  - transfire@gmail.com
63
41
  executables: []
64
42
  extensions: []
65
- extra_rdoc_files:
66
- - LICENSE.txt
67
- - NOTES.md
68
- - HISTORY.md
69
- - README.md
70
- files:
71
- - .ruby
72
- - .yardopts
73
- - lib/c.rb
74
- - lib/rc/config.rb
75
- - lib/rc/configuration.rb
76
- - lib/rc/core_ext.rb
77
- - lib/rc/interface.rb
78
- - lib/rc/properties.rb
79
- - lib/rc/tool_configuration.rb
80
- - lib/rc/tweaks/rake.rb
81
- - lib/rc.rb
82
- - spec/00_concept.md
83
- - spec/01_config.md
84
- - spec/02_configuration.md
85
- - spec/03_import.md
86
- - spec/06_interface.md
87
- - spec/applique/ae.rb
88
- - spec/applique/file.rb
89
- - spec/applique/fixture/config.rb
90
- - spec/applique/fixture.rb
91
- - NOTES.md
92
- - LICENSE.txt
93
- - HISTORY.md
94
- - README.md
95
- - Config.rb
96
- homepage: http://rubyworks.github.com/rc
97
- licenses:
98
- - BSD-2-Clause
43
+ extra_rdoc_files: []
44
+ files: []
45
+ homepage: http://github.com/rubyworks/courtier
46
+ licenses: []
99
47
  post_install_message:
100
48
  rdoc_options: []
101
49
  require_paths:
@@ -113,9 +61,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
61
  - !ruby/object:Gem::Version
114
62
  version: '0'
115
63
  requirements: []
116
- rubyforge_project:
64
+ rubyforge_project: courtier
117
65
  rubygems_version: 1.8.11
118
66
  signing_key:
119
67
  specification_version: 3
120
- summary: Multi-tenant configuration for Ruby.
68
+ summary: The best way to manage your application's configuration.
121
69
  test_files: []
70
+ has_rdoc:
data/.ruby DELETED
@@ -1,51 +0,0 @@
1
- ---
2
- source:
3
- - var
4
- authors:
5
- - name: Trans
6
- email: transfire@gmail.com
7
- copyrights:
8
- - holder: Rubyworks
9
- year: '2011'
10
- license: BSD-2-Clause
11
- requirements:
12
- - name: finder
13
- - name: detroit
14
- groups:
15
- - build
16
- development: true
17
- - name: qed
18
- groups:
19
- - test
20
- development: true
21
- - name: ae
22
- groups:
23
- - test
24
- development: true
25
- dependencies: []
26
- alternatives: []
27
- conflicts: []
28
- repositories:
29
- - uri: git://github.com/rubyworks/rc.git
30
- scm: git
31
- name: upstream
32
- resources:
33
- home: http://rubyworks.github.com/rc
34
- docs: http://rubydoc.info/gems/rc/frames
35
- code: http://github.com/rubyworks/rc
36
- mail: http://groups.google.com/group/rubyworks-mailinglist
37
- chat: http://chat.us.freenode.net/rubyworks
38
- extra: {}
39
- load_path:
40
- - lib
41
- name: rc
42
- title: RC
43
- revision: 0
44
- created: '2011-11-06'
45
- summary: Multi-tenant configuration for Ruby.
46
- version: 0.1.1
47
- description: ! "RC is a multi-tenant configuration system for Ruby projects.\nIt is
48
- a spin-off of the original Confection project with\na simplifed overall design and
49
- the ability to work with \nalmost any Ruby-based command line tool."
50
- organization: Rubyworks
51
- date: '2012-04-09'
data/.yardopts DELETED
@@ -1,8 +0,0 @@
1
- --title "Runtime Configuration"
2
- --readme README.rdoc
3
- --protected
4
- --private
5
- lib/**/*.rb
6
- -
7
- [A-Z]*.*
8
-
data/Config.rb DELETED
@@ -1,68 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # Detroit assembly.
5
- #
6
- config :detroit do
7
- service :email do |s|
8
- s.mailto = ['ruby-talk@ruby-lang.org',
9
- 'rubyworks-mailinglist@googlegroups.com']
10
- end
11
-
12
- service :gem do |s|
13
- s.gemspec = 'pkg/rc.gemspec'
14
- end
15
-
16
- service :github do |s|
17
- s.folder = 'web'
18
- end
19
-
20
- service :dnote do |s|
21
- s.title = 'Source Notes'
22
- s.output = 'log/notes.html'
23
- end
24
-
25
- service :locat do |s|
26
- s.output = 'log/locat.html'
27
- end
28
-
29
- service :vclog do |s|
30
- s.output = ['log/history.html',
31
- 'log/changes.html']
32
- end
33
- end
34
-
35
- #
36
- # QED test coverage report using SimpleCov.
37
- #
38
- # Use `$properties.coverage_folder` to set directory in which to store
39
- # coverage report this defaults to `log/coverage`.
40
- #
41
- config :qed, :cov do
42
- require 'simplecov'
43
-
44
- dir = $properties.coverage_folder
45
-
46
- SimpleCov.start do
47
- coverage_dir(dir || 'log/coverage')
48
- #add_group "Label", "lib/qed/directory"
49
- end
50
- end
51
-
52
- #
53
- # Rake tasks
54
- #
55
- config :rake do
56
- desc 'run unit tests'
57
- task :test do
58
- puts "boo"
59
- end
60
- end
61
-
62
- #
63
- # Example configuration.
64
- #
65
- config :example do
66
- puts "Configuration Example!"
67
- end
68
-
data/HISTORY.md DELETED
@@ -1,10 +0,0 @@
1
- # RELEASE HISTORY
2
-
3
- ## 0.1.1 | 2012-04-09
4
-
5
- Initial release of RC.
6
-
7
- Changes:
8
-
9
- * Happy first release.
10
-
@@ -1,27 +0,0 @@
1
- Confection (http://rubyworks.github.com/confection)
2
-
3
- Copyright (c) 2011 Rubyworks. All rights reserved.
4
-
5
- License (spdx) BSD-2-Clause
6
-
7
- Redistribution and use in source and binary forms, with or without
8
- modification, are permitted provided that the following conditions are met:
9
-
10
- 1. Redistributions of source code must retain the above copyright notice,
11
- this list of conditions and the following disclaimer.
12
-
13
- 2. Redistributions in binary form must reproduce the above copyright
14
- notice, this list of conditions and the following disclaimer in the
15
- documentation and/or other materials provided with the distribution.
16
-
17
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20
- COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24
- OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
-
data/NOTES.md DELETED
@@ -1,38 +0,0 @@
1
- # Developer Notes
2
-
3
-
4
- ## 2012-04-07 | Toplevel DSLs
5
-
6
- If it were not for Ruby's mixing toplevel definitions into all
7
- objects, I likely would have used the simpler design of
8
- just loading the config files directly (via `#load`).
9
-
10
- It's dissapointing that Ruby continues to insist on mixing toplevel
11
- methods into all objects. It would be much easier to write script
12
- DSLs if it did not, saving a good bit of code. In this case, for
13
- instance, I probably could have shaved off 20% to 40% of the
14
- current code --neither the Config or the Configuration class
15
- would be needed, and the parser could be stripped down to just
16
- enough code to collect a list of profiles since that is all it
17
- would really be useful for then.
18
-
19
-
20
- ## 2012-04-05 | Multiple Configurations
21
-
22
- Should multiple definitions for the same tool and profile be
23
- allowed?
24
-
25
- config :qed, :cov do
26
- ...
27
- end
28
-
29
- config :qed, :cov do
30
- ...
31
- end
32
-
33
- configuration.invoke(:qed, :cov)
34
-
35
- Should both definitions be called, or just the later? I have decide
36
- that both will be called. If this becomes a concern, I may add a `#reconfig`
37
- method which would first clear the list of matching configurations.
38
-
data/README.md DELETED
@@ -1,182 +0,0 @@
1
- # RC - Runtime Configuration
2
-
3
- [Homepage](http://rubyworks.github.com/rc) /
4
- [Source Code](http://github.com/rubyworks/rc) /
5
- [Report Issue](http://github.com/rubyworks/rc/issues) /
6
- [Mailing List](http://googlegroups.com/group/rubyworks-mailinglist) /
7
- [IRC Channel](http://chat.us.freenode.net/rubyworks)
8
-
9
- [![Build Status](https://secure.travis-ci.org/rubyworks/rc.png)](http://travis-ci.org/rubyworks/rc)
10
-
11
-
12
- ## Description
13
-
14
- RC, short for *Runtime Configuration*, is multi-tenant configuration system
15
- for Ruby tools. If was designed to facilitate Ruby-based configuration for
16
- multiple tools in a single file. It is extremely simple, and univerally applicable
17
- which makes it easy to understand and flexible in use.
18
-
19
-
20
- ## Installation
21
-
22
- To use RC via tools that support RC directly, there is nothing you need to
23
- install. Installing the said tool should install `rc` via a dependency and
24
- load `rc` when the tool is used.
25
-
26
- To use RC with tools that don't provide direct support, first install RC
27
- in the usual manner via RubyGems.
28
-
29
- $ gem install rc
30
-
31
- Then add `-rc` to your system's `RUBYOPT` environment variable.
32
-
33
- $ export RUBYOPT='-rc'
34
-
35
- You will want to add that to your `.bashrc`, `.profile` or equivalent configuration
36
- script.
37
-
38
-
39
- ## Instruction
40
-
41
- To use RC in a project create a master configuration file for the project called
42
- `Config.rb`. The file can have any name that matches `.config.rb`, `Config.rb`
43
- or `config.rb`, in that order of precedence. In this file add configuration
44
- blocks by name of the commandline tool. For example, let's demonstrate how we could
45
- use this to configure Rake tasks.
46
-
47
- $ cat Config.rb
48
- config :rake do
49
- desc 'generate yard docs'
50
- task :yard do
51
- sh 'yard'
52
- end
53
- end
54
-
55
- Now when `rake` is run the tasks defined in this configuration will be available.
56
-
57
- You might wonder why anyone would do this. That's where the *multi-tenancy*
58
- comes into play. Let's add another configuration.
59
-
60
- $ cat Config.rb
61
- title = "MyApp"
62
-
63
- config :rake do
64
- desc 'generate yard docs'
65
- task :yard do
66
- sh "yard doc --title #{title}"
67
- end
68
- end
69
-
70
- config :qedoc do |doc|
71
- doc.title = "#{title} Demos"
72
- end
73
-
74
- Now we have configuration for both the rake tool and the qedoc tool in
75
- a single file. Thus we gain the advantage of reducing the file count of our
76
- project while pulling our tool configurations together into one place.
77
- Moreover, these configurations can potentially share settings as demonstrated
78
- here via the `title` local variable.
79
-
80
- RC also supports profiles, either via a `profile` block:
81
-
82
- profile :cov
83
- config :qed do
84
- require 'simplecov'
85
- ...
86
- end
87
- end
88
-
89
- Or via a second config argument:
90
-
91
- config :qed, :cov do
92
- require 'simplecov'
93
- ...
94
- end
95
-
96
- When utilizing the tool, set the profile via an environment variable.
97
-
98
- $ profile='cov' qed
99
-
100
- Some tools that support RC out-of-the-box, may support a profile command
101
- line option for specifying the profile.
102
-
103
- $ qed -p cov
104
-
105
- Still other tools might utilize profiles to a more specific purpose of
106
- the tool at hand. Consult the tool's documentation for details.
107
-
108
-
109
- ## Qualifications
110
-
111
- RC can be used with any Ruby-based commandline tool that can be required by
112
- the same name as the tool, e.g. `rake` can be required via `require 'rake'`,
113
- and there exists some means of configuring the tool via a toplevel/global
114
- interface, or the tool has been customized to directly support RC.
115
-
116
-
117
- ## Customization
118
-
119
- A tool can provide dedicated support for RC by loading the `rc/interface` script
120
- and defining a `run` procedure. For example, the `detroit` project defines:
121
-
122
- require 'rc/interface'
123
-
124
- RC.run('detroit') do |configs|
125
- Detroit.rc_configs = configs
126
- end
127
-
128
- When `detroit` gets around to loading a project's build assemblies, it will
129
- check this setting and evaluate the configs via Detroit's confgiruation DSL.
130
-
131
- Some tools may also need to run preconfiguration code before allowing RC to
132
- process configuration. Probably the most common use for this is to parse
133
- commandline arguments for a profile setting as an alternative to normal
134
- environment variable.
135
-
136
- RC.run('qed') do
137
- if i = ARGV.index('--profile') || ARGV.index('-p')
138
- ENV['profile'] = ARGV[i+1]
139
- end
140
- end
141
-
142
- The `run` method forces the loading of `rc`, which triggers tool configuration,
143
- regardless of whether the end-user has set `RUBYOPT="-rc"`. If you wish for your
144
- tool to only work when `RUBYOPT` is set, then define `RC.processor` instead of
145
- `run`.
146
-
147
-
148
- ## Dependencies
149
-
150
- ### Libraries
151
-
152
- RC depends on the [Finder](http://rubyworks.github.com/finder) library
153
- to provide reliable load path and Gem searching. This is used when importing
154
- configurations from other projects.
155
-
156
- ### Core Extensions
157
-
158
- RC uses two core extensions, `#to_h`, which applies to a few different
159
- classes, and `String#tabto`. These are *copied* from
160
- [Ruby Facets](http://rubyworks.github.com/facets) to ensure a high
161
- standard of interoperability.
162
-
163
- Both of these methods have been suggested for inclusion in Ruby proper.
164
- Please head over to Ruby Issue Tracker and add your support.
165
-
166
- * http://bugs.ruby-lang.org/issues/749
167
- * http://bugs.ruby-lang.org/issues/6056
168
-
169
-
170
- ## Release Notes
171
-
172
- Please see HISTORY.rdoc file.
173
-
174
-
175
- ## Copyrights
176
-
177
- Copyright (c) 2011 Rubyworks
178
-
179
- Confection is distributable in accordance with the **BSD-2-Clause** license.
180
-
181
- See LICENSE.txt file for details.
182
-