From 87b2ff67adfa3c766b89158d6ed454e6a2b9e439 Mon Sep 17 00:00:00 2001 From: James Cook Date: Thu, 21 Jul 2011 08:53:37 -0400 Subject: [PATCH 1/2] Remove AS dependency and vendor needed string utils. --- lib/garb.rb | 7 ----- lib/garb/filter_parameters.rb | 2 +- lib/support.rb | 6 ++++- lib/support/string.rb | 49 +++++++++++++++++++++++++++++++++++ test/test_helper.rb | 2 -- 5 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 lib/support/string.rb diff --git a/lib/garb.rb b/lib/garb.rb index d3ba9b7..1e39ff9 100644 --- a/lib/garb.rb +++ b/lib/garb.rb @@ -10,13 +10,6 @@ require 'json' end -begin - require 'active_support/inflector' - require 'active_support/deprecation' -rescue LoadError - require 'active_support' -end - module Garb autoload :Destination, 'garb/destination' autoload :FilterParameters, 'garb/filter_parameters' diff --git a/lib/garb/filter_parameters.rb b/lib/garb/filter_parameters.rb index b5c130b..4a1b255 100644 --- a/lib/garb/filter_parameters.rb +++ b/lib/garb/filter_parameters.rb @@ -16,7 +16,7 @@ class FilterParameters attr_accessor :parameters def initialize(parameters) - self.parameters = (Array.wrap(parameters) || []) + self.parameters = ([parameters].flatten || []).compact end def to_params diff --git a/lib/support.rb b/lib/support.rb index 6445126..4094fd7 100644 --- a/lib/support.rb +++ b/lib/support.rb @@ -1,3 +1,7 @@ +unless Object.const_defined?("ActiveSupport") + require File.expand_path("./lib/support/string.rb") +end + class SymbolOperator def initialize(field, operator) @field, @operator = field, operator @@ -34,7 +38,7 @@ class Symbol :substring, :not_substring].each do |operator| define_method(operator) do - ActiveSupport::Deprecation.warn("The use of SymbolOperator(#{operator}, etc.) has been deprecated. Please use named filters.") + warn("The use of SymbolOperator(#{operator}, etc.) has been deprecated. Please use named filters.") SymbolOperator.new(self, operator) end unless method_defined?(operator) end diff --git a/lib/support/string.rb b/lib/support/string.rb new file mode 100644 index 0000000..df004e5 --- /dev/null +++ b/lib/support/string.rb @@ -0,0 +1,49 @@ +# Pull in some AS String utilities (not loaded if AS is available) +unless Object.const_defined?("ActiveSupport") + class String + def camelize(first_letter = :upper) + case first_letter + when :upper then ActiveSupport::Inflector.camelize(self, true) + when :lower then ActiveSupport::Inflector.camelize(self, false) + end + end + alias_method :camelcase, :camelize + + def underscore + ActiveSupport::Inflector.underscore(self) + end + + def demodulize + ActiveSupport::Inflector.demodulize(self) + end + end + + + module ActiveSupport + module Inflector + extend self + + def camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) + if first_letter_in_uppercase + lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } + else + lower_case_and_underscored_word.to_s[0].chr.downcase + camelize(lower_case_and_underscored_word)[1..-1] + end + end + + def underscore(camel_cased_word) + word = camel_cased_word.to_s.dup + word.gsub!(/::/, '/') + word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2') + word.gsub!(/([a-z\d])([A-Z])/,'\1_\2') + word.tr!("-", "_") + word.downcase! + word + end + + def demodulize(class_name_in_module) + class_name_in_module.to_s.gsub(/^.*::/, '') + end + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index bcd735a..aa926f9 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -25,8 +25,6 @@ $:.unshift File.expand_path('../../lib', __FILE__) require 'garb' -ActiveSupport::Deprecation.silenced = true - class MiniTest::Unit::TestCase include Shoulda::InstanceMethods extend Shoulda::ClassMethods From d94a2feb6b19b01d31492f8073bd12b62859cefe Mon Sep 17 00:00:00 2001 From: James Cook Date: Thu, 21 Jul 2011 08:55:38 -0400 Subject: [PATCH 2/2] Remove AS dependency and vendor needed string utils. --- Gemfile | 1 - Gemfile.lock | 2 -- 2 files changed, 3 deletions(-) diff --git a/Gemfile b/Gemfile index 721d5be..e3189f4 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,6 @@ source "http://gems.github.com" gem 'rake', '~> 0.8.7' gem 'i18n' -gem 'activesupport' group :test do gem 'shoulda' diff --git a/Gemfile.lock b/Gemfile.lock index e8506c5..59eec95 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,7 +2,6 @@ GEM remote: http://rubygems.org/ remote: http://gems.github.com/ specs: - activesupport (3.0.3) i18n (0.4.2) jferris-mocha (0.9.8.20100526112143) rake @@ -19,7 +18,6 @@ PLATFORMS ruby DEPENDENCIES - activesupport i18n jferris-mocha minitest