flexible_accessibility 0.3.4 → 0.3.7

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