Skip to content

Commit 9cc1e6c

Browse files
committed
[refactor] convert to int with proper checks
1 parent a1e9dab commit 9cc1e6c

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/main/java/org/jruby/rack/ext/Logger.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ public class Logger extends RubyObject { // implements RackLogger
5959

6060
// Logger::Severity :
6161

62+
private static final int LEVEL_NOT_SET = -1;
63+
6264
// Low-level information, mostly for developers.
6365
static final int DEBUG = 0;
6466
// Generic (useful) information about system operation.
@@ -72,9 +74,7 @@ public class Logger extends RubyObject { // implements RackLogger
7274
// An unknown message that should always be logged.
7375
static final int UNKNOWN = 5;
7476

75-
private static final int NOT_SET = -1;
76-
77-
private int level = NOT_SET;
77+
private int level = LEVEL_NOT_SET;
7878

7979
private RackLogger logger; // the "real" logger
8080
private IRubyObject formatter = null; // optional
@@ -132,14 +132,16 @@ public RackLogger getRealLogger() {
132132

133133
@JRubyMethod(name = "level", alias = "sev_threshold")
134134
public IRubyObject get_level(final ThreadContext context) {
135-
if ( this.level == NOT_SET ) return context.nil;
136-
return context.runtime.newFixnum(this.level);
135+
return this.level == LEVEL_NOT_SET ? context.nil : context.runtime.newFixnum(this.level);
137136
}
138137

139138
@JRubyMethod(name = "level=", alias = "sev_threshold=")
140139
public IRubyObject set_level(final ThreadContext context, final IRubyObject level) {
141-
if ( level.isNil() ) { this.level = NOT_SET; return level; }
142-
this.level = (int) level.convertToInteger("to_i").getLongValue();
140+
if ( level.isNil() ) {
141+
this.level = LEVEL_NOT_SET;
142+
return level;
143+
}
144+
this.level = toInt(level);
143145
return get_level(context);
144146
}
145147

@@ -182,10 +184,9 @@ private boolean isEnabledFor(final int severity) {
182184
return isEnabledFor(severity, mapLevel(severity));
183185
}
184186

185-
private boolean isEnabledFor(final int severity,
186-
final RackLogger.Level loggerLevel) {
187+
private boolean isEnabledFor(final int severity, final RackLogger.Level loggerLevel) {
187188
if ( loggerLevel == null ) return level <= severity;
188-
if ( level == NOT_SET ) return logger.isEnabled(loggerLevel);
189+
if ( level == LEVEL_NOT_SET) return logger.isEnabled(loggerLevel);
189190
return level <= severity && logger.isEnabled(loggerLevel);
190191
}
191192

@@ -337,9 +338,7 @@ public IRubyObject unknown(final ThreadContext context, final Block block) {
337338
public IRubyObject add(final ThreadContext context, final IRubyObject[] args, final Block block) {
338339
int severity = UNKNOWN;
339340
final IRubyObject sev = args[0];
340-
if ( ! sev.isNil() ) {
341-
severity = (int) sev.convertToInteger("to_i").getLongValue();
342-
}
341+
if ( !sev.isNil() ) severity = toInt(sev);
343342
IRubyObject msg;
344343
if ( args.length > 1 ) {
345344
msg = args[1];
@@ -415,16 +414,14 @@ public IRubyObject format_message(final ThreadContext context, final IRubyObject
415414
private IRubyObject format_message(final ThreadContext context,
416415
final int severityVal, final long datetimeMillis,
417416
final IRubyObject progname, final IRubyObject msg) {
418-
final IRubyObject severity =
419-
RubyString.newStringShared(context.runtime, formatSeverity(severityVal));
417+
final IRubyObject severity = RubyString.newStringShared(context.runtime, formatSeverity(severityVal));
420418
final RubyTime datetime = RubyTime.newTime(context.runtime, datetimeMillis);
421419
return format_message(context, new IRubyObject[] { severity, datetime, progname, msg });
422420
}
423421

424422
@JRubyMethod(visibility = Visibility.PRIVATE)
425423
public IRubyObject format_severity(final ThreadContext context, final IRubyObject sev) {
426-
final int severity = (int) sev.convertToInteger("to_i").getLongValue();
427-
return RubyString.newStringShared(context.runtime, formatSeverity(severity));
424+
return RubyString.newStringShared(context.runtime, formatSeverity(toInt(sev)));
428425
}
429426

430427
private static final ByteList FORMATTED_DEBUG =
@@ -451,10 +448,13 @@ private static ByteList formatSeverity(final int severity) {
451448
return FORMATTED_ANY;
452449
}
453450

451+
private static int toInt(final IRubyObject level) {
452+
return level.convertToInteger("to_i").getIntValue();
453+
}
454+
454455
@SuppressWarnings("unchecked")
455456
@Override
456457
public <T> T toJava(Class<T> target) {
457-
// NOTE: maybe this is not a good idea ?!
458458
if ( RackLogger.class == target ) return (T) logger;
459459
return super.toJava(target);
460460
}

0 commit comments

Comments
 (0)