Sha256: ee1e60e9f06da821dd6172f5f33a9301a52dd00f02702ae78c659fecd13f70b7

Contents?: true

Size: 1.12 KB

Versions: 21

Compression:

Stored size: 1.12 KB

Contents

 require 'rugui/framework_adapters/base_framework_adapter'

module RuGUI
  module FrameworkAdapters
    module FrameworkAdapterSupport
      def framework_adapter_for(class_name)
        @framework_adapter ||= {}
        load_framework_adapter(class_name) unless @framework_adapter[class_name]
        @framework_adapter[class_name]
      end

      def load_framework_adapter(class_name)
        @framework_adapter[class_name] = class_adapter_for(class_name).new(self)
      end

      module CommonClassAndInstanceMethods
        def adapter_module_name(framework_adapter = RuGUI.configuration.framework_adapter)
          "RuGUI::FrameworkAdapters::#{framework_adapter.camelize}"
        end

        def class_adapter_for(class_name)
          "#{adapter_module_name}::#{class_name}".constantize
        rescue
          # Fallback to the base_framework_adapter.
          "#{adapter_module_name('base_framework_adapter')}::#{class_name}".constantize
        end
      end

      def self.included(base)
        base.send(:include, CommonClassAndInstanceMethods)
        base.extend(CommonClassAndInstanceMethods)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
intelitiva-rugui-1.2.0 lib/rugui/framework_adapters/framework_adapter_support.rb
intelitiva-rugui-1.3.0 lib/rugui/framework_adapters/framework_adapter_support.rb
intelitiva-rugui-1.3.1 lib/rugui/framework_adapters/framework_adapter_support.rb
intelitiva-rugui-1.3.2 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-2.0.0.beta3 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-2.0.0.beta2 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.6.0 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.5.4 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.5.3 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.5.2 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.5.0 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.4.3 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.4.2 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.4.0 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.3.3 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.3.1 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.3.2 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.2.0 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.2.1 lib/rugui/framework_adapters/framework_adapter_support.rb
rugui-1.3.0 lib/rugui/framework_adapters/framework_adapter_support.rb