Sha256: 5b0d62418d6be9aedb5c2bd111e86e1a5d6cc4ed172ab270ab3a040a97ca077c

Contents?: true

Size: 1.25 KB

Versions: 14

Compression:

Stored size: 1.25 KB

Contents

module DMGen
  class OneFile < Templater::Generator
    first_argument :name, :required => true
    second_argument :model
    third_argument :attributes, :as => :hash, :default => {}

    desc <<-eos
      Generates a 'one file test' for DataMapper, including debug logging and sqlite3 memory DB
      Use like 'dm-gen one_file filename [model] [model,attributes,here]'

      For example:
          dm-gen one_file validation_test Post title:string,body:text

        generates a one file test called 'validation_test.rb' which will have a class
        called Post in it, with 3 properties: a Serial id (added for free), and a title
        and a body.
    eos

    def self.source_root
      File.join(File.dirname(__FILE__), '..', 'templates')
    end

    template :one_file do |t|
      t.source = 'one_file.rb'
      t.destination = "#{self.filename}.rb"
    end

    def model_name
      (model) ? model.camel_case : "TestModel"
    end

    def filename
      name.sub(/\.rb\z/,'')
    end

    def properties
      h = {}
      attributes.each do |k, v|
        # skip if the property is named id
        next if k == "id"

        # convert to snake/camel case
        h[k.snake_case] = v.camel_case
      end
      h
    end

  end

  add :one_file, OneFile
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
namelessjon-dm-gen-0.0.4 lib/generators/one_file.rb
namelessjon-dm-gen-0.1.0 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.0 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.1 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.2 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.3 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.4 lib/generators/one_file.rb
namelessjon-dm-gen-0.2.5 lib/generators/one_file.rb
namelessjon-dm-gen-0.3.0 lib/generators/one_file.rb
namelessjon-dm-gen-0.3.1 lib/generators/one_file.rb
namelessjon-dm-gen-0.4.0 lib/dm-gen/generators/one_file.rb
dm-gen-0.5.0 lib/dm-gen/generators/one_file.rb
dm-gen-0.4.2 lib/dm-gen/generators/one_file.rb
dm-gen-0.4.1 lib/dm-gen/generators/one_file.rb