Module: PgEventstore::Web::Paginator::Helpers
- Defined in:
- lib/pg_eventstore/web/paginator/helpers.rb
Instance Method Summary collapse
- #empty_characters_fallback(str) ⇒ String
- #first_page_link ⇒ String
- #next_page_link(collection) ⇒ String
-
#number_with_delimiter(number, delimiter: ',') ⇒ String
Takes an integer and adds delimiters in there.
- #per_page_url(per_page) ⇒ String
- #previous_page_link(collection) ⇒ String
- #resolve_link_tos_url(should_resolve) ⇒ Object
- #sort_url(order) ⇒ String
- #stream_path(event) ⇒ String
- #total_count(number) ⇒ String
Instance Method Details
#empty_characters_fallback(str) ⇒ String
103 104 105 106 107 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 103 def empty_characters_fallback(str) return str unless str.strip == '' '<i>Non-printable characters</i>' end |
#first_page_link ⇒ String
32 33 34 35 36 37 38 39 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 32 def first_page_link path = build_path(params.slice(*(params.keys - ['starting_id']))) <<~HTML <li class="page-item"> <a class="page-link" href="#{path}" tabindex="-1">First</a> </li> HTML end |
#next_page_link(collection) ⇒ String
21 22 23 24 25 26 27 28 29 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 21 def next_page_link(collection) id = collection.next_page_starting_id disabled = id ? '' : 'disabled' <<~HTML <li class="page-item #{disabled}"> <a class="page-link" href="#{build_starting_id_link(id)}" tabindex="-1">Next</a> </li> HTML end |
#number_with_delimiter(number, delimiter: ',') ⇒ String
Takes an integer and adds delimiters in there. E.g 1002341 becomes this “1,002,341”
74 75 76 77 78 79 80 81 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 74 def number_with_delimiter(number, delimiter: ',') number = number.to_s symbols_to_skip = number.size % 3 parts = [] parts.push(number[0...symbols_to_skip]) unless symbols_to_skip == 0 parts.push(*number[symbols_to_skip..].scan(/\d{3}/)) parts.join(delimiter) end |
#per_page_url(per_page) ⇒ String
43 44 45 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 43 def per_page_url(per_page) build_path(params.merge(per_page: per_page)) end |
#previous_page_link(collection) ⇒ String
9 10 11 12 13 14 15 16 17 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 9 def previous_page_link(collection) id = collection.prev_page_starting_id disabled = id ? '' : 'disabled' <<~HTML <li class="page-item #{disabled}"> <a class="page-link" href="#{build_starting_id_link(id)}" tabindex="-1">Previous</a> </li> HTML end |
#resolve_link_tos_url(should_resolve) ⇒ Object
53 54 55 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 53 def resolve_link_tos_url(should_resolve) build_path(params.merge(resolve_link_tos: should_resolve)) end |
#sort_url(order) ⇒ String
49 50 51 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 49 def sort_url(order) build_path(params.merge(order: order)) end |
#stream_path(event) ⇒ String
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 85 def stream_path(event) build_path( { filter: { streams: [ { context: escape_empty_string(event.stream.context), stream_name: escape_empty_string(event.stream.stream_name), stream_id: escape_empty_string(event.stream.stream_id), }, ], }, } ) end |
#total_count(number) ⇒ String
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/pg_eventstore/web/paginator/helpers.rb', line 59 def total_count(number) prefix = if number > Paginator::EventsCollection::MAX_NUMBER_TO_COUNT 'Estimate count: ' else 'Total count: ' end number = number_with_delimiter(number) prefix + number end |