Sha256: e583af0efe06729d2ea26574129384980f7b1cb0c4f04b03430f43c19979e888

Contents?: true

Size: 1.14 KB

Versions: 42

Compression:

Stored size: 1.14 KB

Contents

module Wco::Utils

  def export
    out = {}
    %w| created_at updated_at |.map do |f|
      out[f] = send(f)
    end
    export_fields.map do |field|
      if field[-3..-1] == '_id'
        out[field] = send(field).to_s
      else
        out[field] = send(field)
      end
    end
    out[:_id] = id.to_s
    out.with_indifferent_access
  end

  def self.included(base)
    base.extend(ClassMethods)
  end
  module ClassMethods
    def list
      [[nil,nil]] + all.map { |a| [ a, a.id ] }
    end
  end

  private

  def set_slug
    return if !slug.blank?
    if defined? name
      new_slug = name.downcase.gsub(/[^a-z0-9\s]/i, '').gsub(' ', '-')
    else
      new_slug = '1'
    end
    if self.class.where( slug: new_slug ).first
      loop do
        if new_slug[new_slug.length-1].to_i != 0
          # inrement last digit
          last_digit = new_slug[new_slug.length-1].to_i
          new_slug = "#{new_slug[0...new_slug.length-1]}#{last_digit+1}"
        else
          # add '-1' to the end
          new_slug = "#{new_slug}-1"
        end
        break if !self.class.where( slug: new_slug ).first
      end
    end
    self.slug = new_slug
  end

end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
wco_models-3.1.0.202 app/models/wco/utils.rb
wco_models-3.1.0.201 app/models/wco/utils.rb
wco_models-3.1.0.199 app/models/wco/utils.rb
wco_models-3.1.0.198 app/models/wco/utils.rb
wco_models-3.1.0.197 app/models/wco/utils.rb
wco_models-3.1.0.196 app/models/wco/utils.rb
wco_models-3.1.0.195 app/models/wco/utils.rb
wco_models-3.1.0.194 app/models/wco/utils.rb
wco_models-3.1.0.193 app/models/wco/utils.rb
wco_models-3.1.0.192 app/models/wco/utils.rb
wco_models-3.1.0.191 app/models/wco/utils.rb
wco_models-3.1.0.190 app/models/wco/utils.rb
wco_models-3.1.0.189 app/models/wco/utils.rb
wco_models-3.1.0.188 app/models/wco/utils.rb
wco_models-3.1.0.187 app/models/wco/utils.rb
wco_models-3.1.0.184 app/models/wco/utils.rb
wco_models-3.1.0.183 app/models/wco/utils.rb
wco_models-3.1.0.182 app/models/wco/utils.rb
wco_models-3.1.0.181 app/models/wco/utils.rb
wco_models-3.1.0.180 app/models/wco/utils.rb