mxrb 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/mxrb/ruby_app.rb CHANGED
@@ -720,6 +720,14 @@ module Mxrb
720
720
  value = keyword_value if value.nil? && !keyword_value.empty?
721
721
  if value.is_a?(Hash) && value['id'] && value['type']
722
722
  object = bridge.interpreter.store.find(value['type'].to_s, value['id'].to_s)
723
+ if !object && value['transient'] == true
724
+ object = Runtime::Native::ObjectValue.new(
725
+ entity: value['type'].to_s, id: value['id'].to_s, members: {}
726
+ )
727
+ value.fetch('attributes', {}).each do |member, member_value|
728
+ object.members[member.to_s] = deserialize(member_value, context:, synchronize:)
729
+ end
730
+ end
723
731
  raise NativeRuntimeError, "object #{value['type']} #{value['id']} not found" unless object
724
732
 
725
733
  value.fetch('attributes', {}).each do |member, member_value|
@@ -756,7 +764,7 @@ module Mxrb
756
764
  authorize_entity!(object.entity, :write, context, member:, record: object)
757
765
  object.members[member] = member_value
758
766
  end
759
- store.commit(object) if store.respond_to?(:commit)
767
+ store.commit(object) if value['transient'] != true && store.respond_to?(:commit)
760
768
  object
761
769
  end
762
770
  return apply.call unless store.respond_to?(:transaction)
data/lib/mxrb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mxrb
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mxrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Moura