[#390749] Why are there so many similar/identical methods in core classes — Kassym Dorsel <k.dorsel@...>

Let's look at the Array class and start with method aliases.

14 messages 2011/12/02

[#390755] Inverse Operation of Module#include — Su Zhang <su.comp.lang.ruby@...>

Hi list,

21 messages 2011/12/02
[#390759] Re: Inverse Operation of Module#include — Ryan Davis <ryand-ruby@...> 2011/12/02

[#390764] Re: Inverse Operation of Module#include — Isaac Sanders <isaacbfsanders@...> 2011/12/02

I would suggest an Adapter pattern use here. IF there is something that has

[#390876] black magical hash element vivification — Chad Perrin <code@...>

Ruby (1.9.3p0 to be precise, installed with RVM) is not behaving as I

12 messages 2011/12/05

[#390918] WEB SURVEY about Ruby Community — Intransition <transfire@...>

Did any one else get this survey request?

14 messages 2011/12/07

[#390976] Confusing results from string multiplication — Rob Marshall <robmarshall@...>

Hi,

19 messages 2011/12/08

[#391019] How can I do h["foo"] += "bar" if h["foo"] does not exist? — "Andrew S." <andrewinfosec@...>

Hi there,

13 messages 2011/12/09

[#391027] reading from file without end-of-lines — Janko Muzykant <umrzykus@...>

hi,

20 messages 2011/12/09
[#391028] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

> i'm trying to read a few text values from single file:

[#391031] Re: reading from file without end-of-lines — Robert Klemme <shortcutter@...> 2011/12/09

On Fri, Dec 9, 2011 at 9:58 AM, Gavin Sinclair <gsinclair@gmail.com> wrote:

[#391042] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

On Fri, Dec 9, 2011 at 8:18 PM, Robert Klemme

[#391135] I need advice on what to do next. — Nathan Kossaeth <system_freak_2004@...>

I am new to programming. I read the ebook "Learn to Program" by Chris

23 messages 2011/12/12

[#391216] perf optimization using profile results — Chuck Remes <cremes.devlist@...>

I need some help with optimizing a set of libraries that I use. They are ffi-rzmq, zmqmachine and rzmq_brokers (all up on github).

13 messages 2011/12/13
[#391218] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/13

On Dec 13, 2011, at 9:57 AM, Chuck Remes wrote:

[#391234] Re: perf optimization using profile results — Charles Oliver Nutter <headius@...> 2011/12/14

A couple quick observations.

[#391238] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/14

On Dec 13, 2011, at 7:03 PM, Charles Oliver Nutter wrote:

[#391324] ruby 1.9 threading performance goes non-linear — Joel VanderWerf <joelvanderwerf@...>

12 messages 2011/12/16
[#391325] Re: ruby 1.9 threading performance goes non-linear — Eric Wong <normalperson@...> 2011/12/16

Joel VanderWerf <joelvanderwerf@gmail.com> wrote:

[#391420] Accessing class instance variables from an instance? — "Shareef J." <shareef@...>

Hi there,

26 messages 2011/12/20
[#391454] Re: Accessing class instance variables from an instance? — Khat Harr <myphatproxy@...> 2011/12/21

Actually, now that I'm thinking about it the existing behavior sort of

[#391456] Re: Accessing class instance variables from an instance? — Josh Cheek <josh.cheek@...> 2011/12/21

On Tue, Dec 20, 2011 at 9:42 PM, Khat Harr <myphatproxy@hotmail.com> wrote:

[#391545] Kernel#exit raises an exception? — Khat Harr <myphatproxy@...>

While I was working on embedding an interpreter I wrote a function to

13 messages 2011/12/24

[#391618] rvmsh: An easy installer for RVM — Bryan Dunsmore <dunsmoreb@...>

I have recently begun work on a project called [rvmsh]

12 messages 2011/12/29

[#391783] Mailspam — Gunther Diemant <g.diemant@...>

Is there a way to stop this mailspam of Luca (Mail)?

12 messages 2011/12/29

[#391790] What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...>

Hi!

23 messages 2011/12/29
[#391792] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Gunther Diemant <g.diemant@...> 2011/12/29

I think you can't access instance variables from a class method, so

[#391793] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Thu, Dec 29, 2011 at 15:52, Gunther Diemant <g.diemant@gmx.net> wrote:

[#391811] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/29

On Thu, Dec 29, 2011 at 4:06 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391812] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Fri, Dec 30, 2011 at 00:26, Robert Klemme <shortcutter@googlemail.com> w=

[#391816] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Josh Cheek <josh.cheek@...> 2011/12/30

On Thu, Dec 29, 2011 at 5:47 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391833] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/30

On Fri, Dec 30, 2011 at 12:47 AM, Nikolai Weibull <now@bitwi.se> wrote:

Scope and Instance Variable Question

From: Cleverlemming <cleverlemming@...>
Date: 2011-12-11 00:16:05 UTC
List: ruby-talk #391105
Hail Caesars!

I'm wondering why the instance variable "@spree_invoice_number" is out
of scope in both the authorize and the create_transaction methods in
the appended code. Both of the aforementioned methods are called after
the create_profile method, where the instance variable is
initialized.  I checked to make sure the instance variable name is
unique in both the application and the gem repository.

Thanks in advance for any suggestions!

----------------

class Gateway::AuthorizeNetCim < Gateway
#unabridged version of this file is here: https://gist.github.com/1454271

  attr_accessor :spree_invoice_number

  def provider_class
    self.class
  end

  def options
    # add :test key in the options hash, as that is what the
ActiveMerchant::Billing::AuthorizeNetGateway expects
    if self.prefers? :test_mode
      self.class.default_preferences[:test] = true
    else
      self.class.default_preferences.delete(:test)
    end
    super
  end

  def authorize(amount, creditcard, gateway_options)
     create_transaction(amount, creditcard, :auth_only )
     # spree_invoice_number is  nil within this method:
     # create_transaction(amount, creditcard, :auth_only, :order =>
{:invoice_number => @spree_invoice_number} )
  end


  # Create a new CIM customer profile ready to accept a payment
  def create_profile(payment)
     @spree_invoice_number =  payment.order.number
    if payment.source.gateway_customer_profile_id.nil?
      profile_hash = create_customer_profile(payment)
      logger.debug("create_profile @spree_invoice number:
#{@spree_invoice_number}\n" )
      profile_hash[:customer_address_id] =
create_customer_shipping_profile(profile_hash[:customer_profile_id],
payment)
      payment.source.update_attributes(:gateway_customer_profile_id =>
profile_hash[:customer_profile_id], :gateway_payment_profile_id =>
profile_hash[:customer_payment_profile_id], :address_id =>
profile_hash[:customer_address_id], :invoice_number =>
@spree_invoice_number
      )
    end
    #successfully prints variable to log
    can_access_instance_variable_here
  end

  # simpler form
  def create_profile_from_card(card)
    if card.gateway_customer_profile_id.nil?
      profile_hash = create_customer_profile(card)
      card.update_attributes(:gateway_customer_profile_id =>
profile_hash[:customer_profile_id])
    end
  end

   def can_access_instance_variable_here
        logger.debug("can_access_instance_variable_here @spree_invoice
number: #{@spree_invoice_number}\n" )
    end

    private

    # Create a transaction on a creditcard
    # Set up a CIM profile for the card if one doesn't exist
    # Valid transaction_types are :auth_only, :capture_only
and :auth_capture
    def create_transaction(amount, creditcard, transaction_type,
options = {})
      #create_profile(creditcard, creditcard.gateway_options)
      creditcard.save
      if amount
        amount = "%.2f" % (amount/100.0) # This gateway requires
formated decimal, not cents
      end
      transaction_options = {
        :type => transaction_type,
        :amount => amount,
        :customer_profile_id =>
creditcard.gateway_customer_profile_id,
        :customer_payment_profile_id =>
creditcard.gateway_payment_profile_id,
        :order => {:invoice_number => @spree_invoice_number }
      }.update(options)
      #spree_invoice_number is nil here
          logger.debug("inside create_transaction:
#{transaction_options.inspect}\n" )
      t = cim_gateway.create_customer_profile_transaction(:transaction
=> transaction_options)
      logger.debug("\nAuthorize Net CIM Transaction")
      logger.debug("  transaction_options:
#{transaction_options.inspect}")
      #spree_invoice_number is nil here also
      logger.debug("  response: #{t.inspect}\n")
      #instance variable is nil when can_access_instance_variable_here
called from this method:
      can_access_instance_variable_here
      t
    end


    # Create a new CIM customer profile ready to accept a payment
    # now creates shipping address profile
    def create_customer_profile(payment)
      options = options_for_create_customer_profile(payment)
      response = cim_gateway.create_customer_profile(options)
      if response.success?
        customer_profile_hash =
        { :customer_profile_id =>
response.params["customer_profile_id"],
          :customer_payment_profile_id =>
response.params["customer_payment_profile_id_list"].values.first
           }
          return customer_profile_hash
      else
        payment.gateway_error(response) if
payment.respond_to? :gateway_error
        payment.source.gateway_error(response)
      end
    end


    def options_for_create_customer_profile(payment)
      if payment.is_a? Creditcard
        info = { :bill_to =>
generate_address_hash(payment.address), :payment => { :credit_card =>
payment }}
      else
        info = { :bill_to =>
generate_address_hash(payment.order.bill_address),
                 :payment => { :credit_card => payment.source } }
      end
      validation_mode = preferred_validate_on_profile_create ?
preferred_server.to_sym : :none

      { :profile => { :merchant_customer_id => "#{Time.now.to_f}",
                      #:ship_to_list =>
generate_address_hash(creditcard.checkout.ship_address),
                      :payment_profiles => info },
        :validation_mode => validation_mode }
    end

    def cim_gateway
      ActiveMerchant::Billing::Base.gateway_mode =
preferred_server.to_sym
      gateway_options = options
 
ActiveMerchant::Billing::AuthorizeNetCimGateway.new(gateway_options)
    end

end

In This Thread

Prev Next