protobuf-activerecord 1.2.3 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,9 +26,7 @@ module Protoable
26
26
  fields = proto.to_hash
27
27
  fields.select! { |key, value| proto.has_field?(key) && !proto.get_field_by_name(key).repeated? }
28
28
 
29
- attributes = self.new.attributes.keys - protected_attributes.to_a
30
-
31
- attribute_fields = attributes.inject({}) do |hash, column_name|
29
+ attribute_fields = _filtered_attributes.inject({}) do |hash, column_name|
32
30
  symbolized_column = column_name.to_sym
33
31
 
34
32
  if fields.has_key?(symbolized_column) ||
@@ -42,6 +40,17 @@ module Protoable
42
40
  attribute_fields
43
41
  end
44
42
 
43
+ # Filters protected attributes from the available attributes list. When
44
+ # set through accessible attributes, returns the accessible attributes.
45
+ # When set through protected attributes, returns the attributes minus any
46
+ # protected attributes.
47
+ #
48
+ def _filtered_attributes
49
+ return accessible_attributes.to_a if accessible_attributes.present?
50
+
51
+ return self.new.attributes.keys - protected_attributes.to_a
52
+ end
53
+
45
54
  # Creates a hash of attributes from a given protobuf message.
46
55
  #
47
56
  # It converts and transforms field values using the field converters and
@@ -53,7 +62,7 @@ module Protoable
53
62
  attributes = attribute_fields.inject({}) do |hash, (key, value)|
54
63
  if _protobuf_attribute_transformers.has_key?(key)
55
64
  attribute = _protobuf_attribute_transformers[key].call(proto)
56
- hash[key] = attribute unless attribute.nil?
65
+ hash[key] = attribute unless attribute.nil?
57
66
  else
58
67
  hash[key] = _protobuf_convert_fields_to_columns(key, value)
59
68
  end
@@ -1,5 +1,5 @@
1
1
  module Protobuf
2
2
  module ActiveRecord
3
- VERSION = "1.2.3"
3
+ VERSION = "1.2.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protobuf-activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-30 00:00:00.000000000 Z
12
+ date: 2013-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -240,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
240
  version: '0'
241
241
  segments:
242
242
  - 0
243
- hash: 809179384880852836
243
+ hash: 811709440297212247
244
244
  required_rubygems_version: !ruby/object:Gem::Requirement
245
245
  none: false
246
246
  requirements:
@@ -249,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
249
249
  version: '0'
250
250
  segments:
251
251
  - 0
252
- hash: 809179384880852836
252
+ hash: 811709440297212247
253
253
  requirements: []
254
254
  rubyforge_project:
255
255
  rubygems_version: 1.8.24