Sha256: ead3ca3ac4dfdebf1101b62af6b2ee3c74b6ea714214f5a8fec487e4d8207a0d

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

require "bridgetown-core"
require "action_view"
require "view_component"

# Create basic Rails namespace when in Bridgetown-only context
unless defined?(Rails)
  module Rails
    module UrlHelpers; end

    def self.version
      ActionView.version.to_s
    end

    module VERSION
      MAJOR = Rails.version.split(".")[0].to_i
      MINOR = Rails.version.split(".")[1].to_i
    end

    def self.application
      @application ||= HashWithDotAccess::Hash.new({
        routes: { url_helpers: UrlHelpers },
      })
    end

    def self.env
      @env ||= HashWithDotAccess::Hash.new({ production?: Bridgetown.env.production? })
    end
  end

  unless Rails.version.to_f >= 6.1
    require "view_component/render_monkey_patch"
    ActionView::Base.prepend ViewComponent::RenderMonkeyPatch
  end
end

# Load classes/modules

module Bridgetown
  module ViewComponent
  end

  autoload :ViewComponentHelpers,
           "bridgetown-view-component/bridgetown/view_component_helpers"
  autoload :ComponentValidation,
           "bridgetown-view-component/bridgetown/component_validation"
end

Bridgetown.initializer :"bridgetown-view-component" do |config|
  config.source_manifest(
    origin: Bridgetown::ViewComponent,
    components: File.expand_path("../components", __dir__)
  )

  # Add a few methods to Bridgetown's Ruby template superclasses
  [Bridgetown::RubyTemplateView, Bridgetown::Component].each do |klass|
    klass.class_eval do
      def lookup_context
        HashWithDotAccess::Hash.new(variants: [])
      end

      def view_renderer
        nil
      end

      def view_flow
        nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bridgetown-view-component-2.0.0 lib/bridgetown-view-component.rb