tengine_support 0.3.17 → 0.3.18

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.17
1
+ 0.3.18
@@ -6,9 +6,9 @@ module Tengine::Support::Config::Definition::HasManyChildren
6
6
  @children ||= []
7
7
  end
8
8
 
9
- def child_by_name(__name__)
10
- __name__= __name__.to_sym if __name__.respond_to?(:to_sym)
11
- children.detect{|child| child.__name__ == __name__}
9
+ def child_by_name(name)
10
+ name = name.to_sym if name.respond_to?(:to_sym)
11
+ children.detect{|child| child.__name__ == name}
12
12
  end
13
13
 
14
14
  def find(name_array)
@@ -21,16 +21,16 @@ module Tengine::Support::Config::Definition::HasManyChildren
21
21
  end
22
22
  end
23
23
 
24
- def add(__name__, klass, options = {}, &block)
24
+ def add(name, klass, options = {}, &block)
25
25
  result = klass.new
26
26
  result.__parent__ = self
27
- result.__name__ = __name__
27
+ result.__name__ = name
28
28
  result.instantiate_children
29
29
 
30
30
  dependencies = options[:dependencies] || {}
31
31
  klass.definition_reference_names.each do |res_name|
32
32
  name_array = dependencies[res_name]
33
- raise "missing dependency of #{__name__.inspect} in :dependencies options to add(#{__name__.inspect}, #{klass.name}...)" unless name_array
33
+ raise "missing dependency of #{name.inspect} in :dependencies options to add(#{name.inspect}, #{klass.name}...)" unless name_array
34
34
  obj = root.find(Array(name_array))
35
35
  raise "#{name_array.inspect} not found" unless obj
36
36
  result.send("#{res_name}=", obj)
@@ -49,30 +49,30 @@ module Tengine::Support::Config::Definition::HasManyChildren
49
49
  end
50
50
 
51
51
  children << result
52
- (class << self; self; end).class_eval{ define_method(__name__){ result } }
52
+ (class << self; self; end).class_eval{ define_method(name){ result } }
53
53
  result.instance_eval(&block) if block
54
54
  result
55
55
  end
56
56
 
57
- def group(__name__, options = {}, &block)
58
- result = Tengine::Support::Config::Definition::Group.new(__name__, options)
57
+ def group(name, options = {}, &block)
58
+ result = Tengine::Support::Config::Definition::Group.new(name, options)
59
59
  result.__parent__ = self
60
- (class << self; self; end).class_eval{ define_method(__name__){ result } }
60
+ (class << self; self; end).class_eval{ define_method(name){ result } }
61
61
  children << result
62
62
  result.instance_eval(&block) if block
63
63
  result
64
64
  end
65
65
 
66
- def field(__name__, *args, &block)
66
+ def field(name, *args, &block)
67
67
  attrs = args.last.is_a?(Hash) ? args.pop : {}
68
68
  attrs[:description] = args.first unless args.empty?
69
69
  attrs.update({
70
- :__name__ => __name__,
70
+ :__name__ => name,
71
71
  :__parent__ => self,
72
72
  :__block__ => block,
73
73
  :__type__ => attrs[:__type__] || :field,
74
74
  })
75
- if field = children.detect{|child| child.__name__ == __name__}
75
+ if field = children.detect{|child| child.__name__ == name}
76
76
  new_field = field.dup
77
77
  new_field.update(attrs)
78
78
  idx = self.children.index(field)
@@ -100,10 +100,16 @@ module Tengine::Support::Config::Definition::HasManyChildren
100
100
  end
101
101
  end
102
102
 
103
- def action(__name__, *args, &block)
103
+ def ignore(*names)
104
+ @ignoreds ||= []
105
+ names = names.flatten.map(&:to_sym)
106
+ @ignoreds.concat(names)
107
+ end
108
+
109
+ def action(name, *args, &block)
104
110
  attrs = args.last.is_a?(Hash) ? args.pop : {}
105
111
  attrs.update({
106
- :__name__ => __name__,
112
+ :__name__ => name,
107
113
  :__parent__ => self,
108
114
  :__block__ => block,
109
115
  :__type__ => :action,
@@ -149,11 +155,16 @@ module Tengine::Support::Config::Definition::HasManyChildren
149
155
  end
150
156
 
151
157
  def load(hash)
152
- hash.each do |__name__, value|
153
- child = child_by_name(__name__)
154
- raise "child not found for #{__name__.inspect} on #{__name__}" unless child
158
+ hash.each do |name, value|
159
+ name = name.to_sym
160
+ next if @ignoreds && @ignoreds.include?(name)
161
+ child = child_by_name(name)
162
+ unless child
163
+ where = respond_to?(:__name__) ? " on " + __name__.inspect : ""
164
+ raise "child not found for #{name.inspect}#{where}"
165
+ end
155
166
  if child.is_a?(Tengine::Support::Config::Definition::Field)
156
- self.send("#{__name__}=", value)
167
+ self.send("#{name}=", value)
157
168
  else
158
169
  child.load(value)
159
170
  end
@@ -34,6 +34,7 @@ EOS
34
34
  add(:process_stderr_log, App1::LoggerConfig,
35
35
  :parameters => { :logger_name => "#{File.basename(__FILE__, '.*')}_stderr" },
36
36
  :dependencies => { :process_config => :process, :log_common => :log_common,}, &hide_about_rotation)
37
+ ignore(:app2_settings, :app3_settings)
37
38
  separator("\nGeneral:")
38
39
  __action__(:version, "show version"){ STDOUT.puts "1.1.1"; exit }
39
40
  __action__(:dump_skelton, "dump skelton of config"){ STDOUT.puts YAML.dump(root.to_hash); exit }
@@ -53,7 +54,7 @@ EOS
53
54
  end
54
55
 
55
56
  # build_suite1 との違いは、:dbが Tengine::Support::Config::Mongoid::Connectionではなくて、
56
- # 単なるhashのfieldとして定義している点です
57
+ # 単なるhashのfieldとして定義している点と ignore(:app2_settings, :app3_settings) の定義がない点です。
57
58
  def build_suite2
58
59
  Tengine::Support::Config.suite do
59
60
  banner <<EOS
@@ -126,6 +126,16 @@ describe "config" do
126
126
  it_should_behave_like "load_spec_01.yml's data with db config"
127
127
  end
128
128
 
129
+ describe :load_file do
130
+ before(:all) do
131
+ @suite = build_suite1
132
+ @suite.load_file(File.expand_path('load_spec_01_with_other_settings.yml.erb', File.dirname(__FILE__)))
133
+ end
134
+ subject{ @suite }
135
+ it_should_behave_like "load_spec_01.yml's data common"
136
+ it_should_behave_like "load_spec_01.yml's data with db config"
137
+ end
138
+
129
139
  describe :load_file_by_suite3 do
130
140
  before(:all) do
131
141
  @suite = build_suite3
@@ -0,0 +1,48 @@
1
+ process:
2
+ daemon: true
3
+ pid_dir: "./tmp/pids"
4
+
5
+ db:
6
+ host: 'localhost'
7
+ port: 27020
8
+ username:
9
+ password:
10
+ database: 'tengine_production'
11
+
12
+ event_queue:
13
+ connection:
14
+ host: 'rabbitmq1'
15
+ port: 5672
16
+ # vhost:
17
+ # user:
18
+ # pass:
19
+ exchange:
20
+ name: 'tengine_event_exchange'
21
+ type: 'direct'
22
+ durable: true
23
+ queue:
24
+ name: 'tengine_event_queue'
25
+ durable: true
26
+
27
+ log_common:
28
+ rotation: 5
29
+ rotation_size: <%= 1024 * 1024 * 1024 %>
30
+ level: 'info'
31
+
32
+ application_log:
33
+ output: "log/application.log"
34
+ rotation: 'daily'
35
+ level: 'debug'
36
+
37
+ process_stdout_log:
38
+ output: "log/stdout.log"
39
+ level: 'warn'
40
+
41
+ process_stderr_log:
42
+ output: "log/stderr.log"
43
+ level: 'info'
44
+
45
+ app2_settings: foo
46
+ app3_settings:
47
+ foo: 10
48
+ bar: 20
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tengine_support"
8
- s.version = "0.3.17"
8
+ s.version = "0.3.18"
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"]
@@ -57,6 +57,7 @@ Gem::Specification.new do |s|
57
57
  "spec/tengine/support/config_spec/load_config_file_by_config_option_spec.rb",
58
58
  "spec/tengine/support/config_spec/load_spec.rb",
59
59
  "spec/tengine/support/config_spec/load_spec_01.yml.erb",
60
+ "spec/tengine/support/config_spec/load_spec_01_with_other_settings.yml.erb",
60
61
  "spec/tengine/support/config_spec/load_spec_02.yml.erb",
61
62
  "spec/tengine/support/config_spec/parse_spec.rb",
62
63
  "spec/tengine/support/core_ext/array/deep_dup_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.17
4
+ version: 0.3.18
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -24,7 +24,7 @@ date: 2011-11-23 00:00:00.000000000Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70103819887020 !ruby/object:Gem::Requirement
27
+ requirement: &70145159644480 !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: *70103819887020
35
+ version_requirements: *70145159644480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70103819885900 !ruby/object:Gem::Requirement
38
+ requirement: &70145159644000 !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: *70103819885900
46
+ version_requirements: *70145159644000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &70103819884700 !ruby/object:Gem::Requirement
49
+ requirement: &70145159643420 !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: *70103819884700
57
+ version_requirements: *70145159643420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70103819862800 !ruby/object:Gem::Requirement
60
+ requirement: &70145159642880 !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: *70103819862800
68
+ version_requirements: *70145159642880
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &70103819861580 !ruby/object:Gem::Requirement
71
+ requirement: &70145159642280 !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: *70103819861580
79
+ version_requirements: *70145159642280
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &70103819860420 !ruby/object:Gem::Requirement
82
+ requirement: &70145159641680 !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: *70103819860420
90
+ version_requirements: *70145159641680
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: autotest
93
- requirement: &70103819858940 !ruby/object:Gem::Requirement
93
+ requirement: &70145159641100 !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: *70103819858940
101
+ version_requirements: *70145159641100
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdiscount
104
- requirement: &70103819857380 !ruby/object:Gem::Requirement
104
+ requirement: &70145159640520 !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: *70103819857380
112
+ version_requirements: *70145159640520
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
@@ -159,6 +159,7 @@ files:
159
159
  - spec/tengine/support/config_spec/load_config_file_by_config_option_spec.rb
160
160
  - spec/tengine/support/config_spec/load_spec.rb
161
161
  - spec/tengine/support/config_spec/load_spec_01.yml.erb
162
+ - spec/tengine/support/config_spec/load_spec_01_with_other_settings.yml.erb
162
163
  - spec/tengine/support/config_spec/load_spec_02.yml.erb
163
164
  - spec/tengine/support/config_spec/parse_spec.rb
164
165
  - spec/tengine/support/core_ext/array/deep_dup_spec.rb
@@ -186,7 +187,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
187
  version: '0'
187
188
  segments:
188
189
  - 0
189
- hash: -1778274084898480628
190
+ hash: 643492627916563818
190
191
  required_rubygems_version: !ruby/object:Gem::Requirement
191
192
  none: false
192
193
  requirements: