Sha256: be62ebeb2580e4e45110dfa83f44abf9091e5e218ed02b578c90a280a060652b

Contents?: true

Size: 1.33 KB

Versions: 58

Compression:

Stored size: 1.33 KB

Contents

module Origen
  module CodeGenerators
    class Klass < Origen::CodeGenerators::Base
      def self.banner
        'origen new class NAME'
      end

      desc <<-END
This generator creates a plain old Ruby class within your application's lib directory.

The NAME of the class should be given, in lower case, optionally indicating the presence
of any namespacing you want it to be created under.

Examples:
  origen new class counter          # Creates app/lib/my_application/counter.rb
  origen new class helpers/counter  # Creates app/lib/my_application/helpers/counter.rb
END

      def validate_args
        if args.size > 1 || args.size == 0
          msg = args.size > 1 ? 'Only one' : 'One'
          msg << " argument is expected by the class generator, e.g. 'origen new class counter', 'origen new class helpers/counter'"
          puts msg
          exit 1
        end
        validate_resource_name(args.first)
      end

      def create_class_file
        @resource_path = args.first
        klass = resource_path_to_class(args.first)
        @namespaces = klass.split('::').map(&:underscore)
        @name = @namespaces.pop
        @namespaces = add_type_to_namespaces(@namespaces)
        @root_class = true
        file = class_name_to_lib_file(klass)
        template 'templates/code_generators/class.rb', file
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
origen-0.60.19 lib/origen/code_generators/klass.rb
origen-0.60.18 lib/origen/code_generators/klass.rb
origen-0.60.17 lib/origen/code_generators/klass.rb
origen-0.60.16 lib/origen/code_generators/klass.rb
origen-0.60.14 lib/origen/code_generators/klass.rb
origen-0.60.13 lib/origen/code_generators/klass.rb
origen-0.60.12 lib/origen/code_generators/klass.rb
origen-0.60.11 lib/origen/code_generators/klass.rb
origen-0.60.10 lib/origen/code_generators/klass.rb
origen-0.60.9 lib/origen/code_generators/klass.rb
origen-0.60.8 lib/origen/code_generators/klass.rb
origen-0.60.7 lib/origen/code_generators/klass.rb
origen-0.60.6 lib/origen/code_generators/klass.rb
origen-0.60.5 lib/origen/code_generators/klass.rb
origen-0.60.4 lib/origen/code_generators/klass.rb
origen-0.60.3 lib/origen/code_generators/klass.rb
origen-0.60.2 lib/origen/code_generators/klass.rb
origen-0.60.1 lib/origen/code_generators/klass.rb
origen-0.60.0 lib/origen/code_generators/klass.rb
origen-0.59.8 lib/origen/code_generators/klass.rb