tengine_support 0.3.22 → 0.3.24

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/Gemfile CHANGED
@@ -4,6 +4,9 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem "activesupport", ">= 3.0.0"
7
+ group :test do
8
+ gem "eventmachine", "~> 0.12.0"
9
+ end
7
10
 
8
11
  # Add dependencies to develop your gem here.
9
12
  # Include everything needed to run rake, tests, features, etc.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.22
1
+ 0.3.24
@@ -4,6 +4,9 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem "activesupport", "= 3.0.10"
7
+ group :test do
8
+ gem "eventmachine", "~> 0.12.0"
9
+ end
7
10
 
8
11
  # Add dependencies to develop your gem here.
9
12
  # Include everything needed to run rake, tests, features, etc.
@@ -4,6 +4,9 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem "activesupport", "= 3.1.1"
7
+ group :test do
8
+ gem "eventmachine", "~> 0.12.0"
9
+ end
7
10
 
8
11
  # Add dependencies to develop your gem here.
9
12
  # Include everything needed to run rake, tests, features, etc.
@@ -0,0 +1,15 @@
1
+ module Enumerable
2
+ def deep_freeze
3
+ each do |i|
4
+ case i
5
+ when String # 1.8.7 tweak
6
+ i.freeze
7
+ when Enumerable
8
+ i.deep_freeze
9
+ else
10
+ i.freeze
11
+ end
12
+ end
13
+ freeze
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require 'eventmachine'
2
+
3
+ module Enumerable
4
+
5
+ # ``You are not expected to understand this. ... The real problem is
6
+ # that we didn't understand what was going on either.''
7
+ # Dennis Ritcie
8
+ def each_next_tick
9
+ raise ArgumentError, "no block given" unless block_given?
10
+ nop = lambda do end
11
+ self.reverse_each.inject nop do |block, obj|
12
+ lambda do
13
+ EM.next_tick do
14
+ yield obj
15
+ block.call
16
+ end
17
+ end
18
+ end.call
19
+ end
20
+ end
21
+
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) do |dir|
4
+ Dir.glob("enumerable/**/*.rb").each do |f|
5
+ require File.expand_path(f, dir)
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ class Hash
4
+ # Destructive elimination of nil, like Array#compact!
5
+ def compact!
6
+ reject! do |k, v|
7
+ v.nil?
8
+ end
9
+ end
10
+
11
+ # Intuitive, see the source.
12
+ def compact
13
+ dup.tap {|i| i.compact! }
14
+ end
15
+ end
@@ -1,5 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'tengine/support/core_ext/hash/deep_dup'
3
+ require 'active_support/core_ext/hash/keys'
3
4
 
4
5
  class Hash
5
6
 
@@ -0,0 +1,9 @@
1
+ if RUBY_VERSION < "1.9.3"
2
+ class Module
3
+ private
4
+ # Suppresses no-method error for earlier rubies
5
+ def private_constant name
6
+ # do nothing
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) do |dir|
4
+ Dir.glob("module/**/*.rb").each do |f|
5
+ require File.expand_path(f, dir)
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ require File.expand_path('../../../../spec_helper', File.dirname(__FILE__))
2
+ require "tengine/support/core_ext/enumerable/deep_freeze"
3
+
4
+ describe Enumerable do
5
+ describe "#deep_freeze" do
6
+ subject { { "q" => { "w" => { "e" => { "r" => { "t" => { "y" => "u" } } } } } }.deep_freeze }
7
+ it "recursive destructive freezing of the subject" do
8
+ subject["q"].frozen?.should be_true
9
+ subject["q"]["w"].frozen?.should be_true
10
+ subject["q"]["w"]["e"].frozen?.should be_true
11
+ subject["q"]["w"]["e"]["r"].frozen?.should be_true
12
+ subject["q"]["w"]["e"]["r"]["t"].frozen?.should be_true
13
+ subject["q"]["w"]["e"]["r"]["t"]["y"].frozen?.should be_true
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path('../../../../spec_helper', File.dirname(__FILE__))
3
+ require "tengine/support/core_ext/enumerable/each_next_tick"
4
+
5
+ describe Enumerable do
6
+ describe "#each_next_tick" do
7
+ it "eachと同じ順にiterateする" do
8
+ str = ""
9
+ EM.run do
10
+ [1, 2, 3, 4].each_next_tick do |i|
11
+ str << i.to_s
12
+ end
13
+ EM.add_timer 0.1 do EM.stop end
14
+ end
15
+ str.should == "1234"
16
+ end
17
+
18
+ it "next_tickでやる" do
19
+ str = ""
20
+ EM.run do
21
+ [1, 2, 3, 4].each_next_tick do |i|
22
+ str << i.to_s
23
+ end
24
+ str.should be_empty
25
+ EM.add_timer 0.1 do EM.stop end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path(File.dirname(__FILE__) + '/../../../../spec_helper')
3
+
4
+ require 'active_support'
5
+ require "tengine/support/core_ext/hash/compact"
6
+
7
+ describe Hash do
8
+ describe "#compact!" do
9
+ it "Array#compat!と同じ" do
10
+ h = { :foo => :bar, :baz => nil }
11
+ h.compact!
12
+ h.should include(:foo)
13
+ h.should_not include(:baz)
14
+ end
15
+ end
16
+
17
+ describe "#compact" do
18
+ it "非破壊的" do
19
+ h = { :foo => :bar, :baz => nil }
20
+ hh = h.compact
21
+ h.should include(:foo)
22
+ h.should include(:baz)
23
+ hh.should include(:foo)
24
+ hh.should_not include(:baz)
25
+ end
26
+ end
27
+ end
28
+
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tengine_support"
8
- s.version = "0.3.22"
8
+ s.version = "0.3.24"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["saishu", "w-irie", "taigou", "totty", "hiroshinakao", "g-morita", "guemon", "aoetk", "hattori-at-nt", "t-yamada", "y-karashima", "akm"]
12
- s.date = "2011-11-26"
12
+ s.date = "2011-12-15"
13
13
  s.description = "tengine_support provides utility classes/modules which is not included in active_support. It doesn't depend on other tengine gems."
14
14
  s.email = "tengine@nautilus-technologies.com"
15
15
  s.extra_rdoc_files = [
@@ -40,9 +40,15 @@ Gem::Specification.new do |s|
40
40
  "lib/tengine/support/core_ext.rb",
41
41
  "lib/tengine/support/core_ext/array.rb",
42
42
  "lib/tengine/support/core_ext/array/deep_dup.rb",
43
+ "lib/tengine/support/core_ext/enumerable.rb",
44
+ "lib/tengine/support/core_ext/enumerable/deep_freeze.rb",
45
+ "lib/tengine/support/core_ext/enumerable/each_next_tick.rb",
43
46
  "lib/tengine/support/core_ext/hash.rb",
47
+ "lib/tengine/support/core_ext/hash/compact.rb",
44
48
  "lib/tengine/support/core_ext/hash/deep_dup.rb",
45
49
  "lib/tengine/support/core_ext/hash/keys.rb",
50
+ "lib/tengine/support/core_ext/module.rb",
51
+ "lib/tengine/support/core_ext/module/private_constant.rb",
46
52
  "lib/tengine/support/null_logger.rb",
47
53
  "lib/tengine/support/yaml_with_erb.rb",
48
54
  "lib/tengine_support.rb",
@@ -61,6 +67,9 @@ Gem::Specification.new do |s|
61
67
  "spec/tengine/support/config_spec/load_spec_02.yml.erb",
62
68
  "spec/tengine/support/config_spec/parse_spec.rb",
63
69
  "spec/tengine/support/core_ext/array/deep_dup_spec.rb",
70
+ "spec/tengine/support/core_ext/enumerable/deep_freeze_spec.rb",
71
+ "spec/tengine/support/core_ext/enumerable/each_next_tick_spec.rb",
72
+ "spec/tengine/support/core_ext/hash/compact_spec.rb",
64
73
  "spec/tengine/support/core_ext/hash/deep_dup_spec.rb",
65
74
  "spec/tengine/support/core_ext/hash/keys_spec.rb",
66
75
  "spec/tengine/support/null_logger_spec.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tengine_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.22
4
+ version: 0.3.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -20,11 +20,11 @@ authors:
20
20
  autorequire:
21
21
  bindir: bin
22
22
  cert_chain: []
23
- date: 2011-11-26 00:00:00.000000000Z
23
+ date: 2011-12-15 00:00:00.000000000Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70308831312360 !ruby/object:Gem::Requirement
27
+ requirement: &2154838940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70308831312360
35
+ version_requirements: *2154838940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70308831311760 !ruby/object:Gem::Requirement
38
+ requirement: &2154838160 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.6.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70308831311760
46
+ version_requirements: *2154838160
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &70308831311160 !ruby/object:Gem::Requirement
49
+ requirement: &2154837460 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.7.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70308831311160
57
+ version_requirements: *2154837460
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70308831310560 !ruby/object:Gem::Requirement
60
+ requirement: &2154836660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.0.18
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70308831310560
68
+ version_requirements: *2154836660
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &70308831309960 !ruby/object:Gem::Requirement
71
+ requirement: &2154835480 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.6.4
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70308831309960
79
+ version_requirements: *2154835480
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &70308831309360 !ruby/object:Gem::Requirement
82
+ requirement: &2154834160 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.5.3
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70308831309360
90
+ version_requirements: *2154834160
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: autotest
93
- requirement: &70308831294480 !ruby/object:Gem::Requirement
93
+ requirement: &2154832940 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70308831294480
101
+ version_requirements: *2154832940
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdiscount
104
- requirement: &70308831293940 !ruby/object:Gem::Requirement
104
+ requirement: &2154831660 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70308831293940
112
+ version_requirements: *2154831660
113
113
  description: tengine_support provides utility classes/modules which is not included
114
114
  in active_support. It doesn't depend on other tengine gems.
115
115
  email: tengine@nautilus-technologies.com
@@ -142,9 +142,15 @@ files:
142
142
  - lib/tengine/support/core_ext.rb
143
143
  - lib/tengine/support/core_ext/array.rb
144
144
  - lib/tengine/support/core_ext/array/deep_dup.rb
145
+ - lib/tengine/support/core_ext/enumerable.rb
146
+ - lib/tengine/support/core_ext/enumerable/deep_freeze.rb
147
+ - lib/tengine/support/core_ext/enumerable/each_next_tick.rb
145
148
  - lib/tengine/support/core_ext/hash.rb
149
+ - lib/tengine/support/core_ext/hash/compact.rb
146
150
  - lib/tengine/support/core_ext/hash/deep_dup.rb
147
151
  - lib/tengine/support/core_ext/hash/keys.rb
152
+ - lib/tengine/support/core_ext/module.rb
153
+ - lib/tengine/support/core_ext/module/private_constant.rb
148
154
  - lib/tengine/support/null_logger.rb
149
155
  - lib/tengine/support/yaml_with_erb.rb
150
156
  - lib/tengine_support.rb
@@ -163,6 +169,9 @@ files:
163
169
  - spec/tengine/support/config_spec/load_spec_02.yml.erb
164
170
  - spec/tengine/support/config_spec/parse_spec.rb
165
171
  - spec/tengine/support/core_ext/array/deep_dup_spec.rb
172
+ - spec/tengine/support/core_ext/enumerable/deep_freeze_spec.rb
173
+ - spec/tengine/support/core_ext/enumerable/each_next_tick_spec.rb
174
+ - spec/tengine/support/core_ext/hash/compact_spec.rb
166
175
  - spec/tengine/support/core_ext/hash/deep_dup_spec.rb
167
176
  - spec/tengine/support/core_ext/hash/keys_spec.rb
168
177
  - spec/tengine/support/null_logger_spec.rb
@@ -187,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
196
  version: '0'
188
197
  segments:
189
198
  - 0
190
- hash: -2904345591237646766
199
+ hash: -2124525039867493663
191
200
  required_rubygems_version: !ruby/object:Gem::Requirement
192
201
  none: false
193
202
  requirements: