Class: Hanami::CLI::Generators::App::PartContext Private

Inherits:
SliceContext show all
Defined in:
lib/hanami/cli/generators/app/part_context.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from SliceContext

#camelized_slice_name, #humanized_slice_name, #javascript_erb_tag, #stylesheet_erb_tag, #underscored_slice_name

Methods inherited from Context

#bundled_assets?, #bundled_views?, #camelized_app_name, #ctx, #generate_assets?, #hanami_assets_npm_package, #hanami_gem, #hanami_gem_version, #hanami_head?, #humanized_app_name, #ruby_omit_hash_values?, #underscored_app_name

Constructor Details

#initialize(inflector, app, slice, key) ⇒ PartContext

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of PartContext.

Since:

  • 2.1.0



38
39
40
41
# File 'lib/hanami/cli/generators/app/part_context.rb', line 38

def initialize(inflector, app, slice, key)
  @key = key
  super(inflector, app, slice, nil)
end

Instance Attribute Details

#keyObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



34
35
36
# File 'lib/hanami/cli/generators/app/part_context.rb', line 34

def key
  @key
end

Instance Method Details

#camelized_nameObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



57
58
59
# File 'lib/hanami/cli/generators/app/part_context.rb', line 57

def camelized_name
  inflector.camelize(name)
end

#module_namespace_declarationObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



75
76
77
78
79
# File 'lib/hanami/cli/generators/app/part_context.rb', line 75

def module_namespace_declaration
  namespaces.each_with_index.map { |token, i|
    "#{OFFSET}#{INDENTATION * i}module #{inflector.camelize(token)}"
  }.join($/)
end

#module_namespace_endObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



83
84
85
86
87
# File 'lib/hanami/cli/generators/app/part_context.rb', line 83

def module_namespace_end
  namespaces.each_with_index.map { |_, i|
    "#{OFFSET}#{INDENTATION * i}end"
  }.reverse.join($/)
end

#module_namespace_offsetObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



91
92
93
# File 'lib/hanami/cli/generators/app/part_context.rb', line 91

def module_namespace_offset
  "#{OFFSET}#{INDENTATION * namespaces.count}"
end

#nameObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



51
52
53
# File 'lib/hanami/cli/generators/app/part_context.rb', line 51

def name
  @name ||= key.split(KEY_SEPARATOR)[-1]
end

#namespacesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



45
46
47
# File 'lib/hanami/cli/generators/app/part_context.rb', line 45

def namespaces
  @namespaces ||= key.split(KEY_SEPARATOR)[..-2]
end

#underscored_nameObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



69
70
71
# File 'lib/hanami/cli/generators/app/part_context.rb', line 69

def underscored_name
  inflector.underscore(name)
end

#underscored_namespaceObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.1.0



63
64
65
# File 'lib/hanami/cli/generators/app/part_context.rb', line 63

def underscored_namespace
  namespaces.map { inflector.underscore(_1) }
end