<commit_before># encoding: utf-8
module ExtensionModelos
  extend ActiveSupport::Concern

  module ClassMethods

    # Este método es llamado para generar el formulario de exportar/importar CSV.
    # Utiliza los atributos del modelo y sus asociaciones.
    #
    # * *Devuelve* : la lista de atributos para exportar/importar como CSV
    #
    def atributos_y_asociaciones(opciones = nil)
      opciones ||= {}
      excepto = Array.wrap(opciones[:excepto])

      # Selecciono los nombres de atributos que no son obvias llaves externas
      # (*_id). Si hay llaves externas sin este formato, hay que agregarlas al
      # hash +:excepto+.
      atributos = self.attribute_names.map {|s| s.to_sym}.reject {|n| n =~ /_id$/ or excepto.include? n }

      # Rechazo las asociaciones de tipo +:through+
      atributos << self.reflections.reject do |k,v|
        not v.instance_of?(ActiveRecord::Reflection::AssociationReflection)
      end.keys.reject {|n| excepto.include? n}
      atributos.flatten.sort
    end

    # Para guardar una serie (+Array+) de ids de una asociación en una misma
    # columna de la BD. Útil para los ActiveHash
    def guardar_como_arreglo(asociacion, clase)

      # Defino el método asociacion_ids= que sincroniza la serialización con la
      # variable de instancia @asociaciones
      define_method "#{asociacion}_ids=" do |ids|
        super Array.wrap(ids)
        cargar_ids_para :subclase, SubclaseDeCapacidad
      end
<commit_msg>Código innecesario<commit_after># encoding: utf-8
module ExtensionModelos
  extend ActiveSupport::Concern

  module ClassMethods

    # Este método es llamado para generar el formulario de exportar/importar CSV.
    # Utiliza los atributos del modelo y sus asociaciones.
    #
    # * *Devuelve* : la lista de atributos para exportar/importar como CSV
    #
    def atributos_y_asociaciones(opciones = nil)
      opciones ||= {}
      excepto = Array.wrap(opciones[:excepto])

      # Selecciono los nombres de atributos que no son obvias llaves externas
      # (*_id). Si hay llaves externas sin este formato, hay que agregarlas al
      # hash +:excepto+.
      atributos = self.attribute_names.map {|s| s.to_sym}.reject {|n| n =~ /_id$/ or excepto.include? n }

      # Rechazo las asociaciones de tipo +:through+
      atributos << self.reflections.reject do |k,v|
        not v.instance_of?(ActiveRecord::Reflection::AssociationReflection)
      end.keys.reject {|n| excepto.include? n}
      atributos.flatten.sort
    end

    # Para guardar una serie (+Array+) de ids de una asociación en una misma
    # columna de la BD. Útil para los ActiveHash
    def guardar_como_arreglo(asociacion, clase)

      # Defino el método asociacion_ids= que sincroniza la serialización con la
      # variable de instancia @asociaciones
      define_method "#{asociacion}_ids=" do |ids|
        super Array.wrap(ids)
        # FIXME wat!
        cargar_ids_para :subclase, SubclaseDeCapacidad
      end

{'fraction_non_alphanumeric': 0.08428860418071477, 'fraction_numerical': 0.0006743088334457181, 'mean_word_length': 3.161290322580645, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2539299', 'n_tokens_mistral': 992, 'n_tokens_neox': 974, 'n_words': 291}