• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MushroomObserver / mushroom-observer / 14145379140

29 Mar 2025 11:58AM UTC coverage: 84.27% (-9.7%) from 93.985%
14145379140

Pull #2808

github

nimmolo
Handle rss_log content filters with subqueries
Pull Request #2808: Convert Query to AR scopes

477 of 2306 new or added lines in 78 files covered. (20.69%)

1381 existing lines in 27 files now uncovered.

26562 of 31520 relevant lines covered (84.27%)

536.24 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

22.58
/app/classes/query/scope_modules/joining.rb
1
# frozen_string_literal: true
2

3
# Helper methods for turning Query parameters into AR conditions.
4
module Query::ScopeModules::Joining
1✔
5
  def add_join_to_names
1✔
NEW
6
    return unless [Name, Observation, Image, Location].includes?(model)
×
7

NEW
8
    @scopes = case model
×
9
              when Name
NEW
10
                @scopes
×
11
              when Observation
NEW
12
                @scopes.joins(:name)
×
13
              else
NEW
14
                @scopes.joins(observations: :name)
×
15
              end
16
  end
17

18
  def add_join_to_users
1✔
NEW
19
    return unless [Name, Observation, Image, Location].includes?(model)
×
20

NEW
21
    @scopes = case model
×
22
              when Observation
NEW
23
                @scopes.joins(:user)
×
24
              else
NEW
25
                @scopes.joins(observations: :user)
×
26
              end
27
  end
28

29
  def add_join_to_locations
1✔
NEW
30
    unless [Name, Observation, Image, Location, Sequence].includes?(model)
×
NEW
31
      return
×
32
    end
33

NEW
34
    @scopes = case model
×
35
              when Location
NEW
36
                @scopes
×
37
              when Observation
NEW
38
                @scopes.left_outer_joins(:location)
×
39
              else
NEW
40
                @scopes.joins(:observations).left_outer_joins(:location)
×
41
              end
42
  end
43

44
  def add_join_to_searchable_observation_content
1✔
NEW
45
    content_sources = if model == Observation
×
NEW
46
                        :comments
×
47
                      else
NEW
48
                        { observations: :comments }
×
49
                      end
NEW
50
    @scopes = @scopes.joins(content_sources)
×
51
  end
52

53
  # Adds a join to observations to the scope, if necessary
54
  def add_join_to_observations
1✔
NEW
55
    return if model == Observation
×
56

NEW
57
    @scopes = @scopes.joins(:observations)
×
58
  end
59

60
  # Provides joins parameter for another helper, with either a simple table join
61
  # or a join through observations to the table
62
  def joins_through_observations_if_necessary(table)
1✔
NEW
63
    if model == Observation
×
NEW
64
      table
×
65
    else
NEW
66
      { observations: table }
×
67
    end
68
  end
69
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc