Skip to content

Commit

Permalink
Add ActiveModel serialization to Model, closes #43
Browse files Browse the repository at this point in the history
  • Loading branch information
cgriego committed Nov 27, 2011
1 parent 5da617b commit 99df085
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,7 @@
# ActiveAttr 0.4.1 (unreleased) #

* Implemented ActiveModel serialization in Model

# ActiveAttr 0.4.0 (November 26, 2011) #

* Added Model
Expand Down
2 changes: 1 addition & 1 deletion lib/active_attr/logger.rb
Expand Up @@ -40,7 +40,7 @@ def self.logger=(new_logger)

included do
class_attribute :logger
self.logger = ActiveAttr::Logger.logger
self.logger = Logger.logger
end
end
end
9 changes: 9 additions & 0 deletions lib/active_attr/model.rb
Expand Up @@ -3,6 +3,7 @@
require "active_attr/logger"
require "active_attr/mass_assignment_security"
require "active_attr/query_attributes"
require "active_model"
require "active_support/concern"

module ActiveAttr
Expand All @@ -24,5 +25,13 @@ module Model
include Logger
include MassAssignmentSecurity
include QueryAttributes

if defined? ActiveModel::Serializable
include ActiveModel::Serializable::JSON
include ActiveModel::Serializable::XML
else
include ActiveModel::Serializers::JSON
include ActiveModel::Serializers::Xml
end
end
end
2 changes: 1 addition & 1 deletion lib/active_attr/version.rb
@@ -1,5 +1,5 @@
module ActiveAttr
# Complete version string
# @since 0.1.0
VERSION = "0.4.0"
VERSION = "0.4.1"
end
12 changes: 12 additions & 0 deletions spec/functional/active_attr/model_spec.rb
@@ -1,5 +1,7 @@
require "spec_helper"
require "active_attr/model"
require "active_support/core_ext/hash/conversions"
require "active_support/json/decoding"

module ActiveAttr
describe Model do
Expand Down Expand Up @@ -67,5 +69,15 @@ def self.name
it "does not use strict mass assignment" do
expect { subject.assign_attributes :middle_initial => "J" }.not_to raise_error
end

it "serializes to/from JSON" do
subject.first_name = "Chris"
model_class.new.from_json(subject.to_json).first_name.should == "Chris"
end

it "serializes to/from XML" do
subject.first_name = "Chris"
model_class.new.from_xml(subject.to_xml).first_name.should == "Chris"
end
end
end

0 comments on commit 99df085

Please sign in to comment.