sugar-high 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ gem "activesupport", '>= 3.0.1'
4
4
 
5
5
  group :test, :development do
6
6
  gem "rspec", ">= 2.4.0"
7
+ gem "rails", '>= 3.0.1'
7
8
  end
8
9
 
9
10
  group :development do
data/README.textile CHANGED
@@ -22,6 +22,7 @@ h2. Sugar packs
22
22
  * array
23
23
  * blank
24
24
  * class_ext
25
+ * dsl
25
26
  * enumerable
26
27
  * file
27
28
  * file_mutate (backwards compatible)
@@ -79,6 +80,21 @@ Makes it easy to autoload multiple modules by standard folder-to-module mapping
79
80
  * find_first_class(*class_names)
80
81
  * find_first_module(*module_names)
81
82
 
83
+ Note: This pack has recently been extracted into its own gem called *sweet_loader*
84
+
85
+ h3. DSL
86
+
87
+ * with(instance, &block) (by @stanislaw)
88
+
89
+ Useful as a building block for DSLs!
90
+
91
+ <pre>
92
+ with(Hash.new) do
93
+ merge!(:a => 1)
94
+ merge!(:b => 2)
95
+ end.should == {:a => 1, :b => 2}
96
+ </pre>
97
+
82
98
  h3. Enumerable
83
99
 
84
100
  * only_kinds_of?(*modules)
@@ -92,7 +108,7 @@ h3. Enumerable
92
108
  * select_uniq_symbols!
93
109
  * select_strings
94
110
  * select_strings!
95
- * select_only(type)
111
+ * select_only(type)
96
112
  * select_only!(type)
97
113
 
98
114
  h3. File
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.3
1
+ 0.5.4
@@ -0,0 +1,6 @@
1
+ class Object
2
+ def with(instance, &block)
3
+ instance.instance_exec(&block)
4
+ instance
5
+ end
6
+ end
@@ -0,0 +1,23 @@
1
+ class << Module
2
+ def concerned_with(*concerns)
3
+ concerns.each do |concern|
4
+ require_dependency "#{name.underscore}/#{concern}"
5
+ end
6
+ end
7
+
8
+ def shared_concerns(*concerns)
9
+ concerns.each do |concern|
10
+ require_dependency "shared/#{concern}"
11
+ end
12
+ end
13
+
14
+ def include_shared_concerns(*concerns)
15
+ concerns.each do |concern|
16
+ require_dependency "shared/#{concern}"
17
+ self.send :include, concern.to_s.camelize.constantize
18
+ end
19
+ end
20
+
21
+ alias_method :shared_concern, :shared_concerns
22
+ alias_method :include_shared_concern, :include_shared_concerns
23
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+ require 'sugar-high/dsl'
3
+
4
+ describe "SugarHigh" do
5
+ describe "DSL pack" do
6
+ describe '#with' do
7
+ it "should allow calls on instance in block" do
8
+ with(Hash.new) do
9
+ merge!(:a => 1)
10
+ merge!(:b => 2)
11
+ end.should == {:a => 1, :b => 2}
12
+ end
13
+ end
14
+ end
15
+ end
16
+
@@ -13,8 +13,8 @@ module Simple
13
13
  'y'
14
14
  end
15
15
  end
16
-
17
- includes :x, :y
16
+
17
+ includes :x, :y
18
18
  end
19
19
 
20
20
  class Xman
@@ -23,7 +23,7 @@ end
23
23
 
24
24
  describe "SugarHigh" do
25
25
  describe "Includes ext" do
26
- describe '#includes' do
26
+ describe '#includes' do
27
27
  it "should include namespaces X and Y" do
28
28
  Xman.new.respond_to?(:x).should be_true
29
29
  Xman.new.respond_to?(:y).should be_true
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
  require 'sugar-high/module'
3
3
 
4
4
  module Simple
5
- modules :x, :y
5
+ modules :x, :y
6
6
  end
7
7
 
8
8
  module Nested
9
9
  modules :x, :y do
10
10
  nested_modules :a, :b
11
- end
11
+ end
12
12
  end
13
13
 
14
14
  module AuthAssistant
@@ -19,26 +19,26 @@ end
19
19
 
20
20
  describe "SugarHigh" do
21
21
  describe "Module ext" do
22
- describe '#modules' do
22
+ describe '#modules' do
23
23
  it "should create namespaces under Simple for modules X and Y" do
24
24
  Simple::X.should_not be_nil
25
- Simple::Y.should_not be_nil
25
+ Simple::Y.should_not be_nil
26
26
  end
27
27
 
28
28
  it "should create namespaces under AuthAssistant for various modules" do
29
29
  AuthAssistant::View.should_not be_nil
30
- AuthAssistant::Helper.should_not be_nil
30
+ AuthAssistant::Helper.should_not be_nil
31
31
  end
32
32
 
33
33
  it "should create namespaces under Nested for modules X and Y, and modules A and B under each of those X and Y modules" do
34
34
  Nested::X.should_not be_nil
35
- Nested::Y.should_not be_nil
35
+ Nested::Y.should_not be_nil
36
36
 
37
37
  Nested::X::A.should_not be_nil
38
- Nested::Y::A.should_not be_nil
38
+ Nested::Y::A.should_not be_nil
39
39
 
40
40
  Nested::X::B.should_not be_nil
41
- Nested::Y::B.should_not be_nil
41
+ Nested::Y::B.should_not be_nil
42
42
  end
43
43
  end
44
44
  end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'rails'
3
+ require 'sugar-high/rails/concerns'
4
+
5
+ describe "SugarHigh Rails" do
6
+ describe "Concerns pack" do
7
+ pending 'TODO'
8
+ end
9
+ end
10
+
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.5.3"
8
+ s.version = "0.5.4"
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-08-18}
12
+ s.date = %q{2011-08-19}
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 = [
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/sugar-high/blank.rb",
32
32
  "lib/sugar-high/boolean.rb",
33
33
  "lib/sugar-high/class_ext.rb",
34
+ "lib/sugar-high/dsl.rb",
34
35
  "lib/sugar-high/enumerable.rb",
35
36
  "lib/sugar-high/file.rb",
36
37
  "lib/sugar-high/file_ext.rb",
@@ -54,6 +55,7 @@ Gem::Specification.new do |s|
54
55
  "lib/sugar-high/numeric.rb",
55
56
  "lib/sugar-high/path.rb",
56
57
  "lib/sugar-high/properties.rb",
58
+ "lib/sugar-high/rails/concerns.rb",
57
59
  "lib/sugar-high/regexp.rb",
58
60
  "lib/sugar-high/rspec/configure.rb",
59
61
  "lib/sugar-high/rspec/matchers/have_aliases.rb",
@@ -89,6 +91,7 @@ Gem::Specification.new do |s|
89
91
  "spec/sugar-high/array_spec.rb",
90
92
  "spec/sugar-high/blank_spec.rb",
91
93
  "spec/sugar-high/class_ext_spec.rb",
94
+ "spec/sugar-high/dsl_spec.rb",
92
95
  "spec/sugar-high/file/file_dsl_spec.rb",
93
96
  "spec/sugar-high/file_mutate/append_content_spec.rb",
94
97
  "spec/sugar-high/file_mutate/delete_spec.rb",
@@ -106,6 +109,7 @@ Gem::Specification.new do |s|
106
109
  "spec/sugar-high/numeric_spec.rb",
107
110
  "spec/sugar-high/path_spec.rb",
108
111
  "spec/sugar-high/properties_spec.rb",
112
+ "spec/sugar-high/rails/concerns_spec.rb",
109
113
  "spec/sugar-high/regexp_spec.rb",
110
114
  "spec/sugar-high/string_spec.rb",
111
115
  "sugar-high.gemspec"
@@ -121,12 +125,14 @@ Gem::Specification.new do |s|
121
125
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
122
126
  s.add_runtime_dependency(%q<activesupport>, [">= 3.0.1"])
123
127
  s.add_development_dependency(%q<rspec>, [">= 2.4.0"])
128
+ s.add_development_dependency(%q<rails>, [">= 3.0.1"])
124
129
  s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
125
130
  s.add_development_dependency(%q<bundler>, [">= 1.0.1"])
126
131
  s.add_development_dependency(%q<rdoc>, [">= 0"])
127
132
  else
128
133
  s.add_dependency(%q<activesupport>, [">= 3.0.1"])
129
134
  s.add_dependency(%q<rspec>, [">= 2.4.0"])
135
+ s.add_dependency(%q<rails>, [">= 3.0.1"])
130
136
  s.add_dependency(%q<jeweler>, [">= 1.6.4"])
131
137
  s.add_dependency(%q<bundler>, [">= 1.0.1"])
132
138
  s.add_dependency(%q<rdoc>, [">= 0"])
@@ -134,6 +140,7 @@ Gem::Specification.new do |s|
134
140
  else
135
141
  s.add_dependency(%q<activesupport>, [">= 3.0.1"])
136
142
  s.add_dependency(%q<rspec>, [">= 2.4.0"])
143
+ s.add_dependency(%q<rails>, [">= 3.0.1"])
137
144
  s.add_dependency(%q<jeweler>, [">= 1.6.4"])
138
145
  s.add_dependency(%q<bundler>, [">= 1.0.1"])
139
146
  s.add_dependency(%q<rdoc>, [">= 0"])
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.5.3
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-18 00:00:00.000000000Z
12
+ date: 2011-08-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &2156081160 !ruby/object:Gem::Requirement
16
+ requirement: &2155550920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156081160
24
+ version_requirements: *2155550920
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2156080280 !ruby/object:Gem::Requirement
27
+ requirement: &2155550440 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,21 @@ dependencies:
32
32
  version: 2.4.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2156080280
35
+ version_requirements: *2155550440
36
+ - !ruby/object:Gem::Dependency
37
+ name: rails
38
+ requirement: &2155549960 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 3.0.1
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2155549960
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: jeweler
38
- requirement: &2156078760 !ruby/object:Gem::Requirement
49
+ requirement: &2155549480 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 1.6.4
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2156078760
57
+ version_requirements: *2155549480
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: bundler
49
- requirement: &2156078140 !ruby/object:Gem::Requirement
60
+ requirement: &2155549000 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 1.0.1
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2156078140
68
+ version_requirements: *2155549000
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rdoc
60
- requirement: &2156077240 !ruby/object:Gem::Requirement
71
+ requirement: &2155548520 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,7 +76,7 @@ dependencies:
65
76
  version: '0'
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *2156077240
79
+ version_requirements: *2155548520
69
80
  description: More Ruby sugar - inspired by the 'zuker' project
70
81
  email: kmandrup@gmail.com
71
82
  executables: []
@@ -88,6 +99,7 @@ files:
88
99
  - lib/sugar-high/blank.rb
89
100
  - lib/sugar-high/boolean.rb
90
101
  - lib/sugar-high/class_ext.rb
102
+ - lib/sugar-high/dsl.rb
91
103
  - lib/sugar-high/enumerable.rb
92
104
  - lib/sugar-high/file.rb
93
105
  - lib/sugar-high/file_ext.rb
@@ -111,6 +123,7 @@ files:
111
123
  - lib/sugar-high/numeric.rb
112
124
  - lib/sugar-high/path.rb
113
125
  - lib/sugar-high/properties.rb
126
+ - lib/sugar-high/rails/concerns.rb
114
127
  - lib/sugar-high/regexp.rb
115
128
  - lib/sugar-high/rspec/configure.rb
116
129
  - lib/sugar-high/rspec/matchers/have_aliases.rb
@@ -146,6 +159,7 @@ files:
146
159
  - spec/sugar-high/array_spec.rb
147
160
  - spec/sugar-high/blank_spec.rb
148
161
  - spec/sugar-high/class_ext_spec.rb
162
+ - spec/sugar-high/dsl_spec.rb
149
163
  - spec/sugar-high/file/file_dsl_spec.rb
150
164
  - spec/sugar-high/file_mutate/append_content_spec.rb
151
165
  - spec/sugar-high/file_mutate/delete_spec.rb
@@ -163,6 +177,7 @@ files:
163
177
  - spec/sugar-high/numeric_spec.rb
164
178
  - spec/sugar-high/path_spec.rb
165
179
  - spec/sugar-high/properties_spec.rb
180
+ - spec/sugar-high/rails/concerns_spec.rb
166
181
  - spec/sugar-high/regexp_spec.rb
167
182
  - spec/sugar-high/string_spec.rb
168
183
  - sugar-high.gemspec
@@ -180,7 +195,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
195
  version: '0'
181
196
  segments:
182
197
  - 0
183
- hash: -4226046698427202704
198
+ hash: -2320186655016610164
184
199
  required_rubygems_version: !ruby/object:Gem::Requirement
185
200
  none: false
186
201
  requirements: