Sha256: 5b9db38a586f590c7710b4ca92e054cedd537130feac03352491d31111330ff7

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

require 'thor/group'
require 'ostruct'
require 'active_support'
require 'active_support/core_ext'
require 'faker'

module Locomotive
  module Wagon
    module Generators
      class ContentType < Thor::Group

        include Thor::Actions

        argument :name
        argument :target_path
        argument :fields

        def copy_sources
          directory('.', target_path, { recursive: true }, {
            name:   self.name,
            fields: extract_fields(fields)
          })
        end

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

        protected

        def extract_fields(fields)
          fields.map do |raw_attributes|
            name, type, required = raw_attributes.split(':')

            OpenStruct.new({
              name:     name,
              type:     type || 'string',
              required: %w(true required).include?(required)
            })
          end
        end

      end

    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
locomotivecms_wagon-1.4.0 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.3.3 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.3.2 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.3.1 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.3.0 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.2.2 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.2.1 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.2.0 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.1.0 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.0.2 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.0.1 lib/locomotive/wagon/generators/content_type.rb
locomotivecms_wagon-1.0.0 lib/locomotive/wagon/generators/content_type.rb