sugar-high 0.4.9.5 → 0.5.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/Rakefile +0 -2
- data/VERSION +1 -1
- data/lib/sugar-high/class_ext.rb +24 -5
- data/spec/auto_load_blank_root.rb +3 -0
- data/spec/autoload_blank_root/sailor.rb +7 -0
- data/spec/sugar-high/class_ext_spec.rb +31 -17
- data/sugar-high.gemspec +4 -2
- metadata +73 -43
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/lib/sugar-high/class_ext.rb
CHANGED
@@ -14,15 +14,17 @@ class Module
|
|
14
14
|
|
15
15
|
def autoload_modules *args
|
16
16
|
|
17
|
-
options = args.extract_options!
|
17
|
+
options = args.extract_options!
|
18
18
|
root = options[:root] || AutoLoader.root || ''
|
19
19
|
path = root.strip.empty? ? self.name.to_s.underscore : [root, self.name.to_s.underscore].join('/')
|
20
20
|
from = options[:from] || path
|
21
21
|
|
22
22
|
# Here also could be adding of the file in top of load_paths like: $:.unshift File.dirname(__FILE__)
|
23
23
|
# It is very useful for situations of having not load_paths built Rails or Gems way.
|
24
|
-
args.each do |req_name|
|
25
|
-
|
24
|
+
args.each do |req_name|
|
25
|
+
ruby_file = req_name.to_s.underscore
|
26
|
+
|
27
|
+
send :autoload, req_name, AutoLoader.translate("#{from}/#{ruby_file}")
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
@@ -30,13 +32,30 @@ end
|
|
30
32
|
|
31
33
|
module AutoLoader
|
32
34
|
@@root = ''
|
35
|
+
@@namespaces = {}
|
33
36
|
|
34
37
|
def self.root
|
35
38
|
@@root
|
36
39
|
end
|
37
40
|
|
38
|
-
def self.
|
39
|
-
@@
|
41
|
+
def self.namespaces
|
42
|
+
@@namespaces
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.root= root
|
46
|
+
@@root = root
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.namespaces= namespaces
|
50
|
+
@@namespaces = namespaces
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.translate name
|
54
|
+
names = name.split('/')
|
55
|
+
names.map do |name|
|
56
|
+
clazz_name = name.to_s.camelize
|
57
|
+
namespaces[clazz_name.to_sym] ? namespaces[clazz_name.to_sym] : name
|
58
|
+
end.join('/')
|
40
59
|
end
|
41
60
|
end
|
42
61
|
|
@@ -42,39 +42,53 @@ end
|
|
42
42
|
describe Module do
|
43
43
|
|
44
44
|
describe "#include_and_extend" do
|
45
|
-
it "should include class methods" do
|
46
|
-
|
45
|
+
it "should include class methods directly" do
|
46
|
+
Second.should respond_to(:class_method)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
it "should not include class methods indirectly" do
|
51
|
+
Third.should_not respond_to(:class_method)
|
47
52
|
end
|
48
53
|
|
49
54
|
it "should include class methods" do
|
50
55
|
Third.new.should respond_to(:instance_method)
|
51
56
|
end
|
52
57
|
end
|
53
|
-
|
58
|
+
|
54
59
|
describe "#autoload_modules" do
|
55
60
|
it "should autoload modules using :from => path" do
|
56
61
|
require 'fixtures/autoload_modules'
|
57
62
|
AutoloadModules::Third.should respond_to(:test)
|
58
63
|
end
|
59
|
-
|
64
|
+
|
60
65
|
it "should autoload modules from __FILE__'s dir if :from is omitted'" do
|
61
66
|
require 'fixtures/autoload_modulez'
|
62
67
|
AutoloadModulez::ThirdOneHere.should respond_to(:test)
|
63
68
|
end
|
64
|
-
|
69
|
+
|
65
70
|
context 'using AutoLoader.root' do
|
66
71
|
it 'empty root' do
|
67
72
|
AutoLoader.root = ''
|
68
73
|
require 'autoload_blank_root'
|
69
74
|
AutoloadBlankRoot::Hello.should respond_to(:test)
|
70
|
-
end
|
75
|
+
end
|
71
76
|
|
72
77
|
it 'should autoload modules using ClassExt#autoload_root' do
|
73
78
|
AutoLoader.root = 'fixtures'
|
74
79
|
require 'fixtures/autoload_modules_root'
|
75
80
|
AutoloadModulesRoot::Third.should respond_to(:test)
|
76
|
-
end
|
77
|
-
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'using AutoLoader.namespaces' do
|
85
|
+
it 'empty root' do
|
86
|
+
AutoLoader.root = ''
|
87
|
+
AutoLoader.namespaces= {:AutoLoadBlankRoot => 'autoload_blank_root', :HelloSailor => 'sailor'}
|
88
|
+
require 'auto_load_blank_root'
|
89
|
+
AutoLoadBlankRoot::HelloSailor.should respond_to(:test)
|
90
|
+
end
|
91
|
+
end
|
78
92
|
end
|
79
93
|
end
|
80
94
|
|
@@ -116,7 +130,7 @@ describe ClassExt do
|
|
116
130
|
trial.try_class('GoodBye').should be_false
|
117
131
|
end
|
118
132
|
end
|
119
|
-
|
133
|
+
|
120
134
|
describe '#class_exists?' do
|
121
135
|
it "should return false if no class found" do
|
122
136
|
trial.class_exists?('Blip').should be_false
|
@@ -129,8 +143,8 @@ describe ClassExt do
|
|
129
143
|
it "should return false if module found" do
|
130
144
|
trial.class_exists?('GoodBye').should be_false
|
131
145
|
end
|
132
|
-
end
|
133
|
-
|
146
|
+
end
|
147
|
+
|
134
148
|
describe '#module_exists?' do
|
135
149
|
it "should return false if no module found" do
|
136
150
|
trial.module_exists?('Blip').should be_false
|
@@ -139,10 +153,10 @@ describe ClassExt do
|
|
139
153
|
it "should return true if module found" do
|
140
154
|
trial.module_exists?('GoodBye').should be_true
|
141
155
|
end
|
142
|
-
|
156
|
+
|
143
157
|
it "should return false if only class found" do
|
144
158
|
trial.module_exists?('Hello').should be_false
|
145
|
-
end
|
159
|
+
end
|
146
160
|
end
|
147
161
|
|
148
162
|
describe '#try_module_only' do
|
@@ -150,16 +164,16 @@ describe ClassExt do
|
|
150
164
|
trial.try_module_only('Hello').should be_false
|
151
165
|
trial.try_module_only('GoodBye').should be_true
|
152
166
|
end
|
153
|
-
end
|
167
|
+
end
|
154
168
|
|
155
169
|
describe '#find_first_class' do
|
156
170
|
it 'should find first class' do
|
157
171
|
trial.find_first_class('GoodBye', 'Hello').should == Hello
|
158
172
|
end
|
159
|
-
|
173
|
+
|
160
174
|
it 'should not find any module' do
|
161
175
|
lambda {trial.find_first_class('Good', 'Bye') }.should raise_error
|
162
|
-
end
|
176
|
+
end
|
163
177
|
end
|
164
178
|
|
165
179
|
describe '#find_first_module' do
|
@@ -171,5 +185,5 @@ describe ClassExt do
|
|
171
185
|
it 'should not find any module' do
|
172
186
|
lambda {trial.find_first_module('Good', 'Bye') }.should raise_error
|
173
187
|
end
|
174
|
-
end
|
188
|
+
end
|
175
189
|
end
|
data/sugar-high.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sugar-high}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Kristian Mandrup}]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-20}
|
13
13
|
s.description = %q{More Ruby sugar - inspired by the 'zuker' project}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -58,8 +58,10 @@ Gem::Specification.new do |s|
|
|
58
58
|
"lib/sugar-high/rspec/matchers/have_aliases.rb",
|
59
59
|
"lib/sugar-high/string.rb",
|
60
60
|
"sandbox/test_routes_mutate.rb",
|
61
|
+
"spec/auto_load_blank_root.rb",
|
61
62
|
"spec/autoload_blank_root.rb",
|
62
63
|
"spec/autoload_blank_root/hello.rb",
|
64
|
+
"spec/autoload_blank_root/sailor.rb",
|
63
65
|
"spec/fixtures/application_file.rb",
|
64
66
|
"spec/fixtures/autoload_modules.rb",
|
65
67
|
"spec/fixtures/autoload_modules/subdir/first.rb",
|
metadata
CHANGED
@@ -1,57 +1,75 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugar-high
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Kristian Mandrup
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
requirement: &
|
17
|
+
|
18
|
+
date: 2011-07-20 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
22
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 3
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
version_requirements: *id001
|
22
31
|
type: :development
|
32
|
+
name: rspec
|
23
33
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
name: active_support
|
27
|
-
requirement: &2161648440 !ruby/object:Gem::Requirement
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
36
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
hash: 3
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
version_requirements: *id002
|
33
45
|
type: :development
|
46
|
+
name: active_support
|
34
47
|
prerelease: false
|
35
|
-
|
36
|
-
|
37
|
-
name: rspec
|
38
|
-
requirement: &2161647840 !ruby/object:Gem::Requirement
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
hash: 9
|
55
|
+
segments:
|
56
|
+
- 2
|
57
|
+
- 5
|
58
|
+
version: "2.5"
|
59
|
+
version_requirements: *id003
|
44
60
|
type: :development
|
61
|
+
name: rspec
|
45
62
|
prerelease: false
|
46
|
-
version_requirements: *2161647840
|
47
63
|
description: More Ruby sugar - inspired by the 'zuker' project
|
48
64
|
email: kmandrup@gmail.com
|
49
65
|
executables: []
|
66
|
+
|
50
67
|
extensions: []
|
51
|
-
|
68
|
+
|
69
|
+
extra_rdoc_files:
|
52
70
|
- LICENSE
|
53
71
|
- README.markdown
|
54
|
-
files:
|
72
|
+
files:
|
55
73
|
- .document
|
56
74
|
- .rspec
|
57
75
|
- Gemfile
|
@@ -93,8 +111,10 @@ files:
|
|
93
111
|
- lib/sugar-high/rspec/matchers/have_aliases.rb
|
94
112
|
- lib/sugar-high/string.rb
|
95
113
|
- sandbox/test_routes_mutate.rb
|
114
|
+
- spec/auto_load_blank_root.rb
|
96
115
|
- spec/autoload_blank_root.rb
|
97
116
|
- spec/autoload_blank_root/hello.rb
|
117
|
+
- spec/autoload_blank_root/sailor.rb
|
98
118
|
- spec/fixtures/application_file.rb
|
99
119
|
- spec/fixtures/autoload_modules.rb
|
100
120
|
- spec/fixtures/autoload_modules/subdir/first.rb
|
@@ -143,26 +163,36 @@ files:
|
|
143
163
|
- sugar-high.gemspec
|
144
164
|
homepage: http://github.com/kristianmandrup/sugar-high
|
145
165
|
licenses: []
|
166
|
+
|
146
167
|
post_install_message:
|
147
168
|
rdoc_options: []
|
148
|
-
|
169
|
+
|
170
|
+
require_paths:
|
149
171
|
- lib
|
150
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
151
173
|
none: false
|
152
|
-
requirements:
|
153
|
-
- -
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
hash: 3
|
178
|
+
segments:
|
179
|
+
- 0
|
180
|
+
version: "0"
|
181
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
182
|
none: false
|
158
|
-
requirements:
|
159
|
-
- -
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
hash: 3
|
187
|
+
segments:
|
188
|
+
- 0
|
189
|
+
version: "0"
|
162
190
|
requirements: []
|
191
|
+
|
163
192
|
rubyforge_project:
|
164
193
|
rubygems_version: 1.8.5
|
165
194
|
signing_key:
|
166
195
|
specification_version: 3
|
167
196
|
summary: Ruby convenience sugar packs!
|
168
197
|
test_files: []
|
198
|
+
|