Sha256: e72ddc28a796357bc15ebf441ed849945d847b50a732f960776220cc585aedc4
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module Arpa module Entities class Resource attr_reader :id, :full_name, :name, :created_at, :updated_at, :actions def initialize(attrs = {}) attrs = attrs.with_indifferent_access @id = attrs[:id] @full_name = attrs[:full_name] @name = attrs[:name] @created_at = attrs[:created_at] @updated_at = attrs[:updated_at] @actions = attrs[:actions].present? ? attrs[:actions] : [] end def build_correct_name name = remove_word(full_name) @name = adjust_name(name) end private def adjust_name(name) parts_of_name = name.split '::' refactored_name = '' parts_of_name.each_with_index do |part, index| refactored_name << '/' if index.positive? refactored_name << change_to_snake_case(part) end refactored_name end def remove_word(word, word_to_delete = 'Controller') word = "#{word}del" if word.include?(word_to_delete) word.slice!("#{word_to_delete}del") word end def change_to_snake_case(name) parts_of_name = name.split(/(?=[A-Z])/) # Split at CamelCase refactored_name = '' parts_of_name.each_with_index do |part, index| part.downcase! refactored_name << '_' if index.positive? refactored_name << part end refactored_name end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
arpa-0.3.0 | lib/arpa/entities/resource.rb |