Sha256: f55f720c91987f96a08bc4271ff8d38513a4273532821d6b256783b9a1db75b8
Contents?: true
Size: 1.65 KB
Versions: 18
Compression:
Stored size: 1.65 KB
Contents
# encoding: utf-8 module Sinatra module ConstantHandler extend Hexacta def enable_constants p "Enabling constants..." ConstantHandler.setup_dir("/app/views/#{Hexacta::GEM_FILE_DIR}/constants") ConstantHandler.copy_all_files("/lib/sinatra/views/constants","/app/views/#{Hexacta::GEM_FILE_DIR}/constants") before '/constant*' do error(403) if authenticated(User).permissions.empty? end get '/constants' do params[:format] = 'group' if params[:format].nil? query = Constant.where(:kind => Constant.descendants.collect { |constant_class| constant_class.to_s }) slim :"#{Hexacta::GEM_FILE_DIR}/constants/#{params[:format]}", locals: { :constants => query.order(:kind,:value).all, :total => query.count, :filters => params, :query => query } end post '/constant' do attributes = params.select { |attribute| Constant.columns.include?(attribute.to_sym) } if params[:values].nil? constant = Constant.create(attributes) else for value in params[:values].split(',') attributes[:value] = value constant = Constant.find_or_create(attributes) end end redirect back end post '/constants/:id' do |id| constant = Constant.find(:id => id.to_i) constant.update_fields(params, Constant.columns, :missing=>:skip) constant.save #This is import to force before save redirect back end delete '/constants/:id' do |id| constant = Constant.find(:id => id.to_i) constant.destroy.to_hash.to_json end end end register ConstantHandler end
Version data entries
18 entries across 18 versions & 1 rubygems