module AppBase::ModelConcern::ClassMethods
Public Instance Methods
allow_create(criteria=:mine, &block)
click to toggle source
# File lib/appbase/model_concern.rb, line 145 def allow_create(criteria=:mine, &block) appbase_helper.crud_allow(:create, criteria, &block) end
allow_delete(criteria=:mine, &block)
click to toggle source
# File lib/appbase/model_concern.rb, line 153 def allow_delete(criteria=:mine, &block) appbase_helper.crud_allow(:delete, criteria, &block) end
allow_query(criteria=:mine, &block)
click to toggle source
# File lib/appbase/model_concern.rb, line 157 def allow_query(criteria=:mine, &block) appbase_helper.crud_allow(:query, criteria, &block) end
allow_update(criteria=:mine, &block)
click to toggle source
# File lib/appbase/model_concern.rb, line 149 def allow_update(criteria=:mine, &block) appbase_helper.crud_allow(:update, criteria, &block) end
appbase_queryable_operators()
click to toggle source
# File lib/appbase/model_concern.rb, line 183 def appbase_queryable_operators return {} end
expose_to_appbase(*method_names)
click to toggle source
# File lib/appbase/model_concern.rb, line 134 def expose_to_appbase(*method_names) return if method_names.count == 0 options = {} if method_names.last.instance_of? Hash *method_names, options = method_names end method_names.each do |method_name| AppBase::Registry.register_rpc self, method_name, options end end
restrict_query_columns(options={})
click to toggle source
# File lib/appbase/model_concern.rb, line 161 def restrict_query_columns(options={}) raise InvalidUsage if !options || !options.instance_of?(Hash) columns = self.columns.map{|c|c.name.to_sym} columns = appbase_helper.symbol_array_manipulate :only, columns, options columns = appbase_helper.symbol_array_manipulate :except, columns, options self.define_singleton_method :appbase_queryable_columns do columns end rescue InvalidUsage raise %- restrict_query_columns usage: restrict_query_columns <only | except>: <single_column | column_list> examples: restrict_query_columns only: [:user_id, :created_at, :updated_at] restrict_query_columns only: :updated_at restrict_query_columns except: [:content] - end
restrict_query_operators(*columns)
click to toggle source
# File lib/appbase/model_concern.rb, line 187 def restrict_query_operators(*columns) check_before_restrict_query_operators columns *columns, options = columns operators = appbase_queryable_operators set = [:equal, :compare, :in] set = appbase_helper.symbol_array_manipulate :only, set, options set = appbase_helper.symbol_array_manipulate :except, set, options columns.each do |c| operators[c.to_sym] = set end self.define_singleton_method :appbase_queryable_operators do operators end rescue InvalidUsage raise %- restrict_query_operators usage: restrict_query_operators :column1, :column2, <only | except>: <:equal | :compare | :in> examples: restrict_query_operators :user_id, :created_at, :updated_at, only: [:equal, :compare] restrict_query_operators :user_id, :created_at, :updated_at, except: :in restrict_query_operators :title, only: :equal - end
Private Instance Methods
appbase_helper()
click to toggle source
# File lib/appbase/model_concern.rb, line 222 def appbase_helper ModelConcernHelper[self] end
check_before_restrict_query_operators(columns)
click to toggle source
# File lib/appbase/model_concern.rb, line 216 def check_before_restrict_query_operators(columns) raise InvalidUsage if columns.count < 2 || !columns.last.instance_of?(Hash) options = columns.last raise InvalidUsage unless options.has_key?(:only) || options.has_key?(:except) end