30 lines
		
	
	
		
			470 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			470 B
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Gitlab
 | |
|   module TabWidth
 | |
|     extend self
 | |
| 
 | |
|     MIN = 1
 | |
|     MAX = 12
 | |
|     DEFAULT = 8
 | |
| 
 | |
|     def css_class_for_user(user)
 | |
|       return css_class_for_value(DEFAULT) unless user
 | |
| 
 | |
|       css_class_for_value(user.tab_width)
 | |
|     end
 | |
| 
 | |
|     private
 | |
| 
 | |
|     def css_class_for_value(value)
 | |
|       raise ArgumentError unless in_range?(value)
 | |
| 
 | |
|       "tab-width-#{value}"
 | |
|     end
 | |
| 
 | |
|     def in_range?(value)
 | |
|       (MIN..MAX).cover?(value)
 | |
|     end
 | |
|   end
 | |
| end
 |