Skip to content

Commit 0fb7587

Browse files
committed
feat: run-lint
1 parent af51bf7 commit 0fb7587

File tree

3 files changed

+22
-36
lines changed

3 files changed

+22
-36
lines changed

lib/flagsmith/engine/evaluation/core.rb

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,13 @@ def get_evaluation_result(evaluation_context)
2323
flags = evaluate_features(evaluation_context, segment_overrides)
2424
{
2525
flags: flags,
26-
segments: segments,
26+
segments: segments
2727
}
2828
end
2929

3030
# Returns { segments: EvaluationResultSegments; segmentOverrides: Record<string, SegmentOverride>; }
3131
def evaluate_segments(evaluation_context)
32-
if evaluation_context[:identity].nil? || evaluation_context[:segments].nil?
33-
return [], {}
34-
end
32+
return [], {} if evaluation_context[:identity].nil? || evaluation_context[:segments].nil?
3533

3634
identity_segments = get_identity_segments_from_context(evaluation_context)
3735

@@ -40,16 +38,14 @@ def evaluate_segments(evaluation_context)
4038
name: segment[:name]
4139
}
4240

43-
if segment[:metadata]
44-
result[:metadata] = segment[:metadata].dup
45-
end
41+
result[:metadata] = segment[:metadata].dup if segment[:metadata]
4642

4743
result
4844
end
4945

5046
segment_overrides = process_segment_overrides(identity_segments)
5147

52-
return segments, segment_overrides
48+
[segments, segment_overrides]
5349
end
5450

5551
# Returns Record<string: override.name, SegmentOverride>
@@ -62,12 +58,12 @@ def process_segment_overrides(identity_segments)
6258
overrides_list = segment[:overrides].is_a?(Array) ? segment[:overrides] : []
6359

6460
overrides_list.each do |override|
65-
if should_apply_override(override, segment_overrides)
66-
segment_overrides[override[:name]] = {
67-
feature: override,
68-
segment_name: segment[:name]
69-
}
70-
end
61+
next unless should_apply_override(override, segment_overrides)
62+
63+
segment_overrides[override[:name]] = {
64+
feature: override,
65+
segment_name: segment[:name]
66+
}
7167
end
7268
end
7369

@@ -102,7 +98,7 @@ def evaluate_features(evaluation_context, segment_overrides)
10298

10399
# Set reason
104100
flag_result[:reason] = evaluated[:reason] ||
105-
get_targeting_match_reason({ type: 'SEGMENT', override: segment_override })
101+
get_targeting_match_reason({ type: 'SEGMENT', override: segment_override })
106102

107103
flags[final_feature[:name].to_sym] = flag_result
108104
end
@@ -112,9 +108,7 @@ def evaluate_features(evaluation_context, segment_overrides)
112108

113109
# Returns {value: any; reason?: string}
114110
def evaluate_feature_value(feature, identity_key = nil)
115-
if feature[:variants]&.any? && identity_key
116-
return get_multivariate_feature_value(feature, identity_key)
117-
end
111+
return get_multivariate_feature_value(feature, identity_key) if feature[:variants]&.any? && identity_key
118112

119113
{ value: feature[:value], reason: nil }
120114
end

lib/flagsmith/engine/segments/evaluator.rb

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,12 @@ module Evaluator
2121
def get_identity_segments_from_context(context)
2222
return [] unless context[:identity] && context[:segments]
2323

24-
matching_segments = context[:segments].values.select do |segment|
24+
context[:segments].values.select do |segment|
2525
next false if segment[:rules].nil? || segment[:rules].empty?
2626

2727
matches = segment[:rules].all? { |rule| traits_match_segment_rule_from_context(rule, segment[:key], context) }
2828
matches
2929
end
30-
31-
matching_segments
3230
end
3331

3432
# Model-based segment evaluation (existing approach)
@@ -153,10 +151,10 @@ def traits_match_segment_condition_from_context(condition, segment_key, context)
153151

154152
trait_value = get_trait_value(condition[:property], context)
155153

156-
return trait_value != nil if condition[:operator] == IS_SET
154+
return !trait_value.nil? if condition[:operator] == IS_SET
157155
return trait_value.nil? if condition[:operator] == IS_NOT_SET
158156

159-
if !trait_value.nil?
157+
unless trait_value.nil?
160158
# Reuse existing Condition class logic
161159
condition_obj = Flagsmith::Engine::Segments::Condition.new(
162160
operator: condition[:operator],
@@ -195,9 +193,7 @@ def evaluate_rule_conditions(rule_type, condition_results)
195193
def get_trait_value(property, context)
196194
if property.start_with?('$.')
197195
context_value = get_context_value(property, context)
198-
if !context_value.nil? && !non_primitive?(context_value)
199-
return context_value
200-
end
196+
return context_value if !context_value.nil? && !non_primitive?(context_value)
201197
end
202198

203199
traits = context.dig(:identity, :traits) || {}

lib/flagsmith/engine/segments/models.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ def format_to_type_of(input)
8181
# Double check this is the desired behavior between SDKs
8282
'TrueClass' => ->(v) { ['True', 'true', 'TRUE', true, 1, '1'].include?(v) },
8383
'FalseClass' => ->(v) { !['False', 'false', 'FALSE', false].include?(v) },
84-
'Integer' => ->(v) {
85-
i = v.to_i;
84+
'Integer' => lambda { |v|
85+
i = v.to_i
8686
i.to_s == v.to_s ? i : v
8787
},
88-
'Float' => ->(v) {
89-
f = v.to_f;
88+
'Float' => lambda { |v|
89+
f = v.to_f
9090
f.to_s == v.to_s ? f : v
9191
}
9292
}[input.class.to_s]
@@ -103,16 +103,12 @@ def match_modulo_value(trait_value)
103103
def match_in_value(trait_value)
104104
return false if trait_value.nil? || trait_value.is_a?(TrueClass) || trait_value.is_a?(FalseClass)
105105

106-
if @value.is_a?(Array)
107-
return @value.include?(trait_value.to_s)
108-
end
106+
return @value.include?(trait_value.to_s) if @value.is_a?(Array)
109107

110108
if @value.is_a?(String)
111109
begin
112110
parsed = JSON.parse(@value)
113-
if parsed.is_a?(Array)
114-
return parsed.include?(trait_value.to_s)
115-
end
111+
return parsed.include?(trait_value.to_s) if parsed.is_a?(Array)
116112
rescue JSON::ParserError
117113
end
118114
end

0 commit comments

Comments
 (0)