burlesque 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -37,9 +37,9 @@ class Ability
37
37
  def initialize(user)
38
38
  if user
39
39
  user.roles.each do |role|
40
- action = role.name.split('_', 2).first
41
- model = role.name.split('_', 2).last.pluralize.classify.constantize
42
- can action.to_sym, model
40
+ action = role.action_sym
41
+ model = role.resource_class
42
+ can action, model
43
43
  end
44
44
  end
45
45
  end
@@ -29,4 +29,4 @@
29
29
  create: Crear
30
30
  update: Actualizar
31
31
  destroy: Eliminar
32
- manage: Administrar
32
+ manage: Administrar
@@ -52,13 +52,15 @@ module Burlesque
52
52
  # Public: Permite setear los grupos que se indican.
53
53
  # Eliminando los grupos que no esten en la lista.
54
54
  #
55
- # ids - id's de los Roles que se desean asignar destructivamente.
55
+ # ids - id's de los Grupos que se desean asignar destructivamente.
56
56
  #
57
57
  # Returns nothing.
58
58
  def group_ids=(ids)
59
59
  ids.each do |group_id|
60
- group = ::Group.find(group_id)
61
- self.groups << group unless self.groups.include?(group)
60
+ if group_id.presence
61
+ group = ::Group.find(group_id)
62
+ self.groups << group unless self.groups.include?(group)
63
+ end
62
64
  end
63
65
 
64
66
  to_deletes = []
@@ -80,8 +82,10 @@ module Burlesque
80
82
  # Returns nothing.
81
83
  def role_ids=(ids)
82
84
  ids.each do |role_id|
83
- role = ::Role.find(role_id)
84
- self.roles << role unless self.role?(role)
85
+ if role_id.presence
86
+ role = ::Role.find(role_id)
87
+ self.roles << role unless self.role?(role)
88
+ end
85
89
  end
86
90
 
87
91
  to_deletes = []
@@ -44,8 +44,10 @@ module Burlesque
44
44
  # Returns nothing.
45
45
  def role_ids=(ids)
46
46
  ids.each do |ri|
47
- role = ::Role.find(ri)
48
- self.roles << role unless self.roles.include? role
47
+ if ri.presence
48
+ role = ::Role.find(ri)
49
+ self.roles << role unless self.roles.include? role
50
+ end
49
51
  end
50
52
 
51
53
  to_deletes = []
@@ -15,10 +15,10 @@ module Burlesque
15
15
  validates :name, presence: true, uniqueness: true
16
16
 
17
17
 
18
- scope :action, lambda { |action| where('name LIKE ?', "#{action}_%") }
19
- scope :not_action, lambda { |action| where('name NOT LIKE ?', "#{action}_%") }
20
- scope :resource, lambda { |model| where('name LIKE ? or name LIKE ?', "%_#{model.to_s.singularize}", "%_#{model.to_s.pluralize}") }
21
- scope :not_resource, lambda { |model| where('name NOT LIKE ? AND name NOT LIKE ?', "%_#{model.to_s.singularize}", "%_#{model.to_s.pluralize}") }
18
+ scope :action, lambda { |action| where('name LIKE ?', "%##{action}") }
19
+ scope :not_action, lambda { |action| where('name NOT LIKE ?', "%##{action}") }
20
+ scope :resource, lambda { |model| where('name LIKE ?', "#{model.to_s}#%") }
21
+ scope :not_resource, lambda { |model| where('name NOT LIKE ?', "#{model.to_s}#%") }
22
22
  end
23
23
 
24
24
  module InstanceMethods
@@ -43,13 +43,28 @@ module Burlesque
43
43
  translate = I18n.t(name.to_sym, scope: :authorizations)
44
44
  return translate unless translate.include?('translation missing:')
45
45
 
46
+ translate = I18n.t(action_sym, scope: :authorizations) + ' ' + resource_class.model_name.human
47
+ end
46
48
 
47
- action, model = name.split('_', 2)
49
+ # Public: Entrega el recurso asociado al rol.
50
+ #
51
+ # Returns Constant.
52
+ def resource_class
53
+ name.split('#', 2).first.pluralize.classify.constantize
54
+ end
48
55
 
49
- count = (model == model.pluralize) ? 2 : 1
50
- model = model.pluralize
56
+ # Public: Entrega la accion asociada al rol.
57
+ #
58
+ # Returns Symbol.
59
+ def action_sym
60
+ name.split('#', 2).last.to_sym
61
+ end
51
62
 
52
- translate = I18n.t(action.to_sym, scope: :authorizations) + ' ' + model.classify.constantize.model_name.human(count: count)
63
+ # Public: Entrega la accion y modelo asociado al rol.
64
+ #
65
+ # Returns Symbol.
66
+ def get_action_and_model
67
+ [action_sym, resource_class]
53
68
  end
54
69
  end
55
70
 
@@ -66,11 +81,10 @@ module Burlesque
66
81
  end
67
82
 
68
83
  if resource
69
- self.create(name: "read_#{resource.pluralize}") unless self.where(name: "read_#{resource.pluralize}").any?
70
- self.create(name: "show_#{resource}") unless self.where(name: "show_#{resource}").any?
71
- self.create(name: "create_#{resource}") unless self.where(name: "create_#{resource}").any?
72
- self.create(name: "update_#{resource}") unless self.where(name: "update_#{resource}").any?
73
- self.create(name: "destroy_#{resource}") unless self.where(name: "destroy_#{resource}").any?
84
+ self.create(name: "#{resource}#read") unless self.where(name: "#{resource}#read" ).any?
85
+ self.create(name: "#{resource}#create") unless self.where(name: "#{resource}#create" ).any?
86
+ self.create(name: "#{resource}#update") unless self.where(name: "#{resource}#update" ).any?
87
+ self.create(name: "#{resource}#destroy") unless self.where(name: "#{resource}#destroy").any?
74
88
  else
75
89
  raise I18n.t('errors.messages.invalid_param', param: model.class)
76
90
  end
@@ -1,3 +1,3 @@
1
- module Burlesque
2
- VERSION = "0.0.2"
3
- end
1
+ module Burlesque
2
+ VERSION = "1.0.0"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: burlesque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-29 00:00:00.000000000 Z
12
+ date: 2013-07-25 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Crea estructura de roles y grupos para caulquier modelo, considera ademas
15
15
  las 3 tablas de join que pudiesen darse