Class: SemverDialects::IntervalSet

Inherits:
Object
  • Object
show all
Defined in:
lib/semver_dialects/interval_set.rb

Overview

rubocop:todo Style/Documentation

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeIntervalSet

Returns a new instance of IntervalSet.



10
11
12
13
# File 'lib/semver_dialects/interval_set.rb', line 10

def initialize
  @intervals = []
  @interval_set = Set.new
end

Instance Attribute Details

#intervalsObject (readonly)

Returns the value of attribute intervals.



8
9
10
# File 'lib/semver_dialects/interval_set.rb', line 8

def intervals
  @intervals
end

Instance Method Details

#<<(item) ⇒ Object



20
21
22
# File 'lib/semver_dialects/interval_set.rb', line 20

def <<(item)
  add(item)
end

#add(interval) ⇒ Object



15
16
17
18
# File 'lib/semver_dialects/interval_set.rb', line 15

def add(interval)
  @intervals << interval
  @interval_set.add(interval)
end

#any?Boolean

Returns:

  • (Boolean)


122
123
124
# File 'lib/semver_dialects/interval_set.rb', line 122

def any?
  @intervals.any?
end

#empty?Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/semver_dialects/interval_set.rb', line 118

def empty?
  @intervals.empty?
end

#firstObject



114
115
116
# File 'lib/semver_dialects/interval_set.rb', line 114

def first
  @intervals.first
end

#includes?(other) ⇒ Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/semver_dialects/interval_set.rb', line 103

def includes?(other)
  @interval_set.include?(other)
end

#overlaps_with?(other) ⇒ Boolean

Returns:

  • (Boolean)


107
108
109
110
111
112
# File 'lib/semver_dialects/interval_set.rb', line 107

def overlaps_with?(other)
  @interval_set.each do |interval|
    return true unless interval.intersect(other).instance_of?(EmptyInterval)
  end
  false
end

#sizeObject



24
25
26
# File 'lib/semver_dialects/interval_set.rb', line 24

def size
  @intervals.size
end

#to_cargo_sObject



68
69
70
# File 'lib/semver_dialects/interval_set.rb', line 68

def to_cargo_s
  to_npm_s
end

#to_conan_sObject



40
41
42
# File 'lib/semver_dialects/interval_set.rb', line 40

def to_conan_s
  to_npm_s
end

#to_description_sObject



32
33
34
# File 'lib/semver_dialects/interval_set.rb', line 32

def to_description_s
  @intervals.map(&:to_description_s).join(', ').capitalize
end

#to_gem_sObject



52
53
54
# File 'lib/semver_dialects/interval_set.rb', line 52

def to_gem_s
  @intervals.map(&:to_gem_s).join('||')
end

#to_go_sObject



60
61
62
# File 'lib/semver_dialects/interval_set.rb', line 60

def to_go_s
  @intervals.map(&:to_go_s).join('||')
end

#to_maven_sObject



48
49
50
# File 'lib/semver_dialects/interval_set.rb', line 48

def to_maven_s
  @intervals.map(&:to_maven_s).join(',')
end

#to_npm_sObject



36
37
38
# File 'lib/semver_dialects/interval_set.rb', line 36

def to_npm_s
  @intervals.map(&:to_npm_s).join('||')
end

#to_nuget_sObject



44
45
46
# File 'lib/semver_dialects/interval_set.rb', line 44

def to_nuget_s
  to_maven_s
end

#to_packagist_sObject



64
65
66
# File 'lib/semver_dialects/interval_set.rb', line 64

def to_packagist_s
  @intervals.map(&:to_packagist_s).join('||')
end

#to_pub_sObject



76
77
78
# File 'lib/semver_dialects/interval_set.rb', line 76

def to_pub_s
  to_npm_s
end

#to_pypi_sObject



56
57
58
# File 'lib/semver_dialects/interval_set.rb', line 56

def to_pypi_s
  @intervals.map(&:to_pypi_s).join('||')
end

#to_sObject



28
29
30
# File 'lib/semver_dialects/interval_set.rb', line 28

def to_s
  @intervals.map(&:to_s).join(',')
end

#to_swift_sObject



72
73
74
# File 'lib/semver_dialects/interval_set.rb', line 72

def to_swift_s
  to_npm_s
end

#to_version_s(package_type) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/semver_dialects/interval_set.rb', line 80

def to_version_s(package_type)
  case package_type
  when 'npm'
    to_npm_s
  when 'nuget'
    to_nuget_s
  when 'maven'
    to_maven_s
  when 'gem'
    to_gem_s
  when 'pypi'
    to_pypi_s
  when 'packagist'
    to_packagist_s
  when 'go'
    to_go_s
  when 'conan'
    to_conan_s
  else
    ''
  end
end

#universal?Boolean

Returns:

  • (Boolean)


126
127
128
129
130
131
# File 'lib/semver_dialects/interval_set.rb', line 126

def universal?
  @intervals.each do |interval|
    return true if interval.universal?
  end
  false
end