Skip to content

Commit

Permalink
Allow resolving parameters using resolve values.
Browse files Browse the repository at this point in the history
  • Loading branch information
Cunnilingus committed Mar 5, 2015
1 parent 2c54ed9 commit 699d280
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
9 changes: 5 additions & 4 deletions lib/public_activity/common.rb
Expand Up @@ -247,10 +247,11 @@ def prepare_custom_fields(options)
# be serialized into the Activity#parameters column
# @api private
def prepare_parameters(parameters)
params = {}
params.merge!(self.class.activity_parameters_global)
.merge!(parameters || {})
params.each { |k, v| params[k] = PublicActivity.resolve_value(self, v) }
parameters ||= {}

[self.class.activity_parameters_global, parameters].reduce({}) do |params, value|
params.merge!(PublicActivity.resolve_value(self, value))
end
end

# Prepares relation to be saved
Expand Down
9 changes: 9 additions & 0 deletions test/test_common.rb
Expand Up @@ -71,6 +71,15 @@
subject.activities.last.nonstandard.must_equal "true"
end

it 'allows resolving parameters' do
subject.save
subject.expects(:custom_parameters).returns({ type: 'News' })

subject.create_activity :update, parameters: :custom_parameters

subject.activities.last.parameters[:type].must_equal 'News'
end

it 'accepts owner as a symbol' do
klass = article(:owner => :user)
@article = klass.new(:user => @owner)
Expand Down

0 comments on commit 699d280

Please sign in to comment.