Sha256: b2f1a7719983304cfbc0b8cedccc74df83ca7d2daf53b565f12fd802b67ac290

Contents?: true

Size: 742 Bytes

Versions: 10

Compression:

Stored size: 742 Bytes

Contents

module Manifest
  # Searches for models containing the {ActiveRecord::Base#data_type_for_manifest}
  # and touches them so that #data_type_for_manifest is called at app initialization.
  def self.add_app_models_to_manifest_data_types
    models = Dir.glob("#{Rails.root}/app/models/*")

    models.each do |m|
      klass = nil
      acts_as_manifest = false

      File.open(m, 'r') do |f|
        if f.lines.to_a.select { |l| l =~ /data_type_for_manifest/ }.count > 0
          f.rewind
          f.lines.each do |l|
            if l =~ /ActiveRecord::Base/
              l.split('<')[0].split(' ')[1].strip.constantize
            end
          end
        end
      end
    end
  end
end
  
Manifest.add_app_models_to_manifest_data_types

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
manifest-rails-0.2.8 config/initializers/manifest.rb
manifest-rails-0.2.7 config/initializers/manifest.rb
manifest-rails-0.2.6 config/initializers/manifest.rb
manifest-rails-0.2.5 config/initializers/manifest.rb
manifest-rails-0.2.4 config/initializers/manifest.rb
manifest-rails-0.2.3 config/initializers/manifest.rb
manifest-rails-0.2.2 config/initializers/manifest.rb
manifest-rails-0.2.1 config/initializers/manifest.rb
manifest-rails-0.2.0 config/initializers/manifest.rb
manifest-rails-0.1.3 config/initializers/manifest.rb