Sha256: e354efe20878f7fbde27baa33bd65f96caf936ccaf9df83e714acbef21d75991

Contents?: true

Size: 1.87 KB

Versions: 14

Compression:

Stored size: 1.87 KB

Contents

require 'rails/generators/base'
require 'mangopay'

module Mangopay
  module Generators
    class InstallGenerator < Rails::Generators::Base
      source_root File.expand_path('../../templates', __FILE__)
      argument :client_id, type: :string,
        desc: 'The id you want to use to query the MangoPay API (must match with the regex ^[a-z0-9_-]{4,20}$)'
      argument :client_name, type: :string, desc: "Full name of you're organization"
      argument :client_email, type: :string, desc: "An email for future contacts"
      class_option :preproduction, type: :boolean, default: true, desc: 'Whether or not use the preproduction environment'

      desc 'Installs all the basic configuration of the mangopay gem'
      def setup
        begin
          client = client_id_valid?
          remove_file 'config/initializers/mangopay.rb'
          @client_id = client_id
          @client_passphrase = client['Passphrase']
          template 'mangopay.rb.erb', 'config/initializers/mangopay.rb'
        rescue => e
          puts e.message
        end
      end

      protected

      def client_id_valid?
        check_client_id_validity
        check_client_id_availablility
      end

      def check_client_id_validity
        if (/^[a-z0-9_-]{4,20}$/ =~ client_id).nil?
          raise "The client_id must match the regexp ^[a-z0-9_-]{4,20}$"
        end
      end

      def check_client_id_availablility
        client = create_client
        if client['Type'] == 'ClientID_already_exist'
          raise client['Message']
        end
        client
      end

      def create_client
        MangoPay.configure do |c|
          c.preproduction = options[:preproduction]
        end
        MangoPay::Client.create({
          ClientID: client_id,
          Name: client_name,
          Email: client_email
        })
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
mangopay-3.0.25 lib/generators/mangopay/install_generator.rb
mangopay-3.0.23 lib/generators/mangopay/install_generator.rb
mangopay-3.0.21 lib/generators/mangopay/install_generator.rb
mangopay-3.0.20 lib/generators/mangopay/install_generator.rb
mangopay-3.0.19 lib/generators/mangopay/install_generator.rb
mangopay-3.0.18 lib/generators/mangopay/install_generator.rb
mangopay-3.0.17 lib/generators/mangopay/install_generator.rb
mangopay-3.0.16 lib/generators/mangopay/install_generator.rb
mangopay-3.0.15 lib/generators/mangopay/install_generator.rb
mangopay-3.0.14 lib/generators/mangopay/install_generator.rb
mangopay-3.0.13 lib/generators/mangopay/install_generator.rb
mangopay-3.0.12 lib/generators/mangopay/install_generator.rb
mangopay-3.0.11 lib/generators/mangopay/install_generator.rb
mangopay-3.0.10 lib/generators/mangopay/install_generator.rb