namespace_helper 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ # Project metadata
2
+ nbproject
3
+ .idea
4
+
5
+ doc
6
+ coverage
7
+ pkg
8
+ .yardoc
9
+ .rbx
10
+ *.rbc
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ rvm:
2
+ - 1.9.2
3
+ - 1.9.3
4
+ - rbx-19mode
5
+ - jruby-19mode
data/.yardopts ADDED
@@ -0,0 +1,5 @@
1
+ --protected
2
+ --no-private
3
+ -
4
+ HISTORY.md
5
+ LICENSE.md
data/Gemfile ADDED
@@ -0,0 +1,23 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ source 'http://rubygems.org'
21
+
22
+ # Specify your gem's dependencies in namespace_helper.gemspec
23
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,54 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ namespace_helper (1.0.0rc1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ coderay (1.0.5)
10
+ diff-lcs (1.1.3)
11
+ maruku (0.6.0)
12
+ syntax (>= 1.0.0)
13
+ method_source (0.7.0)
14
+ multi_json (1.0.4)
15
+ pry (0.9.8.2)
16
+ coderay (~> 1.0.5)
17
+ method_source (~> 0.7)
18
+ slop (>= 2.4.4, < 3)
19
+ pry (0.9.8.2-java)
20
+ coderay (~> 1.0.5)
21
+ method_source (~> 0.7)
22
+ slop (>= 2.4.4, < 3)
23
+ spoon (~> 0.0)
24
+ rake (0.9.2.2)
25
+ rspec (2.6.0)
26
+ rspec-core (~> 2.6.0)
27
+ rspec-expectations (~> 2.6.0)
28
+ rspec-mocks (~> 2.6.0)
29
+ rspec-core (2.6.4)
30
+ rspec-expectations (2.6.0)
31
+ diff-lcs (~> 1.1.2)
32
+ rspec-mocks (2.6.0)
33
+ simplecov (0.5.4)
34
+ multi_json (~> 1.0.3)
35
+ simplecov-html (~> 0.5.3)
36
+ simplecov-html (0.5.3)
37
+ slop (2.4.4)
38
+ spoon (0.0.1)
39
+ syntax (1.0.0)
40
+ yard (0.7.5)
41
+
42
+ PLATFORMS
43
+ java
44
+ ruby
45
+
46
+ DEPENDENCIES
47
+ bundler (~> 1.0.21)
48
+ maruku (~> 0.6.0)
49
+ namespace_helper!
50
+ pry (~> 0.9.8)
51
+ rake (~> 0.9.2)
52
+ rspec (~> 2.6.0)
53
+ simplecov (~> 0.5.4)
54
+ yard (~> 0.7.5)
data/HISTORY.md ADDED
@@ -0,0 +1,7 @@
1
+ 1.0.0 / 2012-02-24
2
+ ==================
3
+
4
+ * 1 major enhancement
5
+
6
+ * Birthday!
7
+
data/LICENSE.md ADDED
@@ -0,0 +1,15 @@
1
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
2
+
3
+ NamespaceHelper is licensed under the following ISC-style license:
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
11
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,192 @@
1
+ NamespaceHelper
2
+ ===============
3
+
4
+ [![Build Status](https://secure.travis-ci.org/aef/namespace_helper.png)](
5
+ https://secure.travis-ci.org/aef/namespace_helper)
6
+
7
+ * [Documentation][1]
8
+ * [Project][2]
9
+
10
+ [1]: http://rdoc.info/projects/aef/namespace_helper/
11
+ [2]: http://github.com/aef/namespace_helper/
12
+
13
+ Description
14
+ -----------
15
+
16
+ NamespaceHelper provides a module with methods to ease namespace handling.
17
+ For example getting the unprefixed name, the namespace parent or a list of
18
+ namespace components of a class or module.
19
+
20
+ Features / Problems
21
+ -------------------
22
+
23
+ This project tries to conform to:
24
+
25
+ * [Semantic Versioning (2.0.0-rc.1)][5]
26
+ * [Ruby Packaging Standard (0.5-draft)][6]
27
+ * [Ruby Style Guide][7]
28
+ * [Gem Packaging: Best Practices][8]
29
+
30
+ [5]: http://semver.org/
31
+ [6]: http://chneukirchen.github.com/rps/
32
+ [7]: https://github.com/bbatsov/ruby-style-guide
33
+ [8]: http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices
34
+
35
+ Additional facts:
36
+
37
+ * Written purely in Ruby.
38
+ * Intended to be used with Ruby 1.9.2 or compatible.
39
+ * Extends core classes. This can be disabled through bare mode.
40
+
41
+ Synopsis
42
+ --------
43
+
44
+ This documentation defines the public interface of the library. Don't rely
45
+ on elements marked as private. Those should be hidden in the documentation
46
+ by default.
47
+
48
+ ### Loading
49
+
50
+ In most cases you want to load the library by the following command:
51
+
52
+ ~~~~~ ruby
53
+ require 'namespace_helper'
54
+ ~~~~~
55
+
56
+ In a bundler Gemfile you should use the following:
57
+
58
+ ~~~~~ ruby
59
+ gem 'namespace_helper'
60
+ ~~~~~
61
+
62
+ By default, NamespaceHelper extends the Class and Module classes to allow make
63
+ all classes and modules support the namespace helper methods. Should you really don't want this, use the following:
64
+
65
+ ~~~~~ ruby
66
+ require 'namespace_helper/bare'
67
+ ~~~~~
68
+
69
+ Or for bundler Gemfiles:
70
+
71
+ ~~~~~ ruby
72
+ gem 'namespace_helper', require: 'namespace_helper/bare'
73
+ ~~~~~
74
+
75
+ ### Usage
76
+
77
+ In normal mode, you can now ask every class or module namespace related
78
+ stuff:
79
+
80
+ ~~~~~ ruby
81
+ Process::Status.namespace_components
82
+ # => [Process, Process::Status]
83
+
84
+ Process::Status.namespace_component_names
85
+ # => ["Process", "Process::Status"]
86
+
87
+ Process::Status.unprefixed_namespace_component_names
88
+ # => ["Process", "Status"]
89
+ ~~~~~
90
+
91
+ See {Aef::NamespaceHelper::ClassMethods} for a list of available methods.
92
+
93
+ If you're using the bare mode, you have to manually extend a class or module
94
+ for which you require namespace information:
95
+
96
+ ~~~~~ ruby
97
+ File::Constants.extend(Aef::NamespaceHelper::ClassMethods)
98
+
99
+ File::Constants.unprefixed_name
100
+ # => "Constants"
101
+
102
+ File::Constants.namespace_parent
103
+ # => File
104
+
105
+ File::Constants.namespace_parent_name
106
+ # => "File"
107
+ ~~~~~
108
+
109
+ Requirements
110
+ ------------
111
+
112
+ None
113
+
114
+ Installation
115
+ ------------
116
+
117
+ On *nix systems you may need to prefix the command with sudo to get root
118
+ privileges.
119
+
120
+ ### High security (recommended)
121
+
122
+ There is a high security installation option available through rubygems. It is
123
+ highly recommended over the normal installation, although it may be a bit less
124
+ comfortable. To use the installation method, you will need my public key, which
125
+ I use for cryptographic signatures on all my gems. You can find the public key
126
+ here: http://aef.name/crypto/aef-gem.pem
127
+
128
+ Add the key to your rubygems' trusted certificates by the following command:
129
+
130
+ gem cert --add aef-gem.pem
131
+
132
+ Now you can install the gem while automatically verifying it's signature by the
133
+ following command:
134
+
135
+ gem install namespace_helper -P HighSecurity
136
+
137
+ Please notice that you may need other keys for dependent libraries, so you may
138
+ have to install dependencies manually.
139
+
140
+ ### Normal
141
+
142
+ gem install namespace_helper
143
+
144
+ ### Automated testing
145
+
146
+ Go into the root directory of the installed gem and run the following command
147
+ to fetch all development dependencies:
148
+
149
+ bundle
150
+
151
+ Afterwards start the test runner:
152
+
153
+ rake spec
154
+
155
+ If something goes wrong you should be noticed through failing examples.
156
+
157
+ Development
158
+ -----------
159
+
160
+ This software is developed in the source code management system git hosted
161
+ at github.com. You can download the most recent sourcecode through the
162
+ following command:
163
+
164
+ git clone https://github.com/aef/namespace_helper.git
165
+
166
+ Help on making this software better is always very appreciated. If you want
167
+ your changes to be included in the official release, please clone my project
168
+ on github.com, create a named branch to commit and push your changes in and
169
+ send me a pull request afterwards.
170
+
171
+ Please make sure to write tests for your changes so that I won't break them
172
+ when changing other things on the library. Also notice that I can't promise
173
+ to include your changes before reviewing them.
174
+
175
+ License
176
+ -------
177
+
178
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
179
+
180
+ This file is part of NamespaceHelper.
181
+
182
+ Permission to use, copy, modify, and/or distribute this software for any
183
+ purpose with or without fee is hereby granted, provided that the above
184
+ copyright notice and this permission notice appear in all copies.
185
+
186
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
187
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
188
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
189
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
190
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
191
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
192
+ PERFORMANCE OF THIS SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,47 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ require 'rake'
21
+ require 'pathname'
22
+ require 'bundler/gem_tasks'
23
+ require 'yard'
24
+ require 'rspec/core/rake_task'
25
+
26
+ RSpec::Core::RakeTask.new
27
+
28
+ YARD::Rake::YardocTask.new('doc')
29
+
30
+ desc "Removes temporary project files"
31
+ task :clean do
32
+ %w{doc coverage pkg .yardoc .rbx}.map{|name| Pathname.new(name) }.each do |path|
33
+ path.rmtree if path.exist?
34
+ end
35
+
36
+ Pathname.glob('*.gem').each &:delete
37
+ Pathname.glob('**/*.rbc').each &:delete
38
+ end
39
+
40
+ desc "Opens an interactive console with the library loaded"
41
+ task :console do
42
+ require 'pry'
43
+ require 'namespace_helper'
44
+ Pry.start
45
+ end
46
+
47
+ task :default => :spec
@@ -0,0 +1,159 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ # Namespace for projects of Alexander E. Fischer <aef@raxys.net>.
21
+ #
22
+ # If you want to be able to simply type Example instead of Aef::Example to
23
+ # address classes in this namespace simply write the following before using the
24
+ # classes.
25
+ #
26
+ # @example Including the namespace
27
+ # include Aef
28
+ # @author Alexander E. Fischer
29
+ module Aef
30
+
31
+ # This module is intended to be included into the Class and/or Module class
32
+ # to make namespace helper methods available in all classes/modules.
33
+ #
34
+ # @see Aef::NamespaceHelper::ClassMethods
35
+ module NamespaceHelper
36
+
37
+ # The current library version
38
+ VERSION = '1.0.0'.freeze
39
+
40
+ protected
41
+
42
+ # This magic method is automatically called when NamespaceHelper is
43
+ # included into a class/module to extend Aef::NamespaceHelper::ClassMethods
44
+ # into the same class/module.
45
+ def self.included(klass)
46
+ klass.extend(ClassMethods)
47
+ end
48
+
49
+ # This mixin module is intended to extend a single class/module object to
50
+ # make the helper methods only available on that specific class/module.
51
+ #
52
+ # @example
53
+ # First::Second.extend(Aef::NamespaceHelper::ClassMethods)
54
+ # First::Second.respond_to?(:unprefixed_name) # => true
55
+ # @see Aef::NamespaceHelper
56
+ module ClassMethods
57
+
58
+ # The name of the class/module itself, without any namespacing.
59
+ #
60
+ # @return [String] The unprefixed name of the class/module itself
61
+ # @since 1.0.0
62
+ # @example
63
+ # First::Second::Third.unprefixed_name # => "Third"
64
+ def unprefixed_name
65
+ unprefixed_namespace_component_names.last
66
+ end
67
+
68
+ # Lists all namespace components' unprefixed names.
69
+ #
70
+ # @return [Array<String>] All namespace components' unprefixed names.
71
+ # Ordered, so the class/module itself will be the last element
72
+ # @since 1.0.0
73
+ # @note This will not reference the class/module objects and thus won't
74
+ # trigger autoloading
75
+ # @example
76
+ # First::Second::Third.unprefixed_namespace_component_names
77
+ # # => ["First", "Second", "Third"]
78
+ def unprefixed_namespace_component_names
79
+ if self.name.nil? || self.name == ''
80
+ []
81
+ else
82
+ self.name.split('::')
83
+ end
84
+ end
85
+
86
+ # Lists all namespace components' names.
87
+ #
88
+ # @return [Array<String>] All namespace components' names. Ordered, so
89
+ # the class/module itself will be the last element
90
+ # @since 1.0.0
91
+ # @note This will not reference the class/module objects and thus won't
92
+ # trigger autoloading
93
+ # @example
94
+ # First::Second::Third.namespace_component_names
95
+ # # => ["First", "First::Second", "First::Second::Third"]
96
+ def namespace_component_names
97
+ if self.name.nil? || self.name == ''
98
+ []
99
+ else
100
+ unprefixed_names = unprefixed_namespace_component_names
101
+
102
+ names = []
103
+
104
+ while current_name = unprefixed_names.pop
105
+ current_full_name = (unprefixed_names + [current_name]).join('::')
106
+ names.unshift(current_full_name)
107
+ end
108
+
109
+ names
110
+ end
111
+ end
112
+
113
+ # Lists all namespace components.
114
+ #
115
+ # @return [Array<Class, Module>] All namespace components. Ordered, so
116
+ # the class/module itself will be the last element.
117
+ # @since 1.0.0
118
+ # @example
119
+ # First::Second::Third.namespace_component_names
120
+ # # => [First, First::Second, First::Second::Third]
121
+ def namespace_components
122
+ components = []
123
+
124
+ unprefixed_names = unprefixed_namespace_component_names
125
+ current_component = Object
126
+
127
+ while current_name = unprefixed_names.shift
128
+ current_component = current_component.const_get(current_name)
129
+ components << current_component
130
+ end
131
+
132
+ components
133
+ end
134
+
135
+ # The name of component in the namespace which encapsulates this class/module.
136
+ #
137
+ # @return [String] The name of the parent namespace component
138
+ # @since 1.0.0
139
+ # @note This will not reference the class/module objects and thus won't trigger autoloading
140
+ # @example
141
+ # First::Second::Third.namespace_parent
142
+ # # => First::Second
143
+ def namespace_parent_name
144
+ namespace_component_names[-2]
145
+ end
146
+
147
+ # The component in the namespace which encapsulates this class/module.
148
+ #
149
+ # @return [Class, Module] The parent namespace component
150
+ # @since 1.0.0
151
+ # @example
152
+ # First::Second::Third.namespace_parent
153
+ # # => First::Second
154
+ def namespace_parent
155
+ namespace_components[-2]
156
+ end
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,20 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ require 'aef/namespace_helper'
@@ -0,0 +1,24 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ require 'aef/namespace_helper'
21
+
22
+ [Class, Module].each do |object|
23
+ object.method(:include).call(Aef::NamespaceHelper::ClassMethods)
24
+ end
@@ -0,0 +1,57 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ $LOAD_PATH << 'lib'
21
+
22
+ require 'namespace_helper/bare'
23
+
24
+ Gem::Specification.new do |s|
25
+ s.name = 'namespace_helper'
26
+ s.version = Aef::NamespaceHelper::VERSION.dup
27
+ s.authors = ['Alexander E. Fischer']
28
+ s.email = ['aef@raxys.net']
29
+ s.homepage = 'http://github.com/aef/namespace_helper'
30
+ s.license = 'ISC'
31
+ s.summary = 'Helper methods for class/module namespace handling'
32
+ s.description = <<-DESCRIPTION
33
+ NamespaceHelper provides a module with methods to ease namespace handling.
34
+ For example getting the unprefixed name, the namespace parent or a list of
35
+ namespace components of a class or module.
36
+ DESCRIPTION
37
+
38
+ s.rubyforge_project = nil
39
+ s.has_rdoc = 'yard'
40
+ s.extra_rdoc_files = ['HISTORY.md', 'LICENSE.md']
41
+
42
+ s.files = `git ls-files`.lines.map(&:chomp)
43
+ s.test_files = `git ls-files -- {test,spec,features}/*`.lines.map(&:chomp)
44
+ s.executables = `git ls-files -- bin/*`.lines.map{|f| File.basename(f.chomp) }
45
+ s.require_paths = ["lib"]
46
+
47
+ s.add_development_dependency('bundler', '~> 1.0.21')
48
+ s.add_development_dependency('rake', '~> 0.9.2')
49
+ s.add_development_dependency('rspec', '~> 2.6.0')
50
+ s.add_development_dependency('simplecov', '~> 0.5.4')
51
+ s.add_development_dependency('pry', '~> 0.9.8')
52
+ s.add_development_dependency('yard', '~> 0.7.5')
53
+ s.add_development_dependency('maruku', '~> 0.6.0')
54
+
55
+ s.cert_chain = "#{ENV['GEM_CERT_CHAIN']}".split(':')
56
+ s.signing_key = ENV['GEM_SIGNING_KEY']
57
+ end
@@ -0,0 +1,281 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ require 'spec_helper'
21
+ require 'namespace_helper/bare'
22
+
23
+ describe Aef::NamespaceHelper do
24
+ before(:all) do
25
+ samples = [
26
+ Class.new, Module.new,
27
+ Aef::NamespaceHelper::SomeClass = Class.new,
28
+ Aef::NamespaceHelper::SomeClass::SomeModule = Module.new,
29
+ Aef::NamespaceHelper::OtherModule = Module.new,
30
+ Aef::NamespaceHelper::OtherModule::OtherClass = Class.new,
31
+ AefNamespaceHelperParentlessClass = Class.new,
32
+ AefNamespaceHelperParentlessModule = Module.new
33
+ ]
34
+
35
+ samples.each do |sample|
36
+ sample.extend(Aef::NamespaceHelper::ClassMethods)
37
+ end
38
+
39
+ @anonymous_class = samples[0]
40
+ @anonymous_module = samples[1]
41
+ end
42
+
43
+ describe "unprefixed name" do
44
+ it "should be nil for an anonymous class" do
45
+ @anonymous_class.unprefixed_name.should be_nil
46
+ end
47
+
48
+ it "should be nil for an anonymous module" do
49
+ @anonymous_module.unprefixed_name.should be_nil
50
+ end
51
+
52
+ it "should be SomeClass for Aef::NamespaceHelper::SomeClass" do
53
+ Aef::NamespaceHelper::SomeClass.
54
+ unprefixed_name.should == 'SomeClass'
55
+ end
56
+
57
+ it "should be SomeModule for Aef::NamespaceHelper::SomeClass::SomeModule" do
58
+ Aef::NamespaceHelper::SomeClass::SomeModule.
59
+ unprefixed_name.should == 'SomeModule'
60
+ end
61
+
62
+ it "should be OtherModule for Aef::NamespaceHelper::OtherModule" do
63
+ Aef::NamespaceHelper::OtherModule.
64
+ unprefixed_name.should == 'OtherModule'
65
+ end
66
+
67
+ it "should be OtherClass for Aef::NamespaceHelper::OtherModule::OtherClass" do
68
+ Aef::NamespaceHelper::OtherModule::OtherClass.
69
+ unprefixed_name.should == 'OtherClass'
70
+ end
71
+ end
72
+
73
+ describe "unprefixed_namespace_component_names" do
74
+ it "should be an empty array for an anonymous class" do
75
+ @anonymous_class.unprefixed_namespace_component_names.should == []
76
+ end
77
+
78
+ it "should be an emtpy array for an anonymous module" do
79
+ @anonymous_module.unprefixed_namespace_component_names.should == []
80
+ end
81
+
82
+ it "should list all unprefixed namespace component names for Aef::NamespaceHelper::SomeClass" do
83
+ Aef::NamespaceHelper::SomeClass.unprefixed_namespace_component_names.should ==
84
+ ['Aef', 'NamespaceHelper', 'SomeClass']
85
+ end
86
+
87
+ it "should list all unprefixed namespace component names for Aef::NamespaceHelper::SomeClass::SomeModule" do
88
+ Aef::NamespaceHelper::SomeClass::SomeModule.unprefixed_namespace_component_names.should ==
89
+ ['Aef', 'NamespaceHelper', 'SomeClass', 'SomeModule']
90
+ end
91
+
92
+ it "should list all unprefixed namespace component names for Aef::NamespaceHelper::OtherModule" do
93
+ Aef::NamespaceHelper::OtherModule.unprefixed_namespace_component_names.should ==
94
+ ['Aef', 'NamespaceHelper', 'OtherModule']
95
+ end
96
+
97
+ it "should list all unprefixed namespace component names for Aef::NamespaceHelper::OtherModule::OtherClass" do
98
+ Aef::NamespaceHelper::OtherModule::OtherClass.unprefixed_namespace_component_names.should ==
99
+ ['Aef', 'NamespaceHelper', 'OtherModule', 'OtherClass']
100
+ end
101
+ end
102
+
103
+ describe "namespace_component_names" do
104
+ it "should be an empty array for an anonymous class" do
105
+ @anonymous_class.namespace_component_names.should == []
106
+ end
107
+
108
+ it "should be an emtpy array for an anonymous module" do
109
+ @anonymous_module.namespace_component_names.should == []
110
+ end
111
+
112
+ it "should list all namespace component names for Aef::NamespaceHelper::SomeClass" do
113
+ Aef::NamespaceHelper::SomeClass.namespace_component_names.should == [
114
+ 'Aef',
115
+ 'Aef::NamespaceHelper',
116
+ 'Aef::NamespaceHelper::SomeClass'
117
+ ]
118
+ end
119
+
120
+ it "should list all namespace component names for Aef::NamespaceHelper::SomeClass::SomeModule" do
121
+ Aef::NamespaceHelper::SomeClass::SomeModule.namespace_component_names.should == [
122
+ 'Aef',
123
+ 'Aef::NamespaceHelper',
124
+ 'Aef::NamespaceHelper::SomeClass',
125
+ 'Aef::NamespaceHelper::SomeClass::SomeModule'
126
+ ]
127
+ end
128
+
129
+ it "should list all namespace component names for Aef::NamespaceHelper::OtherModule" do
130
+ Aef::NamespaceHelper::OtherModule.namespace_component_names.should == [
131
+ 'Aef',
132
+ 'Aef::NamespaceHelper',
133
+ 'Aef::NamespaceHelper::OtherModule'
134
+ ]
135
+ end
136
+
137
+ it "should list all namespace component names for Aef::NamespaceHelper::OtherModule::OtherClass" do
138
+ Aef::NamespaceHelper::OtherModule::OtherClass.namespace_component_names.should == [
139
+ 'Aef',
140
+ 'Aef::NamespaceHelper',
141
+ 'Aef::NamespaceHelper::OtherModule',
142
+ 'Aef::NamespaceHelper::OtherModule::OtherClass',
143
+ ]
144
+ end
145
+ end
146
+
147
+ describe "namespace_components" do
148
+ it "should be an empty array for an anonymous class" do
149
+ @anonymous_class.namespace_components.should == []
150
+ end
151
+
152
+ it "should be an emtpy array for an anonymous module" do
153
+ @anonymous_module.namespace_components.should == []
154
+ end
155
+
156
+ it "should list all namespace component names for Aef::NamespaceHelper::SomeClass" do
157
+ Aef::NamespaceHelper::SomeClass.namespace_components.should == [
158
+ Aef,
159
+ Aef::NamespaceHelper,
160
+ Aef::NamespaceHelper::SomeClass
161
+ ]
162
+ end
163
+
164
+ it "should list all namespace component names for Aef::NamespaceHelper::SomeClass::SomeModule" do
165
+ Aef::NamespaceHelper::SomeClass::SomeModule.namespace_components.should == [
166
+ Aef,
167
+ Aef::NamespaceHelper,
168
+ Aef::NamespaceHelper::SomeClass,
169
+ Aef::NamespaceHelper::SomeClass::SomeModule
170
+ ]
171
+ end
172
+
173
+ it "should list all namespace component names for Aef::NamespaceHelper::OtherModule" do
174
+ Aef::NamespaceHelper::OtherModule.namespace_components.should == [
175
+ Aef,
176
+ Aef::NamespaceHelper,
177
+ Aef::NamespaceHelper::OtherModule
178
+ ]
179
+ end
180
+
181
+ it "should list all namespace component names for Aef::NamespaceHelper::OtherModule::OtherClass" do
182
+ Aef::NamespaceHelper::OtherModule::OtherClass.namespace_components.should == [
183
+ Aef,
184
+ Aef::NamespaceHelper,
185
+ Aef::NamespaceHelper::OtherModule,
186
+ Aef::NamespaceHelper::OtherModule::OtherClass
187
+ ]
188
+ end
189
+ end
190
+
191
+ describe "namespace_parent_name" do
192
+ it "should be nil for an anonymous class" do
193
+ @anonymous_class.namespace_parent_name.should == nil
194
+ end
195
+
196
+ it "should be nil for an anonymous module" do
197
+ @anonymous_module.namespace_parent_name.should == nil
198
+ end
199
+
200
+ it "should be nil if a class has no namespace parent" do
201
+ AefNamespaceHelperParentlessClass.namespace_parent.should == nil
202
+ end
203
+
204
+ it "should be nil if a module has no namespace parent" do
205
+ AefNamespaceHelperParentlessModule.namespace_parent.should == nil
206
+ end
207
+
208
+ it "should be Aef::NamespaceHelper for Aef::NamespaceHelper::SomeClass" do
209
+ Aef::NamespaceHelper::SomeClass.
210
+ namespace_parent_name.should == 'Aef::NamespaceHelper'
211
+ end
212
+
213
+ it "should be Aef::NamespaceHelper::SomeClass for Aef::NamespaceHelper::SomeClass::SomeModule" do
214
+ Aef::NamespaceHelper::SomeClass::SomeModule.
215
+ namespace_parent_name.should == 'Aef::NamespaceHelper::SomeClass'
216
+ end
217
+
218
+ it "should be Aef::NamespaceHelper for Aef::NamespaceHelper::OtherModule" do
219
+ Aef::NamespaceHelper::OtherModule.
220
+ namespace_parent_name.should == 'Aef::NamespaceHelper'
221
+ end
222
+
223
+ it "should be Aef::NamespaceHelper::OtherModule for Aef::NamespaceHelper::OtherModule::OtherClass" do
224
+ Aef::NamespaceHelper::OtherModule::OtherClass.
225
+ namespace_parent_name.should == 'Aef::NamespaceHelper::OtherModule'
226
+ end
227
+ end
228
+
229
+ describe "namespace_parent" do
230
+ it "should be nil for an anonymous class" do
231
+ @anonymous_class.namespace_parent.should == nil
232
+ end
233
+
234
+ it "should be nil for an anonymous module" do
235
+ @anonymous_module.namespace_parent.should == nil
236
+ end
237
+
238
+ it "should be nil if a class has no namespace parent" do
239
+ AefNamespaceHelperParentlessClass.namespace_parent.should == nil
240
+ end
241
+
242
+ it "should be nil if a module has no namespace parent" do
243
+ AefNamespaceHelperParentlessModule.namespace_parent.should == nil
244
+ end
245
+
246
+ it "should be Aef::NamespaceHelper for Aef::NamespaceHelper::SomeClass" do
247
+ Aef::NamespaceHelper::SomeClass.
248
+ namespace_parent.should == Aef::NamespaceHelper
249
+ end
250
+
251
+ it "should be Aef::NamespaceHelper::SomeClass for Aef::NamespaceHelper::SomeClass::SomeModule" do
252
+ Aef::NamespaceHelper::SomeClass::SomeModule.
253
+ namespace_parent.should == Aef::NamespaceHelper::SomeClass
254
+ end
255
+
256
+ it "should be Aef::NamespaceHelper for Aef::NamespaceHelper::OtherModule" do
257
+ Aef::NamespaceHelper::OtherModule.
258
+ namespace_parent.should == Aef::NamespaceHelper
259
+ end
260
+
261
+ it "should be Aef::NamespaceHelper::OtherModule for Aef::NamespaceHelper::OtherModule::OtherClass" do
262
+ Aef::NamespaceHelper::OtherModule::OtherClass.
263
+ namespace_parent.should == Aef::NamespaceHelper::OtherModule
264
+ end
265
+ end
266
+
267
+ describe "core extension" do
268
+ it "should add the helper methods to all classes and modules" do
269
+ lambda {
270
+ require 'namespace_helper'
271
+ }.should change{
272
+ [ Integer.respond_to?(:unprefixed_namespace_component_names),
273
+ Float.respond_to?(:unprefixed_name),
274
+ Object.respond_to?(:namespace_component_names),
275
+ Regexp.respond_to?(:namespace_components),
276
+ File.respond_to?(:namespace_parent_name),
277
+ String.respond_to?(:namespace_parent) ].all?
278
+ }.from(false).to(true)
279
+ end
280
+ end
281
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: UTF-8
2
+ =begin
3
+ Copyright Alexander E. Fischer <aef@raxys.net>, 2012
4
+
5
+ This file is part of NamespaceHelper.
6
+
7
+ Permission to use, copy, modify, and/or distribute this software for any
8
+ purpose with or without fee is hereby granted, provided that the above
9
+ copyright notice and this permission notice appear in all copies.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
+ PERFORMANCE OF THIS SOFTWARE.
18
+ =end
19
+
20
+ unless defined?(Rubinius)
21
+ require 'simplecov'
22
+ SimpleCov.start
23
+ end
24
+
25
+ require 'rspec'
26
+ require 'pry'
data.tar.gz.sig ADDED
@@ -0,0 +1,4 @@
1
+ X8��3����T�g�g��-���]�d ���‹+g�R{n�* `�7�&�����s�S׻�ה4ُ�~�GL�Yr��O܍� ��e��^`�p��@�U%� ��s�#|��$3G�,QN'���n6�kaMU@FKdj{1�2���0�qeJU�k��р-��� � �PR�W�fPq^n!VԳ�\�W���
2
+ ��B��k���{�ܞ��~S��M���Y����3���
3
+ Ȳ�Hm���. ζ
4
+ ���~_�~�ͺ
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: namespace_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alexander E. Fischer
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - ! '-----BEGIN CERTIFICATE-----
13
+
14
+ MIIDKDCCAhCgAwIBAgIBADANBgkqhkiG9w0BAQUFADA6MQwwCgYDVQQDDANhZWYx
15
+
16
+ FTATBgoJkiaJk/IsZAEZFgVyYXh5czETMBEGCgmSJomT8ixkARkWA25ldDAeFw0w
17
+
18
+ OTAyMjUyMDM5MDhaFw0xMDAyMjUyMDM5MDhaMDoxDDAKBgNVBAMMA2FlZjEVMBMG
19
+
20
+ CgmSJomT8ixkARkWBXJheHlzMRMwEQYKCZImiZPyLGQBGRYDbmV0MIIBIjANBgkq
21
+
22
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoYtj0qad5/MpbdttITzBH0h1SNe6eO7R
23
+
24
+ 7qVeqNYu6qDQAQ0rYc0JhubJCWYrZEJorHEBhUFU6cdQgQOs78wiJaDgkeU7YfXB
25
+
26
+ q2l125kJ8aHkA1ukrK2/DRzp2AHEmzxHIYpXV5/63h+NWjCP+uKvTELYsotS2MKt
27
+
28
+ 3d43E0QajsPZu2ZuNFwkroqeue872gMHUldGOVy5WtSd9ajw2xI/CociY6746dL+
29
+
30
+ pYriV3QaYtR/ezeaLpKBLsc5T1UQ07t7Xs7mI281tdmRvpLdP5dQhjzInfio0CJv
31
+
32
+ 1Pf5bZUjGG0K9RW2Gb/tGPSYEETiLMubjH61OwBooXKiWR5cs4/1BQIDAQABozkw
33
+
34
+ NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSYvjhG2EWnR5kx5l
35
+
36
+ DAewXCkJOVEwDQYJKoZIhvcNAQEFBQADggEBAB2ryDbU4bQtnunKv/AXq4CuO3LS
37
+
38
+ kik9Xhye8E/5dTcsgitCZJXAqx0rHcK0u2EHnjA5CDcdF5JB7XgSvRrQkFWoW/9K
39
+
40
+ lCB4ih+sB2AI2IUiYBeoCGctXdBQ020prqop/oTQEudzFk/gyQ686lp06HdLRt+O
41
+
42
+ HoQjTIab8vmfgIubjPdIRzokMfHbelvhLi+mQfWVghRhs2jpEfdXbL0w5nNw+trp
43
+
44
+ rO70Dw59hduDUOpgpxew+PLbs4vP1tb1QKPG+39C+PZtosbbf1fai0hqYV1txMCx
45
+
46
+ 55akF+N8NbO6tpVDy6TMagqa10LfEpiQH6dvDHe/xdAqYOCrXKpmqzwu2PI=
47
+
48
+ -----END CERTIFICATE-----
49
+
50
+ '
51
+ date: 2012-02-24 00:00:00.000000000 Z
52
+ dependencies:
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: &10350060 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 1.0.21
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: *10350060
64
+ - !ruby/object:Gem::Dependency
65
+ name: rake
66
+ requirement: &10348240 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: 0.9.2
72
+ type: :development
73
+ prerelease: false
74
+ version_requirements: *10348240
75
+ - !ruby/object:Gem::Dependency
76
+ name: rspec
77
+ requirement: &10347220 !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.6.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: *10347220
86
+ - !ruby/object:Gem::Dependency
87
+ name: simplecov
88
+ requirement: &10361840 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.5.4
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: *10361840
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: &10357220 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: 0.9.8
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: *10357220
108
+ - !ruby/object:Gem::Dependency
109
+ name: yard
110
+ requirement: &10356380 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: 0.7.5
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: *10356380
119
+ - !ruby/object:Gem::Dependency
120
+ name: maruku
121
+ requirement: &10370880 !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 0.6.0
127
+ type: :development
128
+ prerelease: false
129
+ version_requirements: *10370880
130
+ description: ! 'NamespaceHelper provides a module with methods to ease namespace handling.
131
+
132
+ For example getting the unprefixed name, the namespace parent or a list of
133
+
134
+ namespace components of a class or module.
135
+
136
+ '
137
+ email:
138
+ - aef@raxys.net
139
+ executables: []
140
+ extensions: []
141
+ extra_rdoc_files:
142
+ - HISTORY.md
143
+ - LICENSE.md
144
+ files:
145
+ - .gitignore
146
+ - .rspec
147
+ - .travis.yml
148
+ - .yardopts
149
+ - Gemfile
150
+ - Gemfile.lock
151
+ - HISTORY.md
152
+ - LICENSE.md
153
+ - README.md
154
+ - Rakefile
155
+ - lib/aef/namespace_helper.rb
156
+ - lib/namespace_helper.rb
157
+ - lib/namespace_helper/bare.rb
158
+ - namespace_helper.gemspec
159
+ - spec/aef/namespace_helper_spec.rb
160
+ - spec/spec_helper.rb
161
+ homepage: http://github.com/aef/namespace_helper
162
+ licenses:
163
+ - ISC
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubyforge_project:
182
+ rubygems_version: 1.8.10
183
+ signing_key:
184
+ specification_version: 3
185
+ summary: Helper methods for class/module namespace handling
186
+ test_files: []
187
+ has_rdoc: yard
metadata.gz.sig ADDED
Binary file