cyrax 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmU2Yjk4MDY1NjM4YzEyZDRlYTUzNWEwOTc0MWI3MmUzMzk0YTA1Mw==
5
+ data.tar.gz: !binary |-
6
+ YTBkY2Q5MDljMGEwMmYzZWFjNzJjNTdjNjM4MDI0MzIzOTg2ODAwZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTMwNjQ5MDljODVjMzA5YjM0NWExYzBhNjZmZDcwMTZhMTRjOWMyZGFhNzYy
10
+ ZmFkNTY0YzBiMDhhMjllZGIxODI5MzVhOGExNzZkNGNhZDgyN2U0YjQwNjYy
11
+ MDExNDQ3NGUzY2IzNjcyY2Q5Nzk3MWJiMDE5MWUyMzUyOTU3ODA=
12
+ data.tar.gz: !binary |-
13
+ MDc4MWM2ZDFmNWEyNWQ4YjE0MDEwMzkyODdlMjliN2JlZGVkZGZlMjkyMjI0
14
+ YTk5YjIzYzFmMWEwN2VkMWU3ODU0OGRhYTQ1MTE5ZDJjNjVhYTJkMjAwYzJk
15
+ ZmIxOGFlYTRiMzkwNGE4ZTFhOWRmNzVmNDhjZGM4MDYxZDAyNzI=
data/lib/cyrax.rb CHANGED
@@ -11,4 +11,6 @@ require "cyrax/callbacks.rb"
11
11
  require "cyrax/decorator.rb"
12
12
 
13
13
  module Cyrax
14
+ mattr_accessor :strong_parameters
15
+ @@strong_parameters = false
14
16
  end
@@ -47,6 +47,15 @@ module Cyrax::Extensions
47
47
  end
48
48
 
49
49
  module ClassMethods
50
+ def accessible_attributes(*attrs)
51
+ if attrs.blank?
52
+ @accessible_attributes || []
53
+ else
54
+ @accessible_attributes ||= []
55
+ @accessible_attributes += attrs
56
+ end
57
+ end
58
+
50
59
  def resource(name, options = {})
51
60
  self.resource_name = name.to_s
52
61
  self.resource_class_name = options[:class_name]
@@ -55,7 +64,11 @@ module Cyrax::Extensions
55
64
 
56
65
  private
57
66
  def dirty_resource_attributes
58
- params[resource_name] || {}
67
+ if params.respond_to?(:require)
68
+ params.require(resource_name)
69
+ else
70
+ params[resource_name] || {}
71
+ end
59
72
  end
60
73
 
61
74
  def default_resource_attributes
@@ -63,7 +76,17 @@ module Cyrax::Extensions
63
76
  end
64
77
 
65
78
  def filter_attributes(attributes)
66
- attributes
79
+ if attributes.respond_to?(:permit)
80
+ attributes.permit(self.class.accessible_attributes)
81
+ else
82
+ if !Cyrax.strong_parameters && self.class.accessible_attributes.blank?
83
+ attributes
84
+ else
85
+ attributes.select do |key, value|
86
+ self.class.accessible_attributes.include?(key.to_sym)
87
+ end
88
+ end
89
+ end
67
90
  end
68
91
  end
69
92
  end
data/lib/cyrax/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cyrax
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -131,6 +131,10 @@ module Cyrax
131
131
  it 'should return supplied attributes by default' do
132
132
  subject.send(:filter_attributes, {foo: 'bar'}).should eq({foo: 'bar'})
133
133
  end
134
+ it 'should return blank attributes by default for strong_paramters=true' do
135
+ Cyrax.strong_parameters = true
136
+ subject.send(:filter_attributes, {foo: 'bar'}).should eq({})
137
+ end
134
138
  end
135
139
  end
136
140
 
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Droidlabs
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-16 00:00:00.000000000 Z
11
+ date: 2013-08-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: has_active_logger
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -93,27 +86,26 @@ files:
93
86
  homepage:
94
87
  licenses:
95
88
  - MIT
89
+ metadata: {}
96
90
  post_install_message:
97
91
  rdoc_options: []
98
92
  require_paths:
99
93
  - lib
100
94
  required_ruby_version: !ruby/object:Gem::Requirement
101
- none: false
102
95
  requirements:
103
96
  - - ! '>='
104
97
  - !ruby/object:Gem::Version
105
98
  version: '0'
106
99
  required_rubygems_version: !ruby/object:Gem::Requirement
107
- none: false
108
100
  requirements:
109
101
  - - ! '>='
110
102
  - !ruby/object:Gem::Version
111
103
  version: '0'
112
104
  requirements: []
113
105
  rubyforge_project:
114
- rubygems_version: 1.8.25
106
+ rubygems_version: 2.0.5
115
107
  signing_key:
116
- specification_version: 3
108
+ specification_version: 4
117
109
  summary: Small library for adding service layer to Rails projects
118
110
  test_files:
119
111
  - spec/cyrax/base_resource_spec.rb