Sha256: a993b66a2b82f4013f49b0710be2b5bfef6a43c11ad84d0a153bf495715ebb40

Contents?: true

Size: 1.01 KB

Versions: 8

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 Builder
    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

8 entries across 8 versions & 1 rubygems

Version Path
locomotivecms_builder-1.0.0.alpha8 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha7 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha6 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha5 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha4 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha3 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha2 lib/locomotive/builder/generators/content_type.rb
locomotivecms_builder-1.0.0.alpha1 lib/locomotive/builder/generators/content_type.rb