flexible_accessibility 0.3.4 → 0.3.7

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ac50d41b922cf00aec741014a9e7c0f03db55a64
4
+ data.tar.gz: 52422cb39013ba81cb78180d8550fa7750490cf8
5
+ SHA512:
6
+ metadata.gz: 7709cb56418905082c53873f47cb587c624f9a2568d85337a4240c93e3041136f5364028b58b7eca9375d534f0df2378a9fda689d2d5c057dc8c6c5d8b51fde9
7
+ data.tar.gz: 68fbf3dd786d7a8f182b83414363e7671e705c3632c5b7609110f6c25be7478fd589e07a640bd54ab5128dea6e1fb3c5533d95cb1203bcf4fbdc6b2342b6b9f6
data/README.md CHANGED
@@ -2,6 +2,8 @@ Flexible Accessibility
2
2
 
3
3
  A simple library for setting access rules, based on analysis of current resources (e.g. controllers (with namespaces) and actions) that exists in application.
4
4
 
5
+ [![Code Climate](https://codeclimate.com/github/7Pikes/flexible_accessibility.png)](https://codeclimate.com/github/7Pikes/flexible_accessibility)
6
+
5
7
  Installation:
6
8
 
7
9
  gem install flexible_accessibility
@@ -2,9 +2,9 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'flexible_accessibility'
5
- s.version = '0.3.4'
5
+ s.version = '0.3.7'
6
6
  s.authors = ['Sergey Avanesov']
7
- s.date = '2014-01-14'
7
+ s.date = '2014-05-27'
8
8
  s.summary = 'Flexible access control system'
9
9
  s.description = 'Flexible access control system for your rails application. Based on analysis of controller actions'
10
10
  s.email = 'sergey.awanesov@gmail.com'
@@ -12,15 +12,16 @@ module FlexibleAccessibility
12
12
  arguments = parse_arguments(args)
13
13
  validate_arguments(arguments)
14
14
  available_routes = Utils.new.app_routes[self.to_s.gsub(/Controller/, '')]
15
- available_routes = available_routes.to_set unless available_routes.nil?
16
- unless available_routes.nil?
17
- self.instance_variable_set(:@_verifiable_routes, available_routes) if arguments[:all]
18
- self.instance_variable_set(:@_verifiable_routes, arguments[:only]) unless arguments[:only].nil?
19
- self.instance_variable_set(:@_verifiable_routes, available_routes - arguments[:except]) unless arguments[:except].nil?
20
- unless arguments[:skip].nil?
21
- non_verifiable_routes = arguments[:skip].first == 'all' ? available_routes : arguments[:skip]
22
- self.instance_variable_set(:@_non_verifiable_routes, non_verifiable_routes)
23
- end
15
+ # available_routes = self.action_methods if available_routes.nil?
16
+ raise NoWayToDetectAvailableRoutesException if available_routes.nil?
17
+
18
+ self.instance_variable_set(:@_verifiable_routes, available_routes) if arguments[:all]
19
+ self.instance_variable_set(:@_verifiable_routes, arguments[:only]) unless arguments[:only].nil?
20
+ self.instance_variable_set(:@_verifiable_routes, available_routes - arguments[:except]) unless arguments[:except].nil?
21
+
22
+ unless arguments[:skip].nil?
23
+ non_verifiable_routes = arguments[:skip].first == 'all' ? available_routes : arguments[:skip]
24
+ self.instance_variable_set(:@_non_verifiable_routes, non_verifiable_routes)
24
25
  end
25
26
  end
26
27
 
@@ -88,4 +88,13 @@ module FlexibleAccessibility
88
88
  nil
89
89
  end
90
90
  end
91
+
92
+ class NoWayToDetectAvailableRoutesException < FlexibleAccessibilityException
93
+
94
+ private
95
+
96
+ def default_message
97
+ 'No way to detect an available routes'
98
+ end
99
+ end
91
100
  end
@@ -13,13 +13,14 @@ module FlexibleAccessibility
13
13
 
14
14
  def app_routes
15
15
  app_routes_as_hash if @@routes.empty?
16
- @@routes
16
+ @@routes.to_set
17
17
  end
18
18
 
19
19
  private
20
20
  # All controller classes placed in :default scope
21
21
  def app_controllers_recursive(path)
22
- (Dir.entries(path) - ['..', '.']).each do |entry|
22
+ invalid_entries = ['..', '.', 'concerns']
23
+ (Dir.entries(path) - invalid_entries).each do |entry|
23
24
  if File.directory?(path + entry)
24
25
  app_controllers_recursive(path + entry + '/')
25
26
  else
@@ -36,6 +37,7 @@ module FlexibleAccessibility
36
37
 
37
38
  # Routes from routes.rb
38
39
  def app_routes_as_hash
40
+ Rails.application.reload_routes!
39
41
  Rails.application.routes.routes.each do |route|
40
42
  controller = route.defaults[:controller]
41
43
  unless controller.nil?
metadata CHANGED
@@ -1,80 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexible_accessibility
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.3.4
4
+ version: 0.3.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sergey Avanesov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-14 00:00:00.000000000 Z
11
+ date: 2014-05-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- prerelease: false
16
- type: :development
14
+ name: i18n
17
15
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
16
  requirements:
20
- - - ! '>='
17
+ - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: '0'
20
+ type: :development
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
- none: false
25
23
  requirements:
26
- - - ! '>='
24
+ - - ">="
27
25
  - !ruby/object:Gem::Version
28
26
  version: '0'
29
- name: i18n
30
27
  - !ruby/object:Gem::Dependency
31
- prerelease: false
32
- type: :development
28
+ name: rdoc
33
29
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
30
  requirements:
36
- - - ! '>='
31
+ - - ">="
37
32
  - !ruby/object:Gem::Version
38
33
  version: '0'
34
+ type: :development
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
- none: false
41
37
  requirements:
42
- - - ! '>='
38
+ - - ">="
43
39
  - !ruby/object:Gem::Version
44
40
  version: '0'
45
- name: rdoc
46
41
  - !ruby/object:Gem::Dependency
47
- prerelease: false
48
- type: :development
42
+ name: rspec
49
43
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
44
  requirements:
52
- - - ! '>='
45
+ - - ">="
53
46
  - !ruby/object:Gem::Version
54
47
  version: '0'
48
+ type: :development
49
+ prerelease: false
55
50
  version_requirements: !ruby/object:Gem::Requirement
56
- none: false
57
51
  requirements:
58
- - - ! '>='
52
+ - - ">="
59
53
  - !ruby/object:Gem::Version
60
54
  version: '0'
61
- name: rspec
62
55
  - !ruby/object:Gem::Dependency
63
- prerelease: false
64
- type: :development
56
+ name: bundler
65
57
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
58
  requirements:
68
- - - ! '>='
59
+ - - ">="
69
60
  - !ruby/object:Gem::Version
70
61
  version: '0'
62
+ type: :development
63
+ prerelease: false
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
- none: false
73
65
  requirements:
74
- - - ! '>='
66
+ - - ">="
75
67
  - !ruby/object:Gem::Version
76
68
  version: '0'
77
- name: bundler
78
69
  description: Flexible access control system for your rails application. Based on analysis
79
70
  of controller actions
80
71
  email: sergey.awanesov@gmail.com
@@ -82,7 +73,7 @@ executables: []
82
73
  extensions: []
83
74
  extra_rdoc_files: []
84
75
  files:
85
- - .gitignore
76
+ - ".gitignore"
86
77
  - Gemfile
87
78
  - Gemfile.lock
88
79
  - LICENSE.txt
@@ -107,27 +98,26 @@ files:
107
98
  homepage: http://github.com/mochnatiy/flexible_accessibility
108
99
  licenses:
109
100
  - MIT
101
+ metadata: {}
110
102
  post_install_message:
111
103
  rdoc_options: []
112
104
  require_paths:
113
105
  - lib
114
106
  required_ruby_version: !ruby/object:Gem::Requirement
115
- none: false
116
107
  requirements:
117
- - - ! '>='
108
+ - - ">="
118
109
  - !ruby/object:Gem::Version
119
110
  version: '0'
120
111
  required_rubygems_version: !ruby/object:Gem::Requirement
121
- none: false
122
112
  requirements:
123
- - - ! '>'
113
+ - - ">"
124
114
  - !ruby/object:Gem::Version
125
115
  version: 1.3.1
126
116
  requirements: []
127
117
  rubyforge_project:
128
- rubygems_version: 1.8.23
118
+ rubygems_version: 2.2.2
129
119
  signing_key:
130
- specification_version: 3
120
+ specification_version: 4
131
121
  summary: Flexible access control system
132
122
  test_files:
133
123
  - test/helper.rb