Sha256: 8e630d8e17fbb51b78ae675ee041391d27ddfd258b41058871b6f5f79c8192c8

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

module RearConstants

  PATH__TEMPLATES = (File.expand_path('../templates', __FILE__) + '/').freeze
  
  ASSETS__PATH = (File.expand_path('../../../assets', __FILE__) + '/').freeze
  ASSETS__SUFFIX = '-rear'.freeze
  ASSETS__SUFFIX_REGEXP = /#{Regexp.escape ASSETS__SUFFIX}\Z/.freeze

  COLUMNS__HANDLED_TYPES = [
    :string, :text,
    :date, :time, :datetime,
    :radio, :checkbox, :select,
    :boolean
  ].freeze
  COLUMNS__DEFAULT_TYPE  = :string
  COLUMNS__BOOLEAN_MAP   = {true => 'Y', false => 'N'}.freeze
  COLUMNS__PANE_MAX_LENGTH = 255
  
  PAGER__SIDE_PAGES = 5

  FILTERS__HANDLED_TYPES   = COLUMNS__HANDLED_TYPES
  FILTERS__DEFAULT_TYPE    = :string
  FILTERS__DECORATIVE_CMP  = :decorative
  FILTERS__STR_TO_BOOLEAN  = {"true" => true, "false" => false}.freeze
  FILTERS__QUERY_MAP = lambda do |orm|
    # using lambda will always return a new copy of Hash, so no need to deep copy it
    default_query_map = {
       gt: ['%s >  ?', '%s'],
       lt: ['%s <  ?', '%s'],
      gte: ['%s >= ?', '%s'],
      lte: ['%s <= ?', '%s'],
      not: ['%s <> ?', '%s'],
      eql: ['%s =  ?', '%s'],
      
      # use left and right wildcards - '%VALUE%'
      like:   ['%s LIKE ?', '%%%s%'],
      unlike: ['%s NOT LIKE ?', '%%%s%'],

      # use only left  wildcard - exact match for end of line - LIKE '%VALUE'
      _like:   ['%s LIKE ?', '%%%s'],
      _unlike: ['%s NOT LIKE ?', '%%%s'],

      # use only right wildcard - exact match for beginning of line - LIKE 'VALUE%'
      like_:   ['%s LIKE ?', '%s%'],
      unlike_: ['%s NOT LIKE ?', '%s%'],

      in:  ['%s IN ?'],
      csl: ['%s IN ?'], # comma separated list
      FILTERS__DECORATIVE_CMP => []
    }
    {
      ar: default_query_map.merge(:in => ['%s IN (?)'], :csl => ['%s IN (?)']),
      dm: default_query_map,
      sq: default_query_map,
    }[orm]
  end

  ASSOCS__STRUCT = lambda do
    {belongs_to: {}, has_one: {}, has_many: {}}
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rear-0.2.0 lib/rear/constants.rb