abilities 4.0.0.1 → 5.1.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +1 -3
  5. data/lib/abilities/definitions.rb +3 -3
  6. data/lib/abilities/version.rb +1 -1
  7. metadata +12 -114
  8. data/test/dummy/Rakefile +0 -5
  9. data/test/dummy/app/assets/javascripts/application.js +0 -13
  10. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  11. data/test/dummy/app/controllers/application_controller.rb +0 -5
  12. data/test/dummy/app/controllers/products_controller.rb +0 -10
  13. data/test/dummy/app/helpers/application_helper.rb +0 -2
  14. data/test/dummy/app/models/product.rb +0 -2
  15. data/test/dummy/app/models/user.rb +0 -2
  16. data/test/dummy/app/views/layouts/application.html.erb +0 -12
  17. data/test/dummy/app/views/products/show.html.erb +0 -6
  18. data/test/dummy/bin/bundle +0 -4
  19. data/test/dummy/bin/rails +0 -5
  20. data/test/dummy/bin/rake +0 -5
  21. data/test/dummy/bin/setup +0 -30
  22. data/test/dummy/config.ru +0 -4
  23. data/test/dummy/config/abilities.rb +0 -9
  24. data/test/dummy/config/application.rb +0 -25
  25. data/test/dummy/config/boot.rb +0 -5
  26. data/test/dummy/config/database.yml +0 -10
  27. data/test/dummy/config/database.yml.travis +0 -3
  28. data/test/dummy/config/environment.rb +0 -5
  29. data/test/dummy/config/environments/development.rb +0 -41
  30. data/test/dummy/config/environments/production.rb +0 -79
  31. data/test/dummy/config/environments/test.rb +0 -42
  32. data/test/dummy/config/initializers/assets.rb +0 -11
  33. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  34. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  35. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  36. data/test/dummy/config/initializers/inflections.rb +0 -16
  37. data/test/dummy/config/initializers/mime_types.rb +0 -4
  38. data/test/dummy/config/initializers/session_store.rb +0 -3
  39. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  40. data/test/dummy/config/locales/en.yml +0 -23
  41. data/test/dummy/config/routes.rb +0 -3
  42. data/test/dummy/config/secrets.yml +0 -22
  43. data/test/dummy/db/migrate/20140629203344_create_users.rb +0 -9
  44. data/test/dummy/db/migrate/20140629203412_create_products.rb +0 -7
  45. data/test/dummy/db/schema.rb +0 -30
  46. data/test/dummy/log/development.log +0 -116
  47. data/test/dummy/log/test.log +0 -1593
  48. data/test/dummy/public/404.html +0 -61
  49. data/test/dummy/public/422.html +0 -61
  50. data/test/dummy/public/500.html +0 -60
  51. data/test/dummy/public/favicon.ico +0 -0
  52. data/test/generator_test.rb +0 -18
  53. data/test/policy_test.rb +0 -62
  54. data/test/test_helper.rb +0 -13
  55. data/test/view_test.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d2b3fe08754ba1f9e6d43a9eee1790dcc7ca1b2
4
- data.tar.gz: 4d4e9776d15a3ad3191a7cc248c85ebb920e45ac
3
+ metadata.gz: '02385ef924edfd9e1d8e8501dc7e6fdb1cf3a3fa'
4
+ data.tar.gz: 6ed43c0b838a38cefa66274b927628ff683ae4e2
5
5
  SHA512:
6
- metadata.gz: 9cf4e7e09dccbc087eef755e6dbba20d6e81a4123119a3219b2f44e25f38bb0a9ee2b7d7f25bc0e20f4bcd2c301b0d3904976860fd95f15bfb2af9fb285b127c
7
- data.tar.gz: 85631790ae7550bfddcb39eaeb7485e97ec69f4043258ba2f5bd39f360c67053956e1ceacc7d9a431c561eddd1da6a59e777b08da12e19a1189a8f1d9083b3b7
6
+ metadata.gz: d5b08572917c126bd3d7cff2fd42426893dcfaa6f263fddaf08926fa66e19167e7b573813e83cf25f520dd2dfaa8ba1d49d4cb521653007312247a1aff6e37c6
7
+ data.tar.gz: 47d803193d68334ccaa49cf11cfc2c41da5ab20f4ed2a36bb0f06ee8905d7bbd2951b80d8c6f402faaec6c8beae1600e168c0664afa279326dec31fcf741b515
@@ -1,4 +1,4 @@
1
- Copyright 2016 Mathías Montossi
1
+ Copyright 2017 Mathías Montossi
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -98,7 +98,7 @@ The helpers can? and cannot? are available in the controller views too:
98
98
 
99
99
  Any issue, pull request, comment of any kind is more than welcome!
100
100
 
101
- I will mainly ensure compatibility to PostgreSQL, AWS, Redis, Elasticsearch, FreeBSD and Memcached. 
101
+ I will mainly ensure compatibility to Rails, AWS, PostgreSQL, Redis, Elasticsearch and FreeBSD.
102
102
 
103
103
  ## Credits
104
104
 
data/Rakefile CHANGED
@@ -4,16 +4,14 @@ rescue LoadError
4
4
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
5
  end
6
6
 
7
- Bundler::GemHelper.install_tasks
7
+ require 'bundler/gem_tasks'
8
8
 
9
9
  require 'rake/testtask'
10
10
 
11
11
  Rake::TestTask.new(:test) do |t|
12
- t.libs << 'lib'
13
12
  t.libs << 'test'
14
13
  t.pattern = 'test/**/*_test.rb'
15
14
  t.verbose = false
16
- t.warning = false
17
15
  end
18
16
 
19
17
  task default: :test
@@ -9,7 +9,7 @@ module Abilities
9
9
  end
10
10
 
11
11
  def can?(action, resource)
12
- id = resource_id(resource)
12
+ id = normalize_id(resource)
13
13
  if id != :any && can?(action, :any)
14
14
  true
15
15
  elsif actions = registry[id]
@@ -40,7 +40,7 @@ module Abilities
40
40
  end
41
41
  resources.each do |resource|
42
42
  actions.each do |action|
43
- id = resource_id(resource)
43
+ id = normalize_id(resource)
44
44
  registry[id] ||= {}
45
45
  registry[id][action] = policy
46
46
  end
@@ -53,7 +53,7 @@ module Abilities
53
53
  @registry ||= {}
54
54
  end
55
55
 
56
- def resource_id(resource)
56
+ def normalize_id(resource)
57
57
  case resource
58
58
  when :any
59
59
  resource
@@ -1,5 +1,5 @@
1
1
  module Abilities
2
2
 
3
- VERSION = '4.0.0.1'
3
+ VERSION = '5.1.0'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,52 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abilities
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.1
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mmontossi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-14 00:00:00.000000000 Z
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 4.2.0
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: 4.3.0
19
+ version: '5.1'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 4.2.0
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: 4.3.0
26
+ version: '5.1'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: pg
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '0.18'
33
+ version: '0.21'
40
34
  type: :development
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: '0.18'
40
+ version: '0.21'
47
41
  description: Authorization dsl to manage permissions in rails.
48
42
  email:
49
- - mmontossi@gmail.com
43
+ - mmontossi@museways.com
50
44
  executables: []
51
45
  extensions: []
52
46
  extra_rdoc_files: []
@@ -63,54 +57,6 @@ files:
63
57
  - lib/abilities/version.rb
64
58
  - lib/generators/abilities/install/install_generator.rb
65
59
  - lib/generators/abilities/install/templates/configuration.rb
66
- - test/dummy/Rakefile
67
- - test/dummy/app/assets/javascripts/application.js
68
- - test/dummy/app/assets/stylesheets/application.css
69
- - test/dummy/app/controllers/application_controller.rb
70
- - test/dummy/app/controllers/products_controller.rb
71
- - test/dummy/app/helpers/application_helper.rb
72
- - test/dummy/app/models/product.rb
73
- - test/dummy/app/models/user.rb
74
- - test/dummy/app/views/layouts/application.html.erb
75
- - test/dummy/app/views/products/show.html.erb
76
- - test/dummy/bin/bundle
77
- - test/dummy/bin/rails
78
- - test/dummy/bin/rake
79
- - test/dummy/bin/setup
80
- - test/dummy/config.ru
81
- - test/dummy/config/abilities.rb
82
- - test/dummy/config/application.rb
83
- - test/dummy/config/boot.rb
84
- - test/dummy/config/database.yml
85
- - test/dummy/config/database.yml.travis
86
- - test/dummy/config/environment.rb
87
- - test/dummy/config/environments/development.rb
88
- - test/dummy/config/environments/production.rb
89
- - test/dummy/config/environments/test.rb
90
- - test/dummy/config/initializers/assets.rb
91
- - test/dummy/config/initializers/backtrace_silencers.rb
92
- - test/dummy/config/initializers/cookies_serializer.rb
93
- - test/dummy/config/initializers/filter_parameter_logging.rb
94
- - test/dummy/config/initializers/inflections.rb
95
- - test/dummy/config/initializers/mime_types.rb
96
- - test/dummy/config/initializers/session_store.rb
97
- - test/dummy/config/initializers/wrap_parameters.rb
98
- - test/dummy/config/locales/en.yml
99
- - test/dummy/config/routes.rb
100
- - test/dummy/config/secrets.yml
101
- - test/dummy/db/migrate/20140629203344_create_users.rb
102
- - test/dummy/db/migrate/20140629203412_create_products.rb
103
- - test/dummy/db/schema.rb
104
- - test/dummy/log/development.log
105
- - test/dummy/log/test.log
106
- - test/dummy/public/404.html
107
- - test/dummy/public/422.html
108
- - test/dummy/public/500.html
109
- - test/dummy/public/favicon.ico
110
- - test/generator_test.rb
111
- - test/policy_test.rb
112
- - test/test_helper.rb
113
- - test/view_test.rb
114
60
  homepage: https://github.com/mmontossi/abilities
115
61
  licenses:
116
62
  - MIT
@@ -123,7 +69,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
69
  requirements:
124
70
  - - ">="
125
71
  - !ruby/object:Gem::Version
126
- version: 2.1.0
72
+ version: '0'
127
73
  required_rubygems_version: !ruby/object:Gem::Requirement
128
74
  requirements:
129
75
  - - ">="
@@ -131,56 +77,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
77
  version: '0'
132
78
  requirements: []
133
79
  rubyforge_project:
134
- rubygems_version: 2.5.1
80
+ rubygems_version: 2.6.11
135
81
  signing_key:
136
82
  specification_version: 4
137
83
  summary: Abilities for rails.
138
- test_files:
139
- - test/dummy/app/assets/javascripts/application.js
140
- - test/dummy/app/assets/stylesheets/application.css
141
- - test/dummy/app/controllers/application_controller.rb
142
- - test/dummy/app/controllers/products_controller.rb
143
- - test/dummy/app/helpers/application_helper.rb
144
- - test/dummy/app/models/product.rb
145
- - test/dummy/app/models/user.rb
146
- - test/dummy/app/views/layouts/application.html.erb
147
- - test/dummy/app/views/products/show.html.erb
148
- - test/dummy/bin/bundle
149
- - test/dummy/bin/rails
150
- - test/dummy/bin/rake
151
- - test/dummy/bin/setup
152
- - test/dummy/config/abilities.rb
153
- - test/dummy/config/application.rb
154
- - test/dummy/config/boot.rb
155
- - test/dummy/config/database.yml
156
- - test/dummy/config/database.yml.travis
157
- - test/dummy/config/environment.rb
158
- - test/dummy/config/environments/development.rb
159
- - test/dummy/config/environments/production.rb
160
- - test/dummy/config/environments/test.rb
161
- - test/dummy/config/initializers/assets.rb
162
- - test/dummy/config/initializers/backtrace_silencers.rb
163
- - test/dummy/config/initializers/cookies_serializer.rb
164
- - test/dummy/config/initializers/filter_parameter_logging.rb
165
- - test/dummy/config/initializers/inflections.rb
166
- - test/dummy/config/initializers/mime_types.rb
167
- - test/dummy/config/initializers/session_store.rb
168
- - test/dummy/config/initializers/wrap_parameters.rb
169
- - test/dummy/config/locales/en.yml
170
- - test/dummy/config/routes.rb
171
- - test/dummy/config/secrets.yml
172
- - test/dummy/config.ru
173
- - test/dummy/db/migrate/20140629203344_create_users.rb
174
- - test/dummy/db/migrate/20140629203412_create_products.rb
175
- - test/dummy/db/schema.rb
176
- - test/dummy/log/development.log
177
- - test/dummy/log/test.log
178
- - test/dummy/public/404.html
179
- - test/dummy/public/422.html
180
- - test/dummy/public/500.html
181
- - test/dummy/public/favicon.ico
182
- - test/dummy/Rakefile
183
- - test/generator_test.rb
184
- - test/policy_test.rb
185
- - test/test_helper.rb
186
- - test/view_test.rb
84
+ test_files: []
@@ -1,5 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require File.expand_path('../config/application', __FILE__)
5
- Rails.application.load_tasks
@@ -1,13 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require_tree .
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any styles
10
- * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
- * file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */
@@ -1,5 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- # Prevent CSRF attacks by raising an exception.
3
- # For APIs, you may want to use :null_session instead.
4
- protect_from_forgery with: :exception
5
- end
@@ -1,10 +0,0 @@
1
- class ProductsController < ApplicationController
2
-
3
- attr_accessor :current_user
4
-
5
- def show
6
- @current_user = User.new
7
- @product = Product.new
8
- end
9
-
10
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,2 +0,0 @@
1
- class Product < ActiveRecord::Base
2
- end
@@ -1,2 +0,0 @@
1
- class User < ActiveRecord::Base
2
- end
@@ -1,12 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Dummy</title>
5
- <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
- <%= yield %>
11
- </body>
12
- </html>
@@ -1,6 +0,0 @@
1
- <% if can?(:touch, @product) %>
2
- <a href="#">Touch</a>
3
- <% end %>
4
- <% if cannot?(:destroy, @product) %>
5
- <a href="#">Destroy</a>
6
- <% end %>
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
4
- load Gem.bin_path('bundler', 'bundle')
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- APP_PATH = File.expand_path('../../config/application', __FILE__)
4
- require_relative '../config/boot'
5
- require 'rails/commands'
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../config/boot'
4
- require 'rake'
5
- Rake.application.run
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'pathname'
4
-
5
- # path to your application root.
6
- APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
7
-
8
- Dir.chdir APP_ROOT do
9
- # This script is a starting point to setup your application.
10
- # Add necessary setup steps to this file:
11
-
12
- puts '== Installing dependencies =='
13
- system 'gem install bundler --conservative'
14
- system 'bundle check || bundle install'
15
-
16
- # puts "\n== Copying sample files =="
17
- # unless File.exist?('config/database.yml')
18
- # system 'cp config/database.yml.sample config/database.yml'
19
- # end
20
-
21
- puts "\n== Preparing database =="
22
- system 'bin/rake db:setup'
23
-
24
- puts "\n== Removing old logs and tempfiles =="
25
- system 'rm -f log/*'
26
- system 'rm -rf tmp/cache'
27
-
28
- puts "\n== Restarting application server =="
29
- system 'touch tmp/restart.txt'
30
- end
@@ -1,4 +0,0 @@
1
- # This file is used by Rack-based servers to start the application.
2
-
3
- require ::File.expand_path('../config/environment', __FILE__)
4
- run Rails.application
@@ -1,9 +0,0 @@
1
- Abilities.define do
2
- can :touch, :any
3
- can :manage, User do |user|
4
- user == self
5
- end
6
- can :create, [Product, User]
7
- can %i(view list), Product
8
- cannot :detroy, Product unless admin?
9
- end
@@ -1,25 +0,0 @@
1
- require File.expand_path('../boot', __FILE__)
2
-
3
- require 'rails/all'
4
-
5
- Bundler.require(*Rails.groups)
6
- require 'abilities'
7
-
8
- module Dummy
9
- class Application < Rails::Application
10
- # Settings in config/environments/* take precedence over those specified here.
11
- # Application configuration should go into files in config/initializers
12
- # -- all .rb files in that directory are automatically loaded.
13
-
14
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
15
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
16
- # config.time_zone = 'Central Time (US & Canada)'
17
-
18
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20
- # config.i18n.default_locale = :de
21
-
22
- # Do not swallow errors in after_commit/after_rollback callbacks.
23
- config.active_record.raise_in_transactional_callbacks = true
24
- end
25
- end