module Dataclips

Constants

VERSION

Public Class Methods

hashids() click to toggle source
# File lib/dataclips.rb, line 42
def hashids
  @hashids ||= Hashids.new(Dataclips::Engine.config.salt, 8)
end
reload!() click to toggle source
# File lib/dataclips.rb, line 16
def reload!
  Dir.glob("#{Dataclips::Engine.config.path}/*.sql") do |clip_path|
    clip_id = clip_path.match(/(\w+).sql/)[1]
    Rails.logger.debug "reloading: #{clip_id}"

    remove_const(clip_id.camelize) if const_defined?(clip_id.camelize)

    sql = SQLQuery.new File.read(clip_path)

    klass = Class.new(Clip) do
      @template  = sql.template
      @schema    = sql.schema
      @per_page  = sql.options["per_page"]
      @variables = sql.variables

      attr_accessor *sql.variables.keys

      sql.variables.each do |key, options|
        validates key, date: options[:type] == "date"
      end
    end

    const_set(clip_id.camelize, klass)
  end
end

Private Instance Methods

hashids() click to toggle source
# File lib/dataclips.rb, line 42
def hashids
  @hashids ||= Hashids.new(Dataclips::Engine.config.salt, 8)
end
reload!() click to toggle source
# File lib/dataclips.rb, line 16
def reload!
  Dir.glob("#{Dataclips::Engine.config.path}/*.sql") do |clip_path|
    clip_id = clip_path.match(/(\w+).sql/)[1]
    Rails.logger.debug "reloading: #{clip_id}"

    remove_const(clip_id.camelize) if const_defined?(clip_id.camelize)

    sql = SQLQuery.new File.read(clip_path)

    klass = Class.new(Clip) do
      @template  = sql.template
      @schema    = sql.schema
      @per_page  = sql.options["per_page"]
      @variables = sql.variables

      attr_accessor *sql.variables.keys

      sql.variables.each do |key, options|
        validates key, date: options[:type] == "date"
      end
    end

    const_set(clip_id.camelize, klass)
  end
end