From 83cbfd7a48728eb3d28008f9da1c430482a3237a Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Tue, 19 Jan 2016 18:06:09 +0300 Subject: [PATCH] move string helper methods to core extensions --- .../connectors/helpers/delete_command.rb | 4 +-- .../connectors/helpers/insert_command.rb | 6 ++-- .../mongo/connectors/helpers/list_command.rb | 6 +--- .../mongo/connectors/helpers/show_command.rb | 4 +-- .../connectors/helpers/update_command.rb | 5 +-- devops-service/lib/stack_presets/base.rb | 3 +- devops-service/lib/string_ext.rb | 18 ++++++++++ devops-service/lib/string_helper.rb | 35 ------------------- 8 files changed, 25 insertions(+), 56 deletions(-) delete mode 100644 devops-service/lib/string_helper.rb diff --git a/devops-service/db/mongo/connectors/helpers/delete_command.rb b/devops-service/db/mongo/connectors/helpers/delete_command.rb index b66be9c..8841aaa 100644 --- a/devops-service/db/mongo/connectors/helpers/delete_command.rb +++ b/devops-service/db/mongo/connectors/helpers/delete_command.rb @@ -1,5 +1,3 @@ -require 'lib/string_helper' - module Connectors module Helpers module DeleteCommand @@ -9,7 +7,7 @@ module Connectors # We need this alias to forward methods from MongoConnector to resources connectors. def self.included(base) - resource_name = StringHelper.underscore_class(base) + resource_name = base.to_s.underscore_class method_name = "#{resource_name}_delete".to_sym alias_method method_name, :delete end diff --git a/devops-service/db/mongo/connectors/helpers/insert_command.rb b/devops-service/db/mongo/connectors/helpers/insert_command.rb index be380a9..446ca5f 100644 --- a/devops-service/db/mongo/connectors/helpers/insert_command.rb +++ b/devops-service/db/mongo/connectors/helpers/insert_command.rb @@ -1,5 +1,3 @@ -require 'lib/string_helper' - module Connectors module Helpers module InsertCommand @@ -9,7 +7,7 @@ module Connectors # We need this alias to forward methods from MongoConnector to resources connectors. def self.included(base) - resource_name = StringHelper.underscore_class(base) + resource_name = base.to_s.underscore_class method_name = "#{resource_name}_insert".to_sym alias_method method_name, :insert end @@ -24,7 +22,7 @@ module Connectors rescue Mongo::OperationFailure => e # exception's message doesn't always start from error code if e.message =~ /11000/ - resource_name = StringHelper.underscore_class(record.class) + resource_name = record.class.to_s.underscore_class raise InvalidRecord.new("Duplicate key error: #{resource_name} with id '#{record.id}'") end end diff --git a/devops-service/db/mongo/connectors/helpers/list_command.rb b/devops-service/db/mongo/connectors/helpers/list_command.rb index aaab3b8..a53dcb0 100644 --- a/devops-service/db/mongo/connectors/helpers/list_command.rb +++ b/devops-service/db/mongo/connectors/helpers/list_command.rb @@ -1,5 +1,3 @@ -require 'lib/string_helper' - module Connectors module Helpers module ListCommand @@ -9,9 +7,7 @@ module Connectors # We need this alias to forward methods from MongoConnector to resources connectors. def self.included(base) - resource_name = StringHelper.underscore_class(base).to_sym - method_name = StringHelper.pluralize(resource_name) - alias_method method_name, :list + alias_method base.to_s.underscore_class.pluralize, :list end # query options is needed, for example, for fields limiting diff --git a/devops-service/db/mongo/connectors/helpers/show_command.rb b/devops-service/db/mongo/connectors/helpers/show_command.rb index cb06d74..2889d72 100644 --- a/devops-service/db/mongo/connectors/helpers/show_command.rb +++ b/devops-service/db/mongo/connectors/helpers/show_command.rb @@ -1,5 +1,3 @@ -require 'lib/string_helper' - module Connectors module Helpers module ShowCommand @@ -9,7 +7,7 @@ module Connectors # We need this alias to forward methods from MongoConnector to resources connectors. def self.included(base) - method_name = StringHelper.underscore_class(base).to_sym + method_name = base.to_s.underscore_class.to_sym alias_method method_name, :show end diff --git a/devops-service/db/mongo/connectors/helpers/update_command.rb b/devops-service/db/mongo/connectors/helpers/update_command.rb index 674eb60..a8f88b6 100644 --- a/devops-service/db/mongo/connectors/helpers/update_command.rb +++ b/devops-service/db/mongo/connectors/helpers/update_command.rb @@ -1,5 +1,3 @@ -require 'lib/string_helper' - module Connectors module Helpers module UpdateCommand @@ -8,8 +6,7 @@ module Connectors # We need second method name to forward methods from MongoConnector to resources connectors. def self.included(base) - resource_name = StringHelper.underscore_class(base) - method_name = "#{resource_name}_update".to_sym + method_name = "#{base.to_s.underscore_class}_update".to_sym alias_method method_name, :update end diff --git a/devops-service/lib/stack_presets/base.rb b/devops-service/lib/stack_presets/base.rb index ae09ac7..7465b28 100644 --- a/devops-service/lib/stack_presets/base.rb +++ b/devops-service/lib/stack_presets/base.rb @@ -1,4 +1,3 @@ -require 'lib/string_helper' require 'db/mongo/models/stack_template/stack_template_factory' module Devops @@ -6,7 +5,7 @@ module Devops class Base def id - StringHelper.underscore_class(self.class) + self.class.to_s.underscore_class end def to_hash diff --git a/devops-service/lib/string_ext.rb b/devops-service/lib/string_ext.rb index ce2e9ca..54475e3 100644 --- a/devops-service/lib/string_ext.rb +++ b/devops-service/lib/string_ext.rb @@ -6,4 +6,22 @@ class String def blank? empty? end + + # from ActiveSupport + def underscore + gsub(/::/, '/'). + gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). + gsub(/([a-z\d])([A-Z])/,'\1_\2'). + tr("-", "_"). + downcase + end + + def underscore_class + split('::').last.underscore + end + + # rough simplification + def pluralize + "#{self}s" + end end \ No newline at end of file diff --git a/devops-service/lib/string_helper.rb b/devops-service/lib/string_helper.rb deleted file mode 100644 index 74a6727..0000000 --- a/devops-service/lib/string_helper.rb +++ /dev/null @@ -1,35 +0,0 @@ -module StringHelper - extend self - - # from Rails' ActiveSupport - def underscore(string) - string.gsub(/::/, '/'). - gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). - gsub(/([a-z\d])([A-Z])/,'\1_\2'). - tr("-", "_"). - downcase - end - - def underscore_class(klass, without_ancestors=true) - class_name = if without_ancestors - klass.to_s.split('::').last - else - klass.to_s - end - StringHelper.underscore(class_name) - end - - # from Rails' ActiveSupport - def camelize(term) - string = term.to_s - string = string.sub(/^[a-z\d]*/) { $&.capitalize } - string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" } - string.gsub!(/\//, '::') - string - end - - # rough simplification - def pluralize(string) - "#{string}s" - end -end