Class: Starter::Names

Inherits:
Object
  • Object
show all
Defined in:
lib/starter/names.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource) ⇒ Names

Returns a new instance of Names.



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/starter/names.rb', line 7

def initialize(resource)
  @version_klass = false
  @origin = resource
  @resource = if resource.match?(/([[:digit:]][[:punct:]])+/)
                @version_klass = true
                digit = resource.scan(/\d/).first.to_i - 1
                letter = ('a'..'z').to_a[digit]
                "#{letter}_#{resource.tr('.', '_')}"
              else
                resource
              end
end

Instance Attribute Details

#originObject

Returns the value of attribute origin.



5
6
7
# File 'lib/starter/names.rb', line 5

def origin
  @origin
end

#resourceObject

Returns the value of attribute resource.



5
6
7
# File 'lib/starter/names.rb', line 5

def resource
  @resource
end

#version_klassObject

Returns the value of attribute version_klass.



5
6
7
# File 'lib/starter/names.rb', line 5

def version_klass
  @version_klass
end

Instance Method Details

#api_file_nameObject

endpoints file



43
44
45
# File 'lib/starter/names.rb', line 43

def api_file_name
  File.join(Dir.getwd, 'api', 'endpoints', resource_file)
end

#api_spec_nameObject

resource spec



74
75
76
# File 'lib/starter/names.rb', line 74

def api_spec_name
  File.join(Dir.getwd, 'spec', 'requests', resource_spec)
end

#entity_file_nameObject

entities file



48
49
50
# File 'lib/starter/names.rb', line 48

def entity_file_name
  File.join(Dir.getwd, 'api', 'entities', resource_file)
end

#klass_nameObject



20
21
22
23
24
25
# File 'lib/starter/names.rb', line 20

def klass_name
  return @resource.classify if version_klass

  for_klass = @resource.tr('-', '/')
  singular? ? for_klass.classify : for_klass.classify.pluralize
end

#lib_file_nameObject

lib file



53
54
55
# File 'lib/starter/names.rb', line 53

def lib_file_name
  File.join(Dir.getwd, 'lib', 'models', resource_file)
end

#lib_klass_nameObject

model entry in lib file



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/starter/names.rb', line 58

def lib_klass_name
  return klass_name unless @orm

  case Starter::Config.read[:orm]
  when 'sequel'
    extend(Starter::Builder::Sequel)
    "#{klass_name} < #{model_klass}"
  when 'activerecord', 'ar'
    extend(Starter::Builder::ActiveRecord)
    "#{klass_name} < #{model_klass}"
  else
    klass_name
  end
end

#lib_spec_nameObject

lib spec



79
80
81
# File 'lib/starter/names.rb', line 79

def lib_spec_name
  File.join(Dir.getwd, 'spec', 'lib', 'models', resource_spec)
end

#mount_pointObject

entry in api/base.rb



38
39
40
# File 'lib/starter/names.rb', line 38

def mount_point
  "    mount Endpoints::#{klass_name}\n"
end

#resource_fileObject

rubocop:disable Style/StringConcatenation



28
29
30
# File 'lib/starter/names.rb', line 28

def resource_file
  @resource.tr('/', '-').downcase + '.rb'
end

#resource_specObject

rubocop:enable Style/StringConcatenation



33
34
35
# File 'lib/starter/names.rb', line 33

def resource_spec
  resource_file.gsub(/.rb$/, '_spec.rb')
end

#singular?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/starter/names.rb', line 83

def singular?
  @resource.singularize.inspect == @resource.inspect
end