tengine_support 0.3.4 → 0.3.5

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/NULL ADDED
@@ -0,0 +1 @@
1
+ # Logfile created on 2011-11-18 16:34:49 +0900 by logger.rb/v1.2.7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.3.5
@@ -153,4 +153,22 @@ module Tengine::Support::Config::Definition::HasManyChildren
153
153
  obj.is_a?(Proc) ? self.instance_eval(&obj) : obj
154
154
  end
155
155
 
156
+ def [](child_name)
157
+ child = child_by_name(child_name)
158
+ if child.is_a?(Tengine::Support::Config::Definition::Field)
159
+ self.send(child_name)
160
+ else
161
+ child
162
+ end
163
+ end
164
+
165
+ def []=(child_name, value)
166
+ child = child_by_name(child_name)
167
+ if child.is_a?(Tengine::Support::Config::Definition::Field)
168
+ self.send("#{child_name}=", value)
169
+ else
170
+ raise ArgumentError, "can't replace #{child_name.inspect}"
171
+ end
172
+ end
173
+
156
174
  end
@@ -153,4 +153,12 @@ module Tengine::Support::Config::Definition
153
153
  def action?; false; end
154
154
  def separator?; false; end
155
155
 
156
+ def [](child_name)
157
+ self.send(child_name)
158
+ end
159
+
160
+ def []=(child_name, value)
161
+ self.send("#{child_name}=", value)
162
+ end
163
+
156
164
  end
@@ -3,13 +3,14 @@ require 'tengine/support/config'
3
3
  class Tengine::Support::Config::Logger
4
4
  include Tengine::Support::Config::Definition
5
5
 
6
- field :output, 'file path or "STDOUT" / "STDERR".', :type => :string
6
+ field :output, 'file path or "STDOUT" / "STDERR" / "NULL".', :type => :string
7
7
  field :rotation, 'rotation file count or daily,weekly,monthly.', :type => :string
8
8
  field :rotation_size, 'number of max log file size.', :type => :integer
9
9
  field :level, 'debug/info/warn/error/fatal.', :type => :string
10
10
 
11
11
  def new_logger
12
12
  case output
13
+ when "NULL" then return Tengine::Support::NullLogger.new
13
14
  when "STDOUT" then dev = STDOUT
14
15
  when "STDERR" then dev = STDERR
15
16
  else dev = output
@@ -0,0 +1,10 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'tengine/support'
3
+
4
+ # NullLoggerはロガーのNull Objectです。
5
+ # Loggerと同じインタフェースを持ちますが何も動作しません。
6
+ class Tengine::Support::NullLogger
7
+ %w[debug info warn error fatal].each do |log_level|
8
+ class_eval("def #{log_level}(*args); end")
9
+ end
10
+ end
@@ -2,5 +2,6 @@ require 'tengine_support'
2
2
 
3
3
  module Tengine::Support
4
4
  autoload :YamlWithErb, 'tengine/support/yaml_with_erb'
5
+ autoload :NullLogger, 'tengine/support/null_logger'
5
6
  autoload :Config, 'tengine/support/config'
6
7
  end
@@ -12,7 +12,7 @@ describe 'Tengine::Support::Config::Logger' do
12
12
  it { subject.should be_a(Tengine::Support::Config::Definition::Field)}
13
13
  its(:type){ should == :string }
14
14
  its(:__name__){ should == :output }
15
- its(:description){ should == 'file path or "STDOUT" / "STDERR".'}
15
+ its(:description){ should == 'file path or "STDOUT" / "STDERR" / "NULL".'}
16
16
  its(:default){ should == nil}
17
17
  end
18
18
  end
@@ -47,6 +47,16 @@ describe 'Tengine::Support::Config::Logger' do
47
47
  config.new_logger.should == logger
48
48
  end
49
49
 
50
+ it "NULLの場合" do
51
+ config = Tengine::Support::Config::Logger.new
52
+ config.output = "NULL"
53
+ config.level = "warn"
54
+ config.rotation = nil
55
+ config.rotation_size = nil
56
+ Tengine::Support::NullLogger.should_receive(:new).and_return(:logger)
57
+ config.new_logger.should == :logger
58
+ end
59
+
50
60
  context "ファイル名の場合" do
51
61
  before do
52
62
  @tempfile = Tempfile.new("test.log")
@@ -35,8 +35,40 @@ describe "config" do
35
35
  it { subject.process_stderr_log.rotation_size.should == 1024 * 1024 * 1024}
36
36
  it { subject.process_stderr_log.level.should == "info"}
37
37
  end
38
+
39
+ describe "like Hash" do
40
+ it { subject[:action].should == nil}
41
+ it { subject[:config].should == nil}
42
+ it { subject[:process].should be_a(App1::ProcessConfig) }
43
+ it { subject[:process][:daemon].should == true}
44
+ it { subject[:process][:pid_dir].should == "./tmp/pids"}
45
+ it { subject[:event_queue][:connection][:host].should == "rabbitmq1"}
46
+ it { subject[:event_queue][:connection][:port].should == 5672}
47
+ it { subject[:event_queue][:exchange][:name].should == "tengine_event_exchange"}
48
+ it { subject[:event_queue][:exchange][:type].should == 'direct'}
49
+ it { subject[:event_queue][:exchange][:durable].should == true}
50
+ it { subject[:event_queue][:queue][:name].should == "tengine_event_queue"}
51
+ it { subject[:event_queue][:queue][:durable].should == true}
52
+ it { subject[:log_common][:output].should == nil}
53
+ it { subject[:log_common][:rotation].should == 5}
54
+ it { subject[:log_common][:rotation_size].should == 1024 * 1024 * 1024}
55
+ it { subject[:log_common][:level].should == "info"}
56
+ it { subject[:application_log][:output].should == "log/application.log"}
57
+ it { subject[:application_log][:rotation].should == 'daily'}
58
+ it { subject[:application_log][:rotation_size].should == 1024 * 1024 * 1024}
59
+ it { subject[:application_log][:level].should == "debug"}
60
+ it { subject[:process_stdout_log][:output].should == "log/stdout.log"}
61
+ it { subject[:process_stdout_log][:rotation].should == 5}
62
+ it { subject[:process_stdout_log][:rotation_size].should == 1024 * 1024 * 1024}
63
+ it { subject[:process_stdout_log][:level].should == "warn"}
64
+ it { subject[:process_stderr_log][:output].should == "log/stderr.log"}
65
+ it { subject[:process_stderr_log][:rotation].should == 5}
66
+ it { subject[:process_stderr_log][:rotation_size].should == 1024 * 1024 * 1024}
67
+ it { subject[:process_stderr_log][:level].should == "info"}
68
+ end
38
69
  end
39
70
 
71
+
40
72
  shared_examples_for "load_spec_01.yml's data with db config" do
41
73
  describe "accessors" do
42
74
  it { subject.db.should be_a(Tengine::Support::Config::Mongoid::Connection) }
@@ -67,7 +99,29 @@ describe "config" do
67
99
  subject{ @suite }
68
100
  it_should_behave_like "load_spec_01.yml's data common"
69
101
  it_should_behave_like "load_spec_01.yml's data with db config"
70
- end
102
+ end
103
+
104
+
105
+ context "set like a Hash" do
106
+ before do
107
+ @suite = build_suite1
108
+ @suite.load_file(File.expand_path('load_spec_01.yml.erb', File.dirname(__FILE__)))
109
+ end
110
+
111
+ describe "#[]=" do
112
+ it "set value to field" do
113
+ @suite[:event_queue][:connection][:port] = 2765
114
+ @suite[:event_queue][:connection][:port].should == 2765
115
+ end
116
+
117
+ it "set value to group" do
118
+ event_queue = @suite[:event_queue]
119
+ expect{
120
+ event_queue[:connection] = :hoge
121
+ }.to raise_error(ArgumentError, "can't replace :connection")
122
+ end
123
+ end
124
+ end
71
125
  end
72
126
 
73
127
  context "hash for db settings" do
@@ -91,22 +91,22 @@ db:
91
91
  --db-database=VAL database name to connect db. default: "tengine_production"
92
92
 
93
93
  log_common:
94
- --log-common-output=VAL file path or "STDOUT" / "STDERR".
94
+ --log-common-output=VAL file path or "STDOUT" / "STDERR" / "NULL".
95
95
  --log-common-level=VAL debug/info/warn/error/fatal. default: "info"
96
96
 
97
97
  application_log:
98
- --application-log-output=VAL file path or "STDOUT" / "STDERR". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
98
+ --application-log-output=VAL file path or "STDOUT" / "STDERR" / "NULL". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
99
99
  --application-log-level=VAL debug/info/warn/error/fatal. value of --log-common-level default: "info"
100
100
 
101
101
  process_stdout_log:
102
102
  --process-stdout-log-output=VAL
103
- file path or "STDOUT" / "STDERR". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
103
+ file path or "STDOUT" / "STDERR" / "NULL". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
104
104
  --process-stdout-log-level=VAL
105
105
  debug/info/warn/error/fatal. value of --log-common-level default: "info"
106
106
 
107
107
  process_stderr_log:
108
108
  --process-stderr-log-output=VAL
109
- file path or "STDOUT" / "STDERR". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
109
+ file path or "STDOUT" / "STDERR" / "NULL". if daemon process then "./log/.log" else "STDOUT" default: "STDOUT"
110
110
  --process-stderr-log-level=VAL
111
111
  debug/info/warn/error/fatal. value of --log-common-level default: "info"
112
112
 
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
+
4
+ describe Tengine::Support::NullLogger do
5
+ context "使用可能なメソッド" do
6
+ subject{ Tengine::Support::NullLogger.new }
7
+ it{ subject.debug("foo") }
8
+ it{ subject.info("foo") }
9
+ it{ subject.warn("foo") }
10
+ it{ subject.error("foo") }
11
+ it{ subject.fatal("foo") }
12
+ end
13
+ end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tengine_support"
8
- s.version = "0.3.4"
8
+ s.version = "0.3.5"
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"]
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ".rspec",
21
21
  ".travis.yml",
22
22
  "Gemfile",
23
+ "NULL",
23
24
  "README.md",
24
25
  "Rakefile",
25
26
  "VERSION",
@@ -36,6 +37,7 @@ Gem::Specification.new do |s|
36
37
  "lib/tengine/support/config/definition/suite.rb",
37
38
  "lib/tengine/support/config/logger.rb",
38
39
  "lib/tengine/support/config/mongoid.rb",
40
+ "lib/tengine/support/null_logger.rb",
39
41
  "lib/tengine/support/yaml_with_erb.rb",
40
42
  "lib/tengine_support.rb",
41
43
  "spec/spec_helper.rb",
@@ -51,6 +53,7 @@ Gem::Specification.new do |s|
51
53
  "spec/tengine_support/config_spec/load_spec_01.yml.erb",
52
54
  "spec/tengine_support/config_spec/load_spec_02.yml.erb",
53
55
  "spec/tengine_support/config_spec/parse_spec.rb",
56
+ "spec/tengine_support/null_logger_spec.rb",
54
57
  "spec/tengine_support/yaml_with_erb_spec.rb",
55
58
  "spec/tengine_support/yaml_with_erb_spec/test1.yml.erb",
56
59
  "spec/tengine_support/yaml_with_erb_spec/test2_with_erb.yml",
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.4
4
+ version: 0.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -24,7 +24,7 @@ date: 2011-11-18 00:00:00.000000000Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2165717140 !ruby/object:Gem::Requirement
27
+ requirement: &2155333380 !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: *2165717140
35
+ version_requirements: *2155333380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2165716660 !ruby/object:Gem::Requirement
38
+ requirement: &2155332900 !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: *2165716660
46
+ version_requirements: *2155332900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &2165716100 !ruby/object:Gem::Requirement
49
+ requirement: &2155332400 !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: *2165716100
57
+ version_requirements: *2155332400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &2165715600 !ruby/object:Gem::Requirement
60
+ requirement: &2155331920 !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: *2165715600
68
+ version_requirements: *2155331920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &2165711520 !ruby/object:Gem::Requirement
71
+ requirement: &2155331440 !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: *2165711520
79
+ version_requirements: *2155331440
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &2165711040 !ruby/object:Gem::Requirement
82
+ requirement: &2155258140 !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: *2165711040
90
+ version_requirements: *2155258140
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: autotest
93
- requirement: &2165710560 !ruby/object:Gem::Requirement
93
+ requirement: &2155257520 !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: *2165710560
101
+ version_requirements: *2155257520
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdiscount
104
- requirement: &2165710080 !ruby/object:Gem::Requirement
104
+ requirement: &2155257040 !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: *2165710080
112
+ version_requirements: *2155257040
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
@@ -122,6 +122,7 @@ files:
122
122
  - .rspec
123
123
  - .travis.yml
124
124
  - Gemfile
125
+ - 'NULL'
125
126
  - README.md
126
127
  - Rakefile
127
128
  - VERSION
@@ -138,6 +139,7 @@ files:
138
139
  - lib/tengine/support/config/definition/suite.rb
139
140
  - lib/tengine/support/config/logger.rb
140
141
  - lib/tengine/support/config/mongoid.rb
142
+ - lib/tengine/support/null_logger.rb
141
143
  - lib/tengine/support/yaml_with_erb.rb
142
144
  - lib/tengine_support.rb
143
145
  - spec/spec_helper.rb
@@ -153,6 +155,7 @@ files:
153
155
  - spec/tengine_support/config_spec/load_spec_01.yml.erb
154
156
  - spec/tengine_support/config_spec/load_spec_02.yml.erb
155
157
  - spec/tengine_support/config_spec/parse_spec.rb
158
+ - spec/tengine_support/null_logger_spec.rb
156
159
  - spec/tengine_support/yaml_with_erb_spec.rb
157
160
  - spec/tengine_support/yaml_with_erb_spec/test1.yml.erb
158
161
  - spec/tengine_support/yaml_with_erb_spec/test2_with_erb.yml
@@ -174,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
177
  version: '0'
175
178
  segments:
176
179
  - 0
177
- hash: 300488442410401819
180
+ hash: -3661991772208996840
178
181
  required_rubygems_version: !ruby/object:Gem::Requirement
179
182
  none: false
180
183
  requirements: