Module: KojacUtils
- Defined in:
- lib/kojac/kojac_rails.rb
Class Method Summary collapse
- .model_class_for_key(aKey) ⇒ Object
- .model_for_key(aKey) ⇒ Object
- .serializer_for(aObject) ⇒ Object
- .timestamp ⇒ Object
- .to_json(aObject, aOptions) ⇒ Object
- .to_jsono(aObject, aOptions = nil) ⇒ Object
- .upgrade_hashes_to_params(aValue) ⇒ Object
Class Method Details
.model_class_for_key(aKey) ⇒ Object
45 46 47 48 |
# File 'lib/kojac/kojac_rails.rb', line 45 def model_class_for_key(aKey) resource = aKey.split_kojac_key[0] resource.singularize.camelize.constantize rescue nil end |
.model_for_key(aKey) ⇒ Object
50 51 52 53 54 |
# File 'lib/kojac/kojac_rails.rb', line 50 def model_for_key(aKey) klass = KojacUtils.model_class_for_key(aKey) resource,id,assoc = aKey.split_kojac_key klass.find(id) rescue nil end |
.serializer_for(aObject) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/kojac/kojac_rails.rb', line 69 def serializer_for(aObject) return ::KojacBaseSerializer if aObject.is_a?(Hash) return ::ActiveModel::ArraySerializer if aObject.respond_to?(:to_ary) return ActiveModel::DefaultSerializer if KojacBaseSerializer::SERIALIZABLE_TYPES.include?(aObject.class) return aObject.send(:active_model_serializer) if aObject.respond_to?(:active_model_serializer) return aObject.class.send(:active_model_serializer) if aObject.class.respond_to?(:active_model_serializer) if sz_class = ActiveModel::Serializer.serializer_for(aObject) sz_class else aObject.respond_to?(:attributes) ? ::KojacBaseSerializer : ActiveModel::DefaultSerializer end end |
.timestamp ⇒ Object
65 66 67 |
# File 'lib/kojac/kojac_rails.rb', line 65 def Time.now.to_ms end |
.to_json(aObject, aOptions) ⇒ Object
94 95 96 97 98 |
# File 'lib/kojac/kojac_rails.rb', line 94 def to_json(aObject,aOptions) jsono = to_jsono(aObject,aOptions) result = jsono.to_json result end |
.to_jsono(aObject, aOptions = nil) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/kojac/kojac_rails.rb', line 82 def to_jsono(aObject,aOptions=nil) aOptions ||= {} if aObject.is_a?(Hash) or aObject.respond_to? :attributes serializer_for(aObject).new(aObject,aOptions).serializable_hash elsif aObject.respond_to?(:to_ary) && aObject.first # Array item_sz = serializer_for(aObject.first) ActiveModel::ArraySerializer.new(aObject,aOptions.merge(each_serializer: item_sz)).as_json(aOptions) else aObject.as_json(aOptions) end end |
.upgrade_hashes_to_params(aValue) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/kojac/kojac_rails.rb', line 56 def upgrade_hashes_to_params(aValue) if aValue.is_a? Hash aValue = ActionController::Parameters.new(aValue) unless aValue.is_a?(ActionController::Parameters) elsif aValue.is_a? Array aValue = aValue.map {|v| upgrade_hashes_to_params(v)} end aValue end |