namespace_helper 1.0.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/.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