Module: AppBase::ModelConcern::ClassMethods
- Defined in:
- lib/appbase/model_concern.rb
Instance Method Summary collapse
- #allow_create(criteria = :mine, &block) ⇒ Object
- #allow_delete(criteria = :mine, &block) ⇒ Object
- #allow_query(criteria = :mine, &block) ⇒ Object
- #allow_update(criteria = :mine, &block) ⇒ Object
- #appbase_queryable_operators ⇒ Object
- #expose_to_appbase(*method_names) ⇒ Object
- #restrict_query_columns(options = {}) ⇒ Object
- #restrict_query_operators(*columns) ⇒ Object
Instance Method Details
#allow_create(criteria = :mine, &block) ⇒ Object
145 146 147 |
# 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) ⇒ Object
153 154 155 |
# 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) ⇒ Object
157 158 159 |
# 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) ⇒ Object
149 150 151 |
# 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 ⇒ Object
183 184 185 |
# File 'lib/appbase/model_concern.rb', line 183 def appbase_queryable_operators return {} end |
#expose_to_appbase(*method_names) ⇒ Object
134 135 136 137 138 139 140 141 142 143 |
# File 'lib/appbase/model_concern.rb', line 134 def expose_to_appbase(*method_names) return if method_names.count == 0 = {} if method_names.last.instance_of? Hash *method_names, = method_names end method_names.each do |method_name| AppBase::Registry.register_rpc self, method_name, end end |
#restrict_query_columns(options = {}) ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/appbase/model_concern.rb', line 161 def restrict_query_columns(={}) raise InvalidUsage if ! || !.instance_of?(Hash) columns = self.columns.map{|c|c.name.to_sym} columns = appbase_helper.symbol_array_manipulate :only, columns, columns = appbase_helper.symbol_array_manipulate :except, columns, 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) ⇒ Object
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/appbase/model_concern.rb', line 187 def restrict_query_operators(*columns) check_before_restrict_query_operators columns *columns, = columns operators = appbase_queryable_operators set = [:equal, :compare, :in] set = appbase_helper.symbol_array_manipulate :only, set, set = appbase_helper.symbol_array_manipulate :except, set, 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 |