opensearch-project / opensearch-ruby
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 36% duplication:
    • 24,186 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 8,864 duplicated lines
  • 9,814 duplicates
system36% (8,864 lines)
Duplication per Extension
rb37% (8,784 lines)
gemspec23% (47 lines)
rake6% (33 lines)
Duplication per Component (primary)
opensearch-dsl/spec50% (3,068 lines)
opensearch-api/spec34% (1,903 lines)
opensearch-api/lib36% (1,872 lines)
opensearch-dsl/lib35% (906 lines)
opensearch-transport/spec30% (661 lines)
profile/benchmarking27% (201 lines)
opensearch/spec41% (99 lines)
opensearch-transport/lib6% (74 lines)
rake_tasks9% (33 lines)
opensearch-api26% (14 lines)
opensearch-transport25% (14 lines)
opensearch-dsl29% (13 lines)
opensearch13% (6 lines)
profile0% (0 lines)
opensearch/lib0% (0 lines)

Duplication Between Components (50+ lines)

G opensearch-api/lib opensearch-api/lib opensearch-dsl/lib opensearch-dsl/lib opensearch-api/lib--opensearch-dsl/lib 222 opensearch-transport/lib opensearch-transport/lib opensearch-api/lib--opensearch-transport/lib 114 opensearch-api/spec opensearch-api/spec opensearch-api/lib--opensearch-api/spec 72 opensearch-dsl/lib--opensearch-transport/lib 206 opensearch-api/spec--opensearch-dsl/lib 162 opensearch-api/spec--opensearch-transport/lib 54

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 9,814 duplicates...
Size#FoldersFilesLinesCode
28 x 2 opensearch-dsl/spec/open...dsl/search/aggregations
opensearch-dsl/spec/opensearch/dsl/search/filters
missing_spec.rb
missing_spec.rb
54:90 (59%)
39:75 (77%)
view
25 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
constant_score.rb
filtered.rb
57:92 (78%)
68:103 (78%)
view
23 x 2 opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/filters
has_child.rb
has_parent.rb
67:100 (65%)
66:99 (67%)
view
22 x 2 opensearch-transport/spec/opensearch/transport
opensearch-transport/spec/opensearch/transport
base_spec.rb
base_spec.rb
73:98 (9%)
104:128 (9%)
view
21 x 2 profile/benchmarking
profile/benchmarking
simple.rb
simple.rb
287:310 (8%)
335:357 (8%)
view
20 x 2 opensearch-dsl/lib/opensearch/dsl/search
opensearch-dsl/lib/opensearch/dsl/search
filter.rb
query.rb
51:81 (62%)
51:80 (62%)
view
20 x 2 opensearch-dsl/spec/opensearch/dsl/search/filters
opensearch-dsl/spec/opensearch/dsl/search/queries
indices_spec.rb
indices_spec.rb
31:57 (28%)
31:57 (37%)
view
19 x 2 opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/queries
has_parent.rb
filtered.rb
75:99 (55%)
79:103 (59%)
view
19 x 2 opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/queries
has_parent.rb
constant_score.rb
75:99 (55%)
68:92 (59%)
view
19 x 2 opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
filtered.rb
76:100 (54%)
79:103 (59%)
view
19 x 2 opensearch-transport/spec/opensearch/transport
opensearch-transport/spec/opensearch/transport
client_spec.rb
client_spec.rb
43:67 (1%)
163:187 (1%)
view
19 x 2 opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
constant_score.rb
76:100 (54%)
68:92 (59%)
view
19 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_parent.rb
nested.rb
55:84 (73%)
53:82 (73%)
view
18 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
nested.rb
56:84 (64%)
54:82 (69%)
view
18 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
has_parent.rb
56:84 (64%)
56:84 (69%)
view
17 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
top_children.rb
62:84 (60%)
62:84 (60%)
view
17 x 2 opensearch-transport/spec/opensearch/transport
opensearch-transport/spec/opensearch/transport
client_spec.rb
client_spec.rb
1073:1093 (1%)
1099:1119 (1%)
view
17 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
nested.rb
top_children.rb
60:82 (65%)
62:84 (60%)
view
17 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_parent.rb
top_children.rb
62:84 (65%)
62:84 (60%)
view
17 x 2 opensearch-api/spec/opensearch/api
opensearch-api/spec/opensearch/api
utils_spec.rb
utils_spec.rb
340:359 (5%)
363:382 (5%)
view
Duplicated Units
The list of top 6 duplicated units.
See data for all 6 unit duplicates...
Size#FoldersFilesLinesCode
11 x 4 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/filters
opensearch-dsl/lib/opensearch/dsl/search/filters
constant_score.rb
filtered.rb
has_child.rb
has_parent.rb
74:86 
85:97 
82:94 
81:93 
view
8 x 2 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/filters
bool.rb
bool.rb
96:106 
88:99 
view
7 x 2 opensearch-dsl/lib/opensearch/dsl/search
opensearch-dsl/lib/opensearch/dsl/search
filter.rb
query.rb
68:76 
68:76 
view
7 x 4 opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
opensearch-dsl/lib/opensearch/dsl/search/queries
has_child.rb
top_children.rb
nested.rb
has_parent.rb
70:78 
70:78 
68:76 
70:78 
view
7 x 2 opensearch-dsl/lib/opensearch/dsl/search
opensearch-dsl/lib/opensearch/dsl/search
base_aggregation_component.rb
aggregation.rb
47:55 
52:60 
view
7 x 2 opensearch-dsl/lib/opens...h/aggregations/pipeline
opensearch-dsl/lib/opensearch/dsl
bucket_sort.rb
search.rb
67:75 
179:187 
view