logstash_rails 0.0.13 → 0.0.14

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/.tailor ADDED
@@ -0,0 +1,25 @@
1
+ Tailor.config do |config|
2
+ config.formatters "text"
3
+ config.file_set './**/*.rb' do |style|
4
+ style.allow_camel_case_methods false, level: :error
5
+ style.allow_hard_tabs false, level: :error
6
+ style.allow_screaming_snake_case_classes false, level: :error
7
+ style.allow_trailing_line_spaces false, level: :error
8
+ style.allow_invalid_ruby false, level: :warn
9
+ style.indentation_spaces 2, level: :error
10
+ style.max_code_lines_in_class 300, level: :error
11
+ style.max_code_lines_in_method 30, level: :error
12
+ style.max_line_length 80, level: :error
13
+ style.spaces_after_comma 1, level: :error
14
+ style.spaces_after_lbrace 1, level: :error
15
+ style.spaces_after_lbracket 0, level: :error
16
+ style.spaces_after_lparen 0, level: :error
17
+ style.spaces_before_comma 0, level: :error
18
+ style.spaces_before_lbrace 1, level: :error
19
+ style.spaces_before_rbrace 1, level: :error
20
+ style.spaces_before_rbracket 0, level: :error
21
+ style.spaces_before_rparen 0, level: :error
22
+ style.spaces_in_empty_braces 0, level: :error
23
+ style.trailing_newlines 1, level: :error
24
+ end
25
+ end
data/Gemfile CHANGED
@@ -8,6 +8,7 @@ group :development do
8
8
  gem 'yard'
9
9
  gem 'rake'
10
10
  gem 'redcarpet'
11
+ gem 'tailor'
11
12
  end
12
13
 
13
14
  group :test do
data/README.md CHANGED
@@ -81,7 +81,7 @@ The most basic configuration looks like:
81
81
  LogstashRails.config(transport: :redis)
82
82
  ```
83
83
 
84
- This will will connect to a redis server on _localhost:6379_, use _logstash_ as
84
+ This will connect to a redis server on _localhost:6379_, use _logstash_ as
85
85
  key for the redis list to push to and subscribe to _all events_.
86
86
 
87
87
  A more complete example looks like:
@@ -108,8 +108,8 @@ This will only subscribe to events from `ActionController`.
108
108
  3. Commit your changes (`git commit -am "Added ..."`)
109
109
  4. Push to the branch (`git push origin my_feature`)
110
110
  5. Open a Pull Request
111
- 6. Enjoy a refreshing Diet Coke and wait
111
+ 6. Enjoy a refreshing Orangina and wait
112
112
 
113
113
  ## License
114
114
 
115
- Licensed under the General Public License version 3 (GPLv3). See [LICENSE.txt](/LICENSE.txt) for details.
115
+ Licensed under the GNU General Public License version 3 (GPLv3). See [LICENSE.txt](/LICENSE.txt) for details.
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'yard'
3
3
  require 'rspec/core/rake_task'
4
+ require 'tailor/rake_task'
4
5
 
5
6
  RSpec::Core::RakeTask.new(:test)
6
7
 
@@ -16,3 +17,5 @@ end
16
17
  task :default do
17
18
  system "rake -T"
18
19
  end
20
+
21
+ Tailor::RakeTask.new
@@ -22,8 +22,13 @@ module LogstashRails
22
22
  end
23
23
 
24
24
  def push(json_event)
25
- unless @redis.rpush(@redis_key, json_event)
26
- raise "could not send event to redis"
25
+ begin
26
+ unless @redis.rpush(@redis_key, json_event)
27
+ raise "could not send event to redis"
28
+ end
29
+ rescue ::Redis::InheritedError
30
+ @redis.client.connect
31
+ retry
27
32
  end
28
33
  end
29
34
 
@@ -7,6 +7,7 @@ module LogstashRails
7
7
  def initialize(options)
8
8
  @events = options[:events] || [/.*/]
9
9
  @error_logger = options[:logger]
10
+ @raise_errors = options[:raise_errors] || false
10
11
 
11
12
  if defined?(Rails)
12
13
  @error_logger ||= Rails.logger
@@ -41,6 +42,7 @@ module LogstashRails
41
42
  begin
42
43
  push(json_event)
43
44
  rescue
45
+ raise $! if @raise_errors
44
46
  log($!)
45
47
  end
46
48
  end
@@ -1,3 +1,3 @@
1
1
  module LogstashRails
2
- VERSION = "0.0.13"
2
+ VERSION = "0.0.14"
3
3
  end
@@ -4,10 +4,6 @@ describe LogstashRails::Transport::Logfile do
4
4
  Tempfile.new(__FILE__)
5
5
  end
6
6
 
7
- after do
8
- logfile.unlink
9
- end
10
-
11
7
  subject do
12
8
  LogstashRails::Transport::Logfile.new(logfile: logfile)
13
9
  end
@@ -1,7 +1,27 @@
1
1
  describe LogstashRails::Transport::LogstashUdp do
2
+
2
3
  subject do
3
- LogstashRails::Transport::LogstashUdp.new
4
+ LogstashRails::Transport::LogstashUdp.new(port: 9001)
4
5
  end
5
6
 
6
7
  it { should respond_to :push }
8
+
9
+ it 'sends data over udp' do
10
+ message = "toto"
11
+ socket = UDPSocket.new
12
+ socket.bind('127.0.0.1', 9001)
13
+
14
+ received = nil
15
+ thread = Thread.new do
16
+ received = socket.recvfrom(message.length).first
17
+ end
18
+
19
+ subject.push message
20
+
21
+ thread.join
22
+ socket.close
23
+
24
+ received.should eq message
25
+ end
26
+
7
27
  end
@@ -7,7 +7,8 @@ describe LogstashRails::Transport::Redis do
7
7
  subject do
8
8
  LogstashRails::Transport::Redis.new(
9
9
  redis: Redis.new,
10
- redis_key: 'logstash'
10
+ redis_key: 'logstash',
11
+ raise_errors: true
11
12
  )
12
13
  end
13
14
 
@@ -19,4 +20,31 @@ describe LogstashRails::Transport::Redis do
19
20
  Redis.new.lpop('logstash').should eq 'foobar_event'
20
21
  end
21
22
 
23
+ it 'survives forking' do
24
+ r,w = IO.pipe
25
+
26
+ # use connection in parent process
27
+ subject.push 'foo'
28
+ Redis.new.lpop 'logstash'
29
+
30
+ if fork
31
+ w.close
32
+
33
+ r.read.should eq 'true'
34
+
35
+ Process.wait
36
+ else
37
+
38
+ # use connection in child process
39
+ subject.push 'bar'
40
+
41
+ w.write(Redis.new.lpop('logstash') == 'bar')
42
+ w.flush
43
+
44
+ SimpleCov.at_exit{}
45
+ Process.exit! true
46
+ end
47
+
48
+ end
49
+
22
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-15 00:00:00.000000000 Z
12
+ date: 2013-06-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: logstash-event
@@ -68,6 +68,7 @@ extra_rdoc_files: []
68
68
  files:
69
69
  - .gitignore
70
70
  - .rspec
71
+ - .tailor
71
72
  - .travis.yml
72
73
  - Gemfile
73
74
  - LICENSE.txt
@@ -105,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
106
  version: '0'
106
107
  segments:
107
108
  - 0
108
- hash: -1388131657381094432
109
+ hash: 3553073864180370669
109
110
  required_rubygems_version: !ruby/object:Gem::Requirement
110
111
  none: false
111
112
  requirements:
@@ -114,10 +115,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
115
  version: '0'
115
116
  segments:
116
117
  - 0
117
- hash: -1388131657381094432
118
+ hash: 3553073864180370669
118
119
  requirements: []
119
120
  rubyforge_project:
120
- rubygems_version: 1.8.24
121
+ rubygems_version: 1.8.25
121
122
  signing_key:
122
123
  specification_version: 3
123
124
  summary: Send events from Rails to Logstash without logger foo.