Class: RailsConsolePro::Snippets::CollectionResult

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/rails_console_pro/snippets/collection_result.rb

Overview

Value object representing a filtered/listed set of snippets

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(snippets:, query: nil, tags: nil, limit: nil, total_count: nil) ⇒ CollectionResult

Returns a new instance of CollectionResult.



11
12
13
14
15
16
17
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 11

def initialize(snippets:, query: nil, tags: nil, limit: nil, total_count: nil)
  @snippets = Array(snippets)
  @query = query
  @tags = Array(tags).compact
  @limit = limit
  @total_count = total_count || @snippets.length
end

Instance Attribute Details

#limitObject (readonly)

Returns the value of attribute limit.



9
10
11
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 9

def limit
  @limit
end

#queryObject (readonly)

Returns the value of attribute query.



9
10
11
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 9

def query
  @query
end

#snippetsObject (readonly)

Returns the value of attribute snippets.



9
10
11
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 9

def snippets
  @snippets
end

#tagsObject (readonly)

Returns the value of attribute tags.



9
10
11
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 9

def tags
  @tags
end

#total_countObject (readonly)

Returns the value of attribute total_count.



9
10
11
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 9

def total_count
  @total_count
end

Instance Method Details

#each(&block) ⇒ Object



19
20
21
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 19

def each(&block)
  snippets.each(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 27

def empty?
  snippets.empty?
end

#metadataObject



31
32
33
34
35
36
37
38
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 31

def 
  {
    query: query,
    tags: tags,
    limit: limit,
    total_count: total_count
  }
end

#sizeObject



23
24
25
# File 'lib/rails_console_pro/snippets/collection_result.rb', line 23

def size
  snippets.size
end