Module: Prawn::Graphics::Dash
- Included in:
 - Prawn::Graphics
 
- Defined in:
 - lib/prawn/graphics/dash.rb
 
Stable API collapse
- 
  
    
      #dash(length = nil, options = {})  ⇒ Object 
    
    
      (also: #dash=)
    
  
  
  
  
  
  
  
  
  
    
Sets the dash pattern for stroked lines and curves or return the current dash pattern setting if
lengthis nil. - 
  
    
      #dashed?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Returns when stroke is dashed, false otherwise.
 - 
  
    
      #undash  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Stops dashing, restoring solid stroked lines and curves.
 
Instance Method Details
#dash(length = nil, options = {}) ⇒ Object Also known as: dash=
Sets the dash pattern for stroked lines and curves or return the current dash pattern setting if length is nil.
There are two ways to set the dash pattern:
- 
If the parameter
lengthis an Integer/Float, it specifies the length of the dash and of the gap. The length of the gap can be customized by setting the :space option.Examples:
length = 3 3 on, 3 off, 3 on, 3 off, ... length = 3, :space =2 3 on, 2 off, 3 on, 2 off, ... - 
If the parameter
lengthis an array, it specifies the lengths of alternating dashes and gaps. The numbers must be non-negative and not all zero. The :space option is ignored in this case.Examples:
length = [2, 1] 2 on, 1 off, 2 on, 1 off, ... length = [3, 1, 2, 3] 3 on, 1 off, 2 on, 3 off, 3 on, 1 off, ... length = [3, 0, 1] 3 on, 0 off, 1 on, 3 off, 0 on, 1 off, ... 
Options may contain the keys :space and :phase
- :space
 - 
The space between the dashes (only used when
lengthis not an array) - :phase
 - 
The distance into the dash pattern at which to start the dash. For example, a phase of 0 starts at the beginning of the dash; whereas, if the phase is equal to the length of the dash, then stroking will begin at the beginning of the space. Default is 0.
 
Integers or Floats may be used for length and the option values. Dash units are in PDF points (1/72 inch).
      58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80  | 
    
      # File 'lib/prawn/graphics/dash.rb', line 58 def dash(length = nil, = {}) return current_dash_state if length.nil? length = Array(length) if length.all?(&:zero?) raise ArgumentError, 'Zero length dashes are invalid. Call #undash to disable dashes.' elsif length.any?(&:negative?) raise ArgumentError, 'Negative numbers are not allowed for dash lengths.' end length = length.first if length.length == 1 self.current_dash_state = { dash: length, space: length.is_a?(Array) ? nil : [:space] || length, phase: [:phase] || 0 } write_stroke_dash end  | 
  
#dashed? ⇒ Boolean
Returns when stroke is dashed, false otherwise
      93 94 95  | 
    
      # File 'lib/prawn/graphics/dash.rb', line 93 def dashed? current_dash_state != undashed_setting end  | 
  
#undash ⇒ Object
Stops dashing, restoring solid stroked lines and curves
      86 87 88 89  | 
    
      # File 'lib/prawn/graphics/dash.rb', line 86 def undash self.current_dash_state = undashed_setting write_stroke_dash end  |