Skip to content

Commit

Permalink
Fixing bang methods to work with jruby
Browse files Browse the repository at this point in the history
  • Loading branch information
Thiago Morello committed Apr 14, 2010
1 parent 64e0fc4 commit ac5f9f7
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 14 deletions.
10 changes: 6 additions & 4 deletions lib/rrd.rb
Expand Up @@ -44,10 +44,12 @@ def bang(method, *args, &block)

# Defining all bang methods
BANG_METHODS.each do |bang_method|
define_method(bang_method) do |*args, &block|

This comment has been minimized.

Copy link
@aditya

aditya Apr 19, 2010

Cool. This doesn't work in 1.8.x either.

See: http://blog.sidu.in/2008/01/ruby-blocks-redux-ruby-190-ruby-186-and.html

method = bang_method.to_s.match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
class_eval "
def #{bang_method}(*args, &block)
method = \"#{bang_method}\".match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
"
end
end

10 changes: 6 additions & 4 deletions lib/rrd/base.rb
Expand Up @@ -111,10 +111,12 @@ def bang(method, *args, &block)

# Defining all bang methods
BANG_METHODS.each do |bang_method|
define_method(bang_method) do |*args, &block|
method = bang_method.to_s.match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
class_eval "
def #{bang_method}(*args, &block)
method = \"#{bang_method}\".match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
"
end

end
Expand Down
14 changes: 8 additions & 6 deletions lib/rrd/wrapper.rb
Expand Up @@ -54,7 +54,7 @@ class << self
begin
attach_function :rrd_lastupdate_r, [:string, :pointer, :pointer, :pointer, :pointer], :int
rescue Exception => e
puts "Please upgrade your rrdtool version to use last_update method"
warn "Please upgrade your rrdtool version to use last_update method"
end

attach_function :rrd_resize, [:int, :pointer], :int
Expand Down Expand Up @@ -231,7 +231,7 @@ def last_update(file)

[["time"] + ds_names, [update_time]+values]
ensure
free_pointers
# free_pointers
end

# Used to modify the number of rows in an RRA
Expand Down Expand Up @@ -291,10 +291,12 @@ def bang(method, *args, &block)

# Defining all bang methods
BANG_METHODS.each do |bang_method|
define_method(bang_method) do |*args, &block|
method = bang_method.to_s.match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
class_eval "
def #{bang_method}(*args, &block)
method = \"#{bang_method}\".match(/^(.+)!$/)[1]
bang(method, *args, &block)
end
"
end

private
Expand Down

0 comments on commit ac5f9f7

Please sign in to comment.