lib/timber/contexts.rb in timber-2.6.2 vs lib/timber/contexts.rb in timber-3.0.0

- old
+ new

@@ -1,40 +1,12 @@ -require "timber/contexts/custom" require "timber/contexts/http" -require "timber/contexts/organization" require "timber/contexts/release" require "timber/contexts/runtime" require "timber/contexts/session" require "timber/contexts/system" require "timber/contexts/user" module Timber - # Namespace for all Timber supported Contexts. + # @private module Contexts - # Protocol for casting objects into a {Timber::Context}. - # - # @example Casting a hash - # Timber::Contexts.build(deploy: {version: "1.0.0"}) - def self.build(obj) - if obj.is_a?(::Timber::Context) - obj - elsif obj.respond_to?(:to_timber_context) - obj.to_timber_context - elsif obj.is_a?(Hash) && obj.length == 1 - type = obj.keys.first - data = obj.values.first - - Contexts::Custom.new( - type: type, - data: data - ) - elsif obj.is_a?(Struct) && obj.respond_to?(:type) - Contexts::Custom.new( - type: obj.type, - data: obj.respond_to?(:to_h) ? obj.to_h : Timber::Util::Struct.to_hash(obj) # ruby 1.9.3 does not have to_h - ) - else - nil - end - end end -end \ No newline at end of file +end