Class: Jejune::Data::Blob

Inherits:
Struct
  • Object
show all
Includes:
Constants
Defined in:
lib/jejune/data-extension.rb,
lib/jejune/data-extension.rb

Constant Summary

Constants included from Constants

Constants::BROWSERS, Constants::CATCH_TYPES, Constants::CODE, Constants::DEFAULT_EXT, Constants::DELIMS, Constants::EXPRESSION_TYPES, Constants::FUNCTION_TYPES, Constants::OPEN_DELIM, Constants::OPERATOR_PRECEDENCE, Constants::PROPERTY_DEFINITION_TYPES, Constants::PROPERTY_TYPES

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#columnObject

Returns the value of attribute column

Returns:

  • (Object)

    the current value of column



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def column
  @column
end

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def data
  @data
end

#delimiterObject

Returns the value of attribute delimiter

Returns:

  • (Object)

    the current value of delimiter



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def delimiter
  @delimiter
end

#fileObject

Returns the value of attribute file

Returns:

  • (Object)

    the current value of file



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def file
  @file
end

#flagsObject

Returns the value of attribute flags

Returns:

  • (Object)

    the current value of flags



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def flags
  @flags
end

#lineObject

Returns the value of attribute line

Returns:

  • (Object)

    the current value of line



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def line
  @line
end

#prefixObject

Returns the value of attribute prefix

Returns:

  • (Object)

    the current value of prefix



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def prefix
  @prefix
end

#typeObject

Returns the value of attribute type

Returns:

  • (Object)

    the current value of type



65
66
67
# File 'lib/jejune/data-extension.rb', line 65

def type
  @type
end

Class Method Details

.extract(token, type = nil) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/jejune/data-extension.rb', line 74

def self.extract( token, type = nil )
  source = token.text
  if source =~ /\A%?\s*(\w*\s*)/
    prefix, source = $&, $'
    signifier = $1.to_s.strip
    type ||= signifier.empty? ? 'Q' : signifier
  else
    prefix = ''
  end
  source =~ OPEN_DELIM or raise( "%p doesn't have a delimiter" % source )
  delimiter, source, closer = $&, $', DELIMS[ $1 ]
  
  data, d, flags = source.rpartition( closer )
  new(
    type || delimiter, data,
    delimiter, prefix, flags,
    token.source_name, token.line, token.column
  )
end

Instance Method Details

#data_columnObject



98
99
100
# File 'lib/jejune/data-extension.rb', line 98

def data_column
  column + prefix.length + delimiter.length
end

#inspectObject



94
95
96
# File 'lib/jejune/data-extension.rb', line 94

def inspect
  '' << prefix << delimiter << data << DELIMS[ delimiter ] << flags
end