Module: Gitlab::RelativePositioning
- Included in:
- RelativePositioning
- Defined in:
- lib/gitlab/relative_positioning.rb,
lib/gitlab/relative_positioning/gap.rb,
lib/gitlab/relative_positioning/mover.rb,
lib/gitlab/relative_positioning/range.rb,
lib/gitlab/relative_positioning/ending_at.rb,
lib/gitlab/relative_positioning/closed_range.rb,
lib/gitlab/relative_positioning/item_context.rb,
lib/gitlab/relative_positioning/starting_from.rb
Defined Under Namespace
Classes: ClosedRange, EndingAt, Gap, ItemContext, Mover, Range, StartingFrom
Constant Summary collapse
- STEPS =
10
- IDEAL_DISTANCE =
2**(STEPS - 1) + 1
- MIN_POSITION =
Gitlab::Database::MIN_INT_VALUE
- START_POSITION =
0
- MAX_POSITION =
Gitlab::Database::MAX_INT_VALUE
- MAX_GAP =
IDEAL_DISTANCE * 2
- MIN_GAP =
2
- NoSpaceLeft =
Class.new(StandardError)
- InvalidPosition =
Class.new(StandardError)
- IllegalRange =
Class.new(ArgumentError)
- IssuePositioningDisabled =
Class.new(StandardError)
Class Method Summary collapse
Class Method Details
.range(lhs, rhs) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/gitlab/relative_positioning.rb', line 20 def self.range(lhs, rhs) if lhs && rhs ClosedRange.new(lhs, rhs) elsif lhs StartingFrom.new(lhs) elsif rhs EndingAt.new(rhs) else raise IllegalRange, 'One of rhs or lhs must be provided' unless lhs && rhs end end |