urbanairship / ruby-library

A Ruby wrapper for the Urban Airship API.
Other
200 stars 118 forks source link

rails method signature conflict #80

Closed arches closed 9 years ago

arches commented 9 years ago

This gem defines Object#try with a single arg:

https://github.com/urbanairship/ruby-library/blob/master/lib/ext/object.rb#L2

Rails defines Object#try with varying args and a block:

https://github.com/rails/rails/blob/3e36db4406beea32772b1db1e9a16cc1e8aea14c/activesupport/lib/active_support/core_ext/object/try.rb#L5

So my rails app won't start with this gem installed. Can't repro on a new rails app so my personal conflict is probably with another gem I'm using. I can add my Gemfile if anyone cares.

pdxmele commented 9 years ago

Please do, thanks! It should help with troubleshooting.

bswinnerton commented 9 years ago

What's the rationale to monkeypatch these low level methods like Object#try and Hash#compact? Can they be removed altogether?

arches commented 9 years ago

sorry it's kind of a mess...

source 'https://rubygems.org'
ruby '2.0.0'

gem 'rails', '3.2.19'
gem 'pg', '0.15.1'
gem 'jquery-rails', '2.2.1'

group :assets do
  gem 'asset_sync'
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

# Rails extensions
gem 'aws-sdk'
gem 'bourbon', '3.1.3'
gem 'dropbox-api'
gem 'dynamic_form', '1.1.4'
gem 'neat'
gem 'rails_autolink', '1.1.0'
gem 'wicked', '0.2.0'
gem 'strong_parameters', '0.2.1'
gem 'cache_digests', '0.3.1'
gem 'simple_form'
gem 'rabl', '0.10.1'
gem 'active_model_serializers'
gem 'backbone-on-rails', '0.9.9.0'
gem 'oj', '2.1.4'
gem 'state_machine'
gem 'phony_rails', '0.3.2'
gem 'will_paginate', '3.0.4'
gem 'token_phrase'
gem 'postgres_ext'
gem 'ransack', '0.7.2'
gem 'roadie', '~> 3.0'
gem 'roadie-rails', '~> 1.0'
gem 'yelpster'
gem 'httparty'
gem 'chronic'
gem 'useragent', '~> 0.10'
gem 'rack-reverse-proxy', '~> 0.4', require: "rack/reverse_proxy"
gem 'refraction', '~> 0.2'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'mixpanel-ruby', '~> 1.6'
gem 'urbanairship', '~> 2.4'
gem 'render_anywhere', '~> 0.0', require: false
gem 'paper_trail', '~> 3.0'
gem 'rdiscount', '~> 2.1'
gem 'spreadsheet', '~> 1.0'

# Auth
gem 'devise', '2.2.4'

# External
gem 'pusher', '~> 0.11'
gem 'twilio-ruby', '3.11'
gem 'carrierwave'
gem 'cloudinary', '1.0.60'
gem 'postmark-rails', '0.5.1'
gem 'geocoder', '1.1.8'
gem 'analytics-ruby', '0.5.4'
gem 'heroics'
gem 'transformable', '~> 1.0'

# Payments
gem 'oauth2', '0.9.1'
gem 'stripe', '~> 1.17'

# Background jobs
gem 'slim'
gem 'sinatra', require: nil
gem 'sidekiq', '~> 2.13' # TODO: upgrade to v3
gem 'sidekiq-failures', '~> 0.4'
gem 'friendly_id', '~> 4.0'

# Misc
gem 'faker', '1.1.2'
gem 'settingslogic', '2.0.9'
gem 'factory_girl_rails', '4.2.1'
gem 'gibbon', '0.4.6'
gem 'mandrill-api', '~> 1.0'
gem 'newrelic_rpm', '3.9.0.229'
gem 'dalli', '2.6.4'
gem "honeybadger", "~> 1.16"
gem 'minuteman', git: "https://github.com/elcuervo/minuteman.git"
gem 'haml-rails'
gem "autoprefixer-rails"

gem 'marco-polo', '~> 1.2'
gem 'table_print', '~> 1.5'
gem 'chartkick', '~> 1.3'

gem 'clockwork', '~> 1.0'
gem 'font-awesome-rails', '~> 4.3.0'
gem 'font_assets', '~> 0.1'

group :development do
  gem 'foreman', '~> 0.75'
  gem 'quiet_assets'
  gem 'better_errors', '0.9.0'
  gem 'binding_of_caller', '0.7.2'
  gem 'meta_request', '0.2.6'
  gem 'ruby-prof'
  gem 'annotate', ">=2.5.0"
  gem 'awesome_print'
  gem 'letter_opener', '~> 1.3'
end

group :production, :staging, :sales do
  gem 'unicorn', '4.8.3'
  gem 'memcachier'
  gem 'heroku-deflater'
end

group :test, :development do
  gem 'rspec-rails'
  gem 'vcr'
  gem 'fakeweb'
  gem 'guard-rspec'
  gem 'rb-fsevent'
  gem 'terminal-notifier-guard'
  gem 'timecop', '~> 0.7'
end

group :test do
  gem 'database_cleaner'
  gem 'poltergeist', '~> 1.5'
  gem "shoulda-context" # Shoulda matchers for simple validation tests
  gem "shoulda-matchers"
  gem "codeclimate-test-reporter"
  gem "launchy"
  gem 'stripe-ruby-mock', '~> 2.0'
  gem 'thin'
  gem "selenium-webdriver"
end
arches commented 9 years ago

it says urbanairship v2.4. I have a branch with gem 'urbanairship', '~> 3.0' which is what's causing my try problems. Also had to fork unirest-ruby because it pinned rest-client to a patch version. https://github.com/Mashape/unirest-ruby/pull/22 haha I missed it before, there's another PR from january to unpin it also.

bswinnerton commented 9 years ago

@arches & @pdxmele, I proposed a fix for this in #81.

@arches, would you be able to confirm the fix works by adding this in your Gemfile?

gem 'urbanairship', github: 'generalassembly/ruby-library', branch: 'safe-monkeypatch'
jkvoorhis commented 9 years ago

@bswinnerton @arches we have put out a new release that should resolve these issues. Please update to the newest version of our gem (3.0.2), and let us know if issues arise again.