Sha256: 6fb02e2e94237098535e66b0c08d01c75d9681518aa12d3c4e422acce27b3275

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

module I18n
  module JS
    module Dependencies
      class << self
        def rails3?
          safe_gem_check("rails", "~> 3") && running_rails3?
        end

        def rails4?
          safe_gem_check("rails", "~> 4") && running_rails4?
        end

        def sprockets_supports_register_preprocessor?
          defined?(Sprockets) && Sprockets.respond_to?(:register_preprocessor)
        end

        def rails?
          rails_available? && running_rails?
        end

        def rails_available?
          safe_gem_check("rails", '>= 3')
        end

        def using_asset_pipeline?
          assets_pipeline_available =
            (rails3? || rails4?) &&
            Rails.respond_to?(:application) &&
            Rails.application.respond_to?(:assets)
          rails3_assets_enabled =
            rails3? &&
            assets_pipeline_available &&
            Rails.application.config.assets.enabled != false

          assets_pipeline_available && (rails4? || rails3_assets_enabled)
        end

        private

        def running_rails3?
          running_rails? && Rails.version.to_i == 3
        end

        def running_rails4?
          running_rails? && Rails.version.to_i == 4
        end

        def running_rails?
          defined?(Rails) && Rails.respond_to?(:version)
        end

        def safe_gem_check(gem_name, version_string)
          if Gem::Specification.respond_to?(:find_by_name)
            Gem::Specification.find_by_name(gem_name, version_string)
          elsif Gem.respond_to?(:available?)
            Gem.available?(gem_name, version_string)
          end
        rescue Gem::LoadError
          false
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
i18n-js-3.0.0.rc8 lib/i18n/js/dependencies.rb
i18n-js-3.0.0.rc7 lib/i18n/js/dependencies.rb