Sha256: 04af9cf6323607b900fc84150edb5fa022b49fdfae78be7c244b9f740dae75dd

Contents?: true

Size: 1.06 KB

Versions: 9

Compression:

Stored size: 1.06 KB

Contents

module Blueprints
  class FixturesConverter
    def initialize(options = {})
      @format = "fixtures"
      @source_files = options[:source_files]
      @output_file = options[:output_file]
      @blueprints_data = ""
      
      raise "No source files given" unless @source_files
      raise "No output file given" unless @output_file
    end
    
    def convert
      @source_files.each do |fixture_file|
        klass = File.basename(fixture_file, '.yml').singularize.capitalize

        loaded_yaml = YAML.load(File.read(fixture_file))

        @blueprints_data = loaded_yaml.collect do |title,yaml_obj|
          params = yaml_obj.collect do |k,v|
            ":#{k} => #{parameterize(v)}"
          end.join(', ')

          "#{klass}.blueprint(:#{title}, {#{params}})\n"
        end
      end
      
      @blueprints_data
    end

    def parameterize(object)
      if object =~ /<%=\s+?(.+)\s+%>/
        '('+$1+')'
      elsif object.is_a?(String)
        (%Q(#{object})).inspect
      elsif object.nil?
        'nil'
      else
        object.to_s
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
blueprints-1.0.1 lib/blueprints/convertable/fixtures.rb
blueprints-1.0.0 lib/blueprints/convertable/fixtures.rb
blueprints-0.9.0 lib/blueprints/convertable/fixtures.rb
blueprints-0.8.2 lib/blueprints/convertable/fixtures.rb
blueprints-0.8.1 lib/blueprints/convertable/fixtures.rb
blueprints-0.8.0 lib/blueprints/convertable/fixtures.rb
blueprints-0.7.3 lib/blueprints/convertable/fixtures.rb
blueprints-0.7.2 lib/blueprints/convertable/fixtures.rb
blueprints-0.7.1 lib/blueprints/convertable/fixtures.rb