Sha256: 5725296bd37568ead0940b953c46a408ea06bcda49a7a1859c1ea8c8cac7c9c1

Contents?: true

Size: 1.75 KB

Versions: 3

Compression:

Stored size: 1.75 KB

Contents

module Goma
  module Generators
    module Helpers
      def base_name
        return 'Authentication' if options[:controller_type] == 'oauth'
        options[:controller_type]
      end

      def _resource_name
        if n = options[:resource_name]
          n
        else
          if (n = name.camelize.sub(/#{base_name}$/i, '')).present?
            n
          else
            Goma.config.default_scope.to_s
          end
        end
      end

      def resource_name
        @resource ||= _resource_name.underscore
      end

      def resource_class_name
        @resource_class ||= _resource_name.camelize
      end

      def goma_scope
        resource_name.to_sym
      end

      def goma_config
        @goma_config ||= Goma.config_for[goma_scope] || Goma.config
      end

      def resource_attributes
        goma_config.authentication_keys + [goma_config.password_attribute_name, goma_config.password_confirmation_attribute_name]
      end

      def specify_scope_if_needed
        goma_scope == Goma.config.default_scope ? '' : "#{goma_scope}_"
      end

      class << self
        attr_accessor :include_scope_name_into_controller_name
      end

      def longer_name?
        case Helpers.include_scope_name_into_controller_name
        when true
          return true
        when nil
          if options[:controller_type] != 'user' &&
            name =~ /^#{resource_class_name}/ || name =~ /^#{resource_name}/
            return true
          end
        end
        false
      end

      def login_url
        longer_name? ? "new_#{resource_name}_session_url" : "new_session_url"
      end
    end
  end
end

class Array
  def to_field_name
    self.to_sentence(words_connector: '_', two_words_connector: '_or_', last_word_connector: '_or_')
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
goma-0.0.1.rc2 lib/generators/goma/helpers/helpers.rb
goma-0.0.1.rc1 lib/generators/goma/helpers/helpers.rb
goma-0.0.1.gamma lib/generators/goma/helpers/helpers.rb