sugar-high 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem "rspec"
5
+ end
6
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7
1
+ 0.4.8
@@ -97,6 +97,11 @@ class Array
97
97
  def extract(sym)
98
98
  map { |e| e.send(sym) }
99
99
  end
100
+
101
+ # Repeat overall-used method here, to use it without Rails
102
+ def extract_options!
103
+ last.is_a?(::Hash) ? pop : {}
104
+ end unless defined? Array.new.extract_options!
100
105
  end
101
106
 
102
107
  module MathArray
@@ -1,4 +1,5 @@
1
1
  require 'sugar-high/kind_of'
2
+ require 'sugar-high/array'
2
3
 
3
4
  class Class
4
5
  def include_and_extend(the_module, options={})
@@ -84,4 +85,22 @@ module ClassExt
84
85
  raise "Not one Module for any of: #{names} is currently loaded" if modules.empty?
85
86
  modules.first
86
87
  end
87
- end
88
+ end
89
+
90
+ class Object
91
+ # Mixing this method to Object, so both modules and classes would be able to use it!
92
+ def autoload_modules *args
93
+
94
+ options = args.extract_options!
95
+ from = options[:from]
96
+
97
+ raise "Define load path like :from => '#{self.name.to_s.downcase}'" unless from
98
+
99
+ # Here also could be adding of the file in top of load_paths like: $:.unshift File.dirname(__FILE__)
100
+ # It is very useful for situations of having not load_paths built Rails or Gems way.
101
+
102
+ args.each do |req_name|
103
+ send :autoload, req_name, "#{from}/#{req_name.to_s.downcase}"
104
+ end
105
+ end
106
+ end
@@ -6,6 +6,10 @@ module Enumerable
6
6
  def only_labels?
7
7
  all?{|a| a.kind_of_label? }
8
8
  end
9
+
10
+ def only_numbers?
11
+ all?{|a| a.kind_of_number? }
12
+ end
9
13
 
10
14
  def select_kinds_of *kinds
11
15
  select{|a| a.any_kind_of? *kinds }
@@ -20,12 +24,20 @@ module Enumerable
20
24
  select{|a| a.kind_of_label? }
21
25
  end
22
26
 
27
+ def select_numbers
28
+ select{|a| a.is_a?(Numeric) }
29
+ end
30
+
31
+ def select_numbers!
32
+ select!{|a| a.is_a?(Numeric) }
33
+ self
34
+ end
35
+
23
36
  def select_labels!
24
37
  select!{|a| a.kind_of_label? }
25
38
  self
26
39
  end
27
40
 
28
-
29
41
  def select_symbols
30
42
  select_only :symbol
31
43
  end
@@ -21,11 +21,16 @@ class Object
21
21
  end
22
22
 
23
23
  def kind_of_label?
24
- self.any_kind_of? String, Symbol
24
+ self.any_kind_of? String, Symbol
25
25
  end
26
26
 
27
+ def kind_of_number?
28
+ self.any_kind_of? Numeric
29
+ end
30
+
31
+
27
32
  def kind_of_symbol?
28
- self.any_kind_of? Symbols, Symbol
33
+ self.any_kind_of? Symbols, Symbol
29
34
  end
30
35
  end
31
36
 
@@ -0,0 +1,7 @@
1
+ module AutoloadModules
2
+ module First
3
+ def test
4
+ puts "here is the test"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module AutoloadModules
2
+ class Second
3
+ extend AutoloadModules::First
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module AutoloadModules
2
+ class Third < AutoloadModules::Second
3
+ end
4
+ end
@@ -0,0 +1,9 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ module AutoloadModules
4
+ #autoload :First, 'autoload_modules/first'
5
+ #autoload :Second, 'autoload_modules/second'
6
+ #autoload :Third, 'autoload_modules/third'
7
+ autoload_modules :First, :Second, :Third, :from => 'autoload_modules'
8
+ end
9
+
@@ -35,6 +35,15 @@ def trial
35
35
  @trial ||= Trial.new
36
36
  end
37
37
 
38
+ describe Object do
39
+ describe "#autoload_modules" do
40
+ it "should autoload modules" do
41
+ require 'fixtures/autoload_modules'
42
+ AutoloadModules::Third.should respond_to(:test)
43
+ end
44
+ end
45
+ end
46
+
38
47
  describe Class do
39
48
 
40
49
  describe "#include_and_extend" do
data/sugar-high.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sugar-high}
8
- s.version = "0.4.7"
8
+ s.version = "0.4.8"
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}]
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".rspec",
22
+ "Gemfile",
22
23
  "LICENSE",
23
24
  "README.markdown",
24
25
  "Rakefile",
@@ -58,6 +59,10 @@ Gem::Specification.new do |s|
58
59
  "lib/sugar-high/string.rb",
59
60
  "sandbox/test_routes_mutate.rb",
60
61
  "spec/fixtures/application_file.rb",
62
+ "spec/fixtures/autoload_modules.rb",
63
+ "spec/fixtures/autoload_modules/first.rb",
64
+ "spec/fixtures/autoload_modules/second.rb",
65
+ "spec/fixtures/autoload_modules/third.rb",
61
66
  "spec/fixtures/class_file.rb",
62
67
  "spec/fixtures/class_file.txt",
63
68
  "spec/fixtures/content_file.txt",
@@ -101,11 +106,14 @@ Gem::Specification.new do |s|
101
106
  s.specification_version = 3
102
107
 
103
108
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
109
+ s.add_development_dependency(%q<rspec>, [">= 0"])
104
110
  s.add_development_dependency(%q<rspec>, [">= 2.5"])
105
111
  else
112
+ s.add_dependency(%q<rspec>, [">= 0"])
106
113
  s.add_dependency(%q<rspec>, [">= 2.5"])
107
114
  end
108
115
  else
116
+ s.add_dependency(%q<rspec>, [">= 0"])
109
117
  s.add_dependency(%q<rspec>, [">= 2.5"])
110
118
  end
111
119
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sugar-high
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.4.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,18 @@ date: 2011-06-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2152257800 !ruby/object:Gem::Requirement
16
+ requirement: &2156725160 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2156725160
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &2156724680 !ruby/object:Gem::Requirement
17
28
  none: false
18
29
  requirements:
19
30
  - - ! '>='
@@ -21,7 +32,7 @@ dependencies:
21
32
  version: '2.5'
22
33
  type: :development
23
34
  prerelease: false
24
- version_requirements: *2152257800
35
+ version_requirements: *2156724680
25
36
  description: More Ruby sugar - inspired by the 'zuker' project
26
37
  email: kmandrup@gmail.com
27
38
  executables: []
@@ -32,6 +43,7 @@ extra_rdoc_files:
32
43
  files:
33
44
  - .document
34
45
  - .rspec
46
+ - Gemfile
35
47
  - LICENSE
36
48
  - README.markdown
37
49
  - Rakefile
@@ -71,6 +83,10 @@ files:
71
83
  - lib/sugar-high/string.rb
72
84
  - sandbox/test_routes_mutate.rb
73
85
  - spec/fixtures/application_file.rb
86
+ - spec/fixtures/autoload_modules.rb
87
+ - spec/fixtures/autoload_modules/first.rb
88
+ - spec/fixtures/autoload_modules/second.rb
89
+ - spec/fixtures/autoload_modules/third.rb
74
90
  - spec/fixtures/class_file.rb
75
91
  - spec/fixtures/class_file.txt
76
92
  - spec/fixtures/content_file.txt