guachiman 0.1.2 → 0.1.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 24c4933a403cafbadec8a89d9d4c97fcc60363a1
4
+ data.tar.gz: f7105a30e32169f70009ba9e7035859ae35440c9
5
+ SHA512:
6
+ metadata.gz: 700a5be51edeec2700bc4c584856e65e9a9ac5696c6ae1dcdc6f4ed3b0f8467eb55d83402a74d903685c9a70ea0b950c515d3b49df03de45dc3304e6606cafa0
7
+ data.tar.gz: c91922b1e2b61f69a3b10a4789f74371d02023b0d58597417c95f4f5c3df019f1560101352bb266f2ed9a6aec319b52d0ce8e5417823567458ac7c67dde336de
data/README.md CHANGED
@@ -22,4 +22,69 @@ Or install it yourself as:
22
22
  Usage
23
23
  -----
24
24
 
25
- TODO: Write usage instructions here
25
+ Include it in your `Gemfile`
26
+
27
+ ```ruby
28
+ gem 'guachiman'
29
+ ```
30
+
31
+ Run `bundle install`
32
+
33
+ Run `rails g guachiman:install`
34
+
35
+ This will generate a `Permission.rb` file in `app/models`.
36
+
37
+ Include `Guachiman::Permissible` in `ApplicationController` and implemente a `current_user` method there.
38
+
39
+ ```ruby
40
+ include Guachiman::Permissible
41
+
42
+ def current_user
43
+ @current_user ||= User.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
44
+ end
45
+ ```
46
+
47
+ That's it, now you can describe your permissions in this way:
48
+
49
+ ```ruby
50
+ class Permission
51
+ include Guachiman::Permissions
52
+ include Guachiman::Params
53
+
54
+ attr_reader :user
55
+
56
+ def initialize current_user
57
+ @user = current_user
58
+
59
+ if user.nil?
60
+ guest
61
+ elsif user.admin?
62
+ admin
63
+ else
64
+ member
65
+ end
66
+ end
67
+
68
+ private
69
+
70
+ def guest
71
+ allow :sessions, [:new, :create, :destroy]
72
+ allow :identities, [:new, :create]
73
+ allow :passwords, [:new, :create]
74
+
75
+ allow_param :user, [:name, :email, :password]
76
+ end
77
+
78
+ def member
79
+ guest
80
+ allow :identities, [:show, :edit, :update]
81
+ allow :passwords, [:edit, :update]
82
+ end
83
+
84
+ def admin
85
+ allow_all!
86
+ end
87
+ end
88
+ ```
89
+
90
+ The method `allow` takes a controller params key and an array of actions. The method `allow_param` takes a model params key and an array of attributes. The method `allow_all!` is a convinience method to allow all controlles, actions and parameteres.
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_dependency 'railties', '>= 3.2'
21
- spec.add_dependency 'activerecord', '>= 3.2'
20
+ spec.add_dependency 'railties', '>= 3.0'
21
+ spec.add_dependency 'activerecord', '>= 3.0'
22
22
  spec.add_dependency 'strong_parameters', '>= 0.2.1'
23
23
  spec.add_development_dependency 'minitest'
24
24
  spec.add_development_dependency 'minitest-focus'
@@ -1,3 +1,3 @@
1
1
  module Guachiman
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guachiman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Francesco Rodriguez
@@ -10,92 +9,81 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-06-06 00:00:00.000000000 Z
12
+ date: 2013-07-09 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: railties
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
- version: '3.2'
20
+ version: '3.0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
- version: '3.2'
27
+ version: '3.0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: activerecord
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
- version: '3.2'
34
+ version: '3.0'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
- version: '3.2'
41
+ version: '3.0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: strong_parameters
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: 0.2.1
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '>='
61
54
  - !ruby/object:Gem::Version
62
55
  version: 0.2.1
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: minitest
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: minitest-focus
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - '>='
85
75
  - !ruby/object:Gem::Version
86
76
  version: '0'
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - '>='
93
82
  - !ruby/object:Gem::Version
94
83
  version: '0'
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: bundler
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -111,21 +98,19 @@ dependencies:
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: rake
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
- - - ! '>='
102
+ - - '>='
117
103
  - !ruby/object:Gem::Version
118
104
  version: '0'
119
105
  type: :development
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
- - - ! '>='
109
+ - - '>='
125
110
  - !ruby/object:Gem::Version
126
111
  version: '0'
127
- description: ! 'Basic authorization library based on Ryan Bates'' Railscasts #385
128
- and #386'
112
+ description: 'Basic authorization library based on Ryan Bates'' Railscasts #385 and
113
+ #386'
129
114
  email:
130
115
  - lrodriguezsanc@gmail.com
131
116
  - gustavo@epiclabs.pe
@@ -152,27 +137,26 @@ files:
152
137
  homepage: https://github.com/epiclabs/guachiman
153
138
  licenses:
154
139
  - MIT
140
+ metadata: {}
155
141
  post_install_message:
156
142
  rdoc_options: []
157
143
  require_paths:
158
144
  - lib
159
145
  required_ruby_version: !ruby/object:Gem::Requirement
160
- none: false
161
146
  requirements:
162
- - - ! '>='
147
+ - - '>='
163
148
  - !ruby/object:Gem::Version
164
149
  version: '0'
165
150
  required_rubygems_version: !ruby/object:Gem::Requirement
166
- none: false
167
151
  requirements:
168
- - - ! '>='
152
+ - - '>='
169
153
  - !ruby/object:Gem::Version
170
154
  version: '0'
171
155
  requirements: []
172
156
  rubyforge_project:
173
- rubygems_version: 1.8.23
157
+ rubygems_version: 2.0.3
174
158
  signing_key:
175
- specification_version: 3
159
+ specification_version: 4
176
160
  summary: Basic authorization library
177
161
  test_files:
178
162
  - test/generators/install_generator_test.rb