Sha256: f87d8f9a79b1f8bce61c06441fbfeaebed52e87d8e547028d014595b94945da8

Contents?: true

Size: 1.88 KB

Versions: 24

Compression:

Stored size: 1.88 KB

Contents

module SpreeCmd
  class Extension < Thor::Group
    include Thor::Actions

    desc "builds a spree extension"
    argument :file_name, type: :string, desc: 'rails app_path', default: '.'

    source_root File.expand_path('../templates/extension', __FILE__)

    def generate
      use_prefix 'spree_'

      empty_directory file_name

      directory 'app', "#{file_name}/app"
      directory 'lib', "#{file_name}/lib"
      directory 'bin', "#{file_name}/bin"
      directory 'gemfiles', "#{file_name}/gemfiles"

      template 'extension.gemspec', "#{file_name}/#{file_name}.gemspec"
      template 'Gemfile', "#{file_name}/Gemfile"
      template 'gitignore', "#{file_name}/.gitignore"
      template 'LICENSE', "#{file_name}/LICENSE"
      template 'Rakefile', "#{file_name}/Rakefile"
      template 'README.md', "#{file_name}/README.md"
      template 'config/routes.rb', "#{file_name}/config/routes.rb"
      template 'config/locales/en.yml', "#{file_name}/config/locales/en.yml"
      template 'rspec', "#{file_name}/.rspec"
      template 'spec/spec_helper.rb.tt', "#{file_name}/spec/spec_helper.rb"
      template 'travis.yml', "#{file_name}/.travis.yml"
      template 'Appraisals', "#{file_name}/Appraisals"
    end

    def final_banner
      say %{
        #{'*' * 80}

        Your extension has been generated with a gemspec dependency on Spree #{spree_version}.

        For more information on the versioning of Spree.
        See http://guides.spreecommerce.org/developer/extensions_tutorial.html#versioning-your-extension

        #{'*' * 80}
      }
    end

    no_tasks do
      def class_name
        Thor::Util.camel_case file_name
      end

      def spree_version
        Gem.loaded_specs['spree_cmd'].version.to_s
      end

      def use_prefix(prefix)
        unless file_name =~ /^#{prefix}/
          @file_name = prefix + Thor::Util.snake_case(file_name)
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
goca-spree-cmd-3.1.14.rails.5.0.1 lib/spree_cmd/extension.rb
spree_cmd-3.2.9 lib/spree_cmd/extension.rb
spree_cmd-3.3.6 lib/spree_cmd/extension.rb
spree_cmd-3.2.8 lib/spree_cmd/extension.rb
spree_cmd-3.3.5 lib/spree_cmd/extension.rb
spree_cmd-3.3.4 lib/spree_cmd/extension.rb
spree_cmd-3.2.7 lib/spree_cmd/extension.rb
spree_cmd-3.3.3 lib/spree_cmd/extension.rb
spree_cmd-3.2.6 lib/spree_cmd/extension.rb
spree_cmd-3.3.2 lib/spree_cmd/extension.rb
spree_cmd-3.2.5 lib/spree_cmd/extension.rb
spree_cmd-3.3.1 lib/spree_cmd/extension.rb
spree_cmd-3.2.4 lib/spree_cmd/extension.rb
spree_cmd-3.3.0 lib/spree_cmd/extension.rb
spree_cmd-3.3.0.rc4 lib/spree_cmd/extension.rb
spree_cmd-3.3.0.rc3 lib/spree_cmd/extension.rb
spree_cmd-3.2.3 lib/spree_cmd/extension.rb
spree_cmd-3.2.2 lib/spree_cmd/extension.rb
spree_cmd-3.3.0.rc2 lib/spree_cmd/extension.rb
spree_cmd-3.3.0.rc1 lib/spree_cmd/extension.rb