guachiman 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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