Module: SpreeCmCommissioner::VotingSessionConfigConcern
- Extended by:
- ActiveSupport::Concern
- Included in:
- VotingSession
- Defined in:
- app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb
Overview
The fraud_config/voting_config JSON stores and their derived, show-inheriting accessors. Extracted purely to keep VotingSession under RuboCop's Metrics/ClassLength — no behavior here depends on anything else in the concern split (unlike VotingSessionTimingConcern, whose enum/predicate ordering matters).
Constant Summary collapse
- DEFAULT_SUGGESTION_TOP_N =
1
Instance Method Summary collapse
- #effective_fraud_config ⇒ Object
- #effective_suggestion_top_n ⇒ Object
- #effective_voting_config ⇒ Object
- #max_votes_per_user ⇒ Object
- #rate_limit_max_votes ⇒ Object
- #rate_limit_window ⇒ Object
Instance Method Details
#effective_fraud_config ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 48 def effective_fraud_config return {} unless show config = parse_json_config(fraud_config) show_config = show.effective_fraud_config config.reverse_merge(show_config || {}) end |
#effective_suggestion_top_n ⇒ Object
36 37 38 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 36 def effective_suggestion_top_n suggestion_top_n&.to_i&.positive? ? suggestion_top_n.to_i : DEFAULT_SUGGESTION_TOP_N end |
#effective_voting_config ⇒ Object
40 41 42 43 44 45 46 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 40 def effective_voting_config return {} unless show config = parse_json_config(voting_config) show_config = show.effective_voting_config config.reverse_merge(show_config || {}) end |
#max_votes_per_user ⇒ Object
56 57 58 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 56 def max_votes_per_user effective_voting_config['max_votes_per_user'] || 10 end |
#rate_limit_max_votes ⇒ Object
64 65 66 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 64 def rate_limit_max_votes effective_voting_config['rate_limit_max_votes'] || 5 end |
#rate_limit_window ⇒ Object
60 61 62 |
# File 'app/models/concerns/spree_cm_commissioner/voting_session_config_concern.rb', line 60 def rate_limit_window effective_voting_config['rate_limit_window'] || 60 end |