Sha256: 06632c547e51f49b226149978b6d00abda487a74c68ce27f3b393589a941cd97

Contents?: true

Size: 964 Bytes

Versions: 5

Compression:

Stored size: 964 Bytes

Contents

module ActiveAdmin
  module CepAutoComplete
    module DSL
      def setup_cep_auto_complete(&block)
        renderer = config.cep_renderer
        renderer.instance_eval(&block) if block_given?

        menu false

        controller do
          require 'postmon_ruby'

          # TODO: Find another to pass down the renderer variable
          @@renderer = renderer

          def index
            if is_cep_valid?
              query = Query.search(parsed_cep)

              if query
                render json: @@renderer.render(query)
              else
                render nothing: true, status: 404
              end
            else
              render nothing: true, status: 404
            end
          end

          def is_cep_valid?
            parsed_cep =~ /\A#{CEP_REGEX_BODY}\z/
          end

          def parsed_cep
            @parsed_cep ||= params[:cep].to_s.gsub(/[^\d]/, '')
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
active_admin-cep_auto_complete-0.2.5 lib/active_admin/cep_auto_complete/dsl.rb
active_admin-cep_auto_complete-0.2.4 lib/active_admin/cep_auto_complete/dsl.rb
active_admin-cep_auto_complete-0.2.3 lib/active_admin/cep_auto_complete/dsl.rb
active_admin-cep_auto_complete-0.2.2 lib/active_admin/cep_auto_complete/dsl.rb
active_admin-cep_auto_complete-0.2.1 lib/active_admin/cep_auto_complete/dsl.rb