Module: Crows
Overview
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Defined Under Namespace
Classes: NotAuthorizedError, NotDefinedError
Constant Summary
collapse
- VERSION =
"0.1.0"
- SUFFIX =
"Crow"
Instance Method Summary
collapse
Instance Method Details
#authorize(record, query) ⇒ Object
45
46
47
48
49
50
51
|
# File 'lib/crows.rb', line 45
def authorize(record, query)
crow = crow(record)
unless crow.public_send(query)
raise NotAuthorizedError.new(query: query, record: record)
end
true
end
|
#crow(record) ⇒ Object
34
35
36
37
38
|
# File 'lib/crows.rb', line 34
def crow(record)
instance = find_crowclass(record).new(crow_user, record)
crows[record] = instance unless record.is_a? Class
instance
end
|
#crow_scope(klass) ⇒ Object
40
41
42
43
|
# File 'lib/crows.rb', line 40
def crow_scope(klass)
crows_scope[klass] = crow(klass)
crows_scope[klass].resolve
end
|
#crow_user ⇒ Object
53
54
55
|
# File 'lib/crows.rb', line 53
def crow_user
current_user
end
|
#crows ⇒ Object
57
58
59
|
# File 'lib/crows.rb', line 57
def crows
@crows ||= {}
end
|
#crows_scope ⇒ Object
61
62
63
|
# File 'lib/crows.rb', line 61
def crows_scope
@crows_scope ||= {}
end
|