Module: Aquarium::Utils::NameUtils
- Defined in:
- lib/aquarium/utils/name_utils.rb
Overview
NameUtils
Convert various strings, symbols, object ids, etc. into valid “names” that can be used as method names, etc.
Constant Summary collapse
- @@char_expr_map =
{ '=' => '_equal_', '?' => '_questionmark_', '!' => '_exclamationmark_', '~' => '_tilde_', '-' => '_minus_', '+' => '_plus_', '/' => '_slash_', '*' => '_star_', '<' => '_lessthan_', '>' => '_greaterthan_', '<<' => '_leftshift_', '>>' => '_rightshift_', '=~' => '_matches_', '%' => '_percent_', '^' => '_caret_', '[]' => '_brackets_', '&' => '_ampersand_', '|' => '_pipe_', '`' => '_backtick_' }
Class Method Summary collapse
- .make_type_or_object_key(type_or_object) ⇒ Object
- .make_valid_attr_name_from_method_name(method_name) ⇒ Object
-
.make_valid_object_id_name(object_id) ⇒ Object
Fixes Tracker #13864.
- .make_valid_object_name(type_or_object) ⇒ Object
- .make_valid_type_name(type) ⇒ Object
Class Method Details
.make_type_or_object_key(type_or_object) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/aquarium/utils/name_utils.rb', line 32 def self.make_type_or_object_key type_or_object if Aquarium::Utils::TypeUtils.is_type?(type_or_object) make_valid_type_name type_or_object else make_valid_object_name type_or_object end end |
.make_valid_attr_name_from_method_name(method_name) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/aquarium/utils/name_utils.rb', line 53 def self.make_valid_attr_name_from_method_name method_name new_name = method_name.to_s @@char_expr_map.keys.sort{|x,y| y.length <=> x.length}.each do |expr| new_name.gsub! expr, @@char_expr_map[expr] end new_name.intern end |
.make_valid_object_id_name(object_id) ⇒ Object
Fixes Tracker #13864.
49 50 51 |
# File 'lib/aquarium/utils/name_utils.rb', line 49 def self.make_valid_object_id_name object_id object_id.to_s.gsub(/^-/, "_neg_") end |
.make_valid_object_name(type_or_object) ⇒ Object
44 45 46 |
# File 'lib/aquarium/utils/name_utils.rb', line 44 def self.make_valid_object_name type_or_object "#{make_valid_type_name(type_or_object.class)}_#{make_valid_object_id_name(type_or_object.object_id)}" end |
.make_valid_type_name(type) ⇒ Object
40 41 42 |
# File 'lib/aquarium/utils/name_utils.rb', line 40 def self.make_valid_type_name type type.name.gsub(/:/, '_') end |