Top Level Namespace
Defined Under Namespace
Modules: ActionCable, Redmineup
Classes: ApplicationRecord, RedmineupController
Instance Method Summary
collapse
Instance Method Details
119
120
121
|
# File 'lib/redmineup.rb', line 119
def check_version_format(version)
version =~ /^\d+.?\d*.?\d*$/m
end
|
#compare_versions(requirement, current) ⇒ Object
112
113
114
115
116
117
|
# File 'lib/redmineup.rb', line 112
def compare_versions(requirement, current)
raise ArgumentError.new('wrong version format') unless check_version_format(requirement)
requirement = requirement.split('.').collect(&:to_i)
requirement <=> current.slice(0, requirement.size)
end
|
#requires_redmineup(arg) ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# File 'lib/redmineup.rb', line 111
def requires_redmineup(arg)
def compare_versions(requirement, current)
raise ArgumentError.new('wrong version format') unless check_version_format(requirement)
requirement = requirement.split('.').collect(&:to_i)
requirement <=> current.slice(0, requirement.size)
end
def check_version_format(version)
version =~ /^\d+.?\d*.?\d*$/m
end
arg = { version_or_higher: arg } unless arg.is_a?(Hash)
arg.assert_valid_keys(:version, :version_or_higher)
current = Redmineup::VERSION.split('.').map { |x| x.to_i }
arg.each do |k, req|
case k
when :version_or_higher
raise ArgumentError.new(':version_or_higher accepts a version string only') unless req.is_a?(String)
unless compare_versions(req, current) <= 0
Rails.logger.error "\033[31m[ERROR]\033[0m Redmine requires redmineup gem version #{req} or higher (you're using #{Redmineup::VERSION}).\n\033[31m[ERROR]\033[0m Please update with 'bundle update redmineup'." if Rails.logger
abort "\033[31mRedmine requires redmineup gem version #{req} or higher (you're using #{Redmineup::VERSION}).\nPlease update with 'bundle update redmineup'.\033[0m"
end
when :version
req = [req] if req.is_a?(String)
if req.is_a?(Array)
unless req.detect { |ver| compare_versions(ver, current) == 0 }
abort "\033[31mRedmine requires redmineup gem version #{req} (you're using #{Redmineup::VERSION}).\nPlease update with 'bundle update redmineup'.\033[0m"
end
elsif req.is_a?(Range)
unless compare_versions(req.first, current) <= 0 && compare_versions(req.last, current) >= 0
abort "\033[31mRedmine requires redmineup gem version between #{req.first} and #{req.last} (you're using #{Redmineup::VERSION}).\nPlease update with 'bundle update redmineup'.\033[0m"
end
else
raise ArgumentError.new(':version option accepts a version string, an array or a range of versions')
end
end
end
true
end
|