From acb7a23021e8d914904436a5b8719ece0bd99e89 Mon Sep 17 00:00:00 2001 From: Jakub Godawa Date: Fri, 17 Dec 2010 19:56:34 +0100 Subject: [PATCH] Moved to Rails 3... again --- README.textile | 34 ++++++ Rakefile | 24 ++++ VERSION | 1 + lib/generators/przelewy24/USAGE | 14 +++ .../przelewy24/przelewy24_generator.rb | 76 ++++++++++++ .../przelewy24/templates/controller.rb | 113 ++++++++++++++++++ lib/generators/przelewy24/templates/helper.rb | 2 + .../przelewy24/templates/migration.rb | 28 +++++ lib/generators/przelewy24/templates/model.rb | 90 ++++++++++++++ .../przelewy24/templates/przelewy24.yml | 51 ++++++++ .../templates/views/.show.html.erb.swp | Bin 0 -> 12288 bytes .../przelewy24/templates/views/_form.html.erb | 31 +++++ .../templates/views/confirm.html.erb | 51 ++++++++ .../przelewy24/templates/views/error.html.erb | 2 + .../przelewy24/templates/views/index.html.erb | 32 +++++ .../przelewy24/templates/views/new.html.erb | 3 + .../przelewy24/templates/views/ok.html.erb | 2 + .../przelewy24/templates/views/show.html.erb | 67 +++++++++++ przelewy24.gemspec | 50 ++++++++ test/database.yml | 6 + test/db/cheese_plugin_test.db | 0 test/test_helper.rb | 16 +++ test/unit/widget_test.rb | 5 + 23 files changed, 698 insertions(+) create mode 100644 README.textile create mode 100644 Rakefile create mode 100644 VERSION create mode 100644 lib/generators/przelewy24/USAGE create mode 100644 lib/generators/przelewy24/przelewy24_generator.rb create mode 100644 lib/generators/przelewy24/templates/controller.rb create mode 100644 lib/generators/przelewy24/templates/helper.rb create mode 100644 lib/generators/przelewy24/templates/migration.rb create mode 100644 lib/generators/przelewy24/templates/model.rb create mode 100644 lib/generators/przelewy24/templates/przelewy24.yml create mode 100644 lib/generators/przelewy24/templates/views/.show.html.erb.swp create mode 100644 lib/generators/przelewy24/templates/views/_form.html.erb create mode 100644 lib/generators/przelewy24/templates/views/confirm.html.erb create mode 100644 lib/generators/przelewy24/templates/views/error.html.erb create mode 100644 lib/generators/przelewy24/templates/views/index.html.erb create mode 100644 lib/generators/przelewy24/templates/views/new.html.erb create mode 100644 lib/generators/przelewy24/templates/views/ok.html.erb create mode 100644 lib/generators/przelewy24/templates/views/show.html.erb create mode 100644 przelewy24.gemspec create mode 100644 test/database.yml create mode 100644 test/db/cheese_plugin_test.db create mode 100644 test/test_helper.rb create mode 100644 test/unit/widget_test.rb diff --git a/README.textile b/README.textile new file mode 100644 index 0000000..f3ad775 --- /dev/null +++ b/README.textile @@ -0,0 +1,34 @@ +h1. przelewy24 + +h2. What it is? + +* This is the gem that consist of generator, to generate files to play with polish payment service "Przelewy24.pl":http://www.przelewy24.pl +* Generator creates model, controller and views for dealing with Przelewy24. + +h2. What for? + +* Application that have products to sell finally sends the form to Przelewy24 service. All transaction security and verification is held by generated files and Przelewy24 side. + +h2. Installation on Rails 3 app + +Add this to your Gemfile +@gem 'przelewy24'@ + +Then install it +@bundle install@ + +Generate the files for Przelewy24 with ModelName and Przelewy24 SellerID +@rails generate przelewy24 payment 1034@ + +and you are free to connect your transactions with Przelewy24 payment service. + +h2. Contribute + +Thanks for forking and helping! + +major issues: +- rspecs or tests to gem needs to be done + +h3. License + +Copyright (c) 2010 ["Jakub Godawa":http://github.com/vysogot], released under the MIT license diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..ed0da25 --- /dev/null +++ b/Rakefile @@ -0,0 +1,24 @@ +require 'rake/testtask' + +Rake::TestTask.new do |test| + test.pattern = 'test/**/*_test.rb' + test.libs << 'test' +end + + +begin + require "jeweler" + Jeweler::Tasks.new do |gem| + gem.name = "przelewy24" + gem.homepage = "http://github.com/rails3-przelewy24" + gem.summary = "This is a Rails engine to play with Polish payment service Przelewy24.pl" + gem.description = "Gem consist of a generator 'przelewy24'. Application that have products for sale finally sends the form to Przelewy24 service. All transaction security and verification is held by generated files and Przelewy24 side." + gem.email = "jakub.godawa@gmail.com" + gem.authors = ["Jakub Godawa"] + gem.files = Dir["{lib}/**/*", "{app}/**/*", "{public}/**/*", "{config}/**/*"] + gem.rubyforge_project = "rails-p24" + end + Jeweler::GemcutterTasks.new +rescue + puts "Jeweler or dependency not available." +end diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..bcab45a --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.3 diff --git a/lib/generators/przelewy24/USAGE b/lib/generators/przelewy24/USAGE new file mode 100644 index 0000000..e647b15 --- /dev/null +++ b/lib/generators/przelewy24/USAGE @@ -0,0 +1,14 @@ +Description: + Stubs out new model and controller for Przelewy24 payment service. + Pass the name of the model you want to be responsible for that. + +Example: + rails generate przelewy24 Payment + + This will create: + app/models/payment.rb + app/controllers/payments_controller.rb + app/views/payments/... + db/migration/*_create_payments.rb + config/locales/przelewy24.yml + routes... diff --git a/lib/generators/przelewy24/przelewy24_generator.rb b/lib/generators/przelewy24/przelewy24_generator.rb new file mode 100644 index 0000000..25ab26d --- /dev/null +++ b/lib/generators/przelewy24/przelewy24_generator.rb @@ -0,0 +1,76 @@ +class Przelewy24Generator < Rails::Generators::Base + source_root File.expand_path('../templates', __FILE__) + argument :class_name, :type => :string, :default => "Payment" + argument :seller_id, :type => :string, :default => "1000" + class_option :migration, :type => :boolean, :default => true, :desc => "Include migration file." + + def generate_files + + # Generate views + views.each do |view| + template "views/#{view}.html.erb", "app/views/#{plural_name}/#{view}.html.erb" + end + + # Copy locales + copy_file "przelewy24.yml", "config/locales/przelewy24.yml" + + # Generate controller + template 'controller.rb', "app/controllers/#{plural_name}_controller.rb" + + # Generate helper + template 'helper.rb', "app/helpers/#{plural_name}_helper.rb" + + # Generate model + template 'model.rb', "app/models/#{singular_name}.rb" + + # Generate routes + routes_string=< :development) + end + end + + private + + def views + %w(new index _form show ok error confirm) + end + + + # imagine model: SuperService + def controller_class_name + class_name.pluralize # SuperServices + end + + def singular_name + class_name.underscore # super_service + end + + def migration_name + "Create#{controller_class_name}" # CreateSuperServices + end + + def plural_name + singular_name.pluralize # super_services + end + + alias table_name plural_name # super_services + alias file_name singular_name # super_service +end diff --git a/lib/generators/przelewy24/templates/controller.rb b/lib/generators/przelewy24/templates/controller.rb new file mode 100644 index 0000000..d26b741 --- /dev/null +++ b/lib/generators/przelewy24/templates/controller.rb @@ -0,0 +1,113 @@ +# responsible for transactions and connection with payments service +# Przelewy24.pl +class <%= controller_class_name %>Controller < ApplicationController + + # requests from Przelewy24.pl + protect_from_forgery :except => [:ok, :error] + + # If you want to use ssl, uncomment that line + # before_filter :require_ssl, :only => [:new, :confirm] + + def index + @<%= table_name %> = <%= class_name %>.all + end + + def show + @<%= file_name %> = <%= class_name %>.find(params[:id]) + end + + def new + @<%= file_name %> = <%= class_name %>.new + end + + # create new transaction with <%= file_name %> before verifing it with <%= file_name %> confirm form + def create + @<%= file_name %> = <%= class_name %>.new(params[:<%= file_name %>]) + + if @<%= file_name %>.save + flash[:notice] = t('transaction_created') + session[:<%= file_name %>_id] = @<%= file_name %>.id + + redirect_to confirm_<%= plural_name %>_url + else + render :action => 'new' + end + end + + def destroy + @<%= file_name %> = <%= class_name %>.find(params[:id]) + @<%= file_name %>.destroy + flash[:notice] = t('transaction_destroyed') + redirect_to <%= table_name %>_url + end + + # transaction confirmation + def confirm + @<%= file_name %> = <%= class_name %>.find(session[:<%= file_name %>_id]) + end + + # first verification from Przelewy24.pl + def ok + @<%= file_name %> = <%= class_name %>.find_by_session_id(params[:p24_session_id]) + if @<%= file_name %> && @<%= file_name %>.update_attributes(:order_id => params[:p24_order_id], + :metoda => params[:p24_karta], + :order_id_full => params[:p24_order_id_full]) + + # verification with service - name in polish to be consistent with current PHP spec + przelewy24_weryfikuj + else + flash[:error] = 'Transaction not found' + redirect_to <%= table_name %>_url + end + end + + def error + end + + private + + # Przelewy24.pl final verification process + def przelewy24_weryfikuj + + # verification script url + url = URI.parse('https://secure.przelewy24.pl/transakcja.php') + + # post request with '&' PHP connectors + req = Net::HTTP::Post.new(url.path) + req.set_form_data(@<%= file_name %>.attributes_for_verify, '&') + + # create new http object with ssl usage + http = Net::HTTP.new(url.host, url.port) + http.use_ssl = true + + # UNCOMMENT THAT IF OpenSSL throws unwanted errors + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + + # get the response from Przelewy24.pl + res = http.start {|http| http.request(req) } + + case res + when Net::HTTPSuccess, Net::HTTPRedirection + results = res.body.split("\r\n") + if results[1] == "TRUE" + + # check if transaction is not already used + unless @<%= file_name %>.is_verified + @<%= file_name %>.update_attribute(:is_verified, true) + return + else + error_desc = t('transaction_already_used') + end + else + error_desc = "#{results[2]} #{results[3]}" + end + else + error_desc = t('connection_error') + end + + @<%= file_name %>.update_attribute(:error_code, results[2]) + # display error flash and redirect to error action + flash[:error] = error_desc + redirect_to :action => :error + end +end diff --git a/lib/generators/przelewy24/templates/helper.rb b/lib/generators/przelewy24/templates/helper.rb new file mode 100644 index 0000000..9bd821b --- /dev/null +++ b/lib/generators/przelewy24/templates/helper.rb @@ -0,0 +1,2 @@ +module <%= controller_class_name %>Helper +end diff --git a/lib/generators/przelewy24/templates/migration.rb b/lib/generators/przelewy24/templates/migration.rb new file mode 100644 index 0000000..2be46fd --- /dev/null +++ b/lib/generators/przelewy24/templates/migration.rb @@ -0,0 +1,28 @@ +class <%= migration_name %> < ActiveRecord::Migration + def self.up + create_table :<%= table_name %> do |t| + t.string :session_id + t.string :id_sprzedawcy + t.integer :kwota + t.string :klient + t.string :adres + t.string :kod + t.string :miasto + t.string :kraj + t.string :email + t.text :opis + t.integer :order_id + t.integer :order_id_full + t.string :error_code + t.string :language + t.integer :metoda + t.boolean :is_verified, :default => false + + t.timestamps + end + end + + def self.down + drop_table :<%= table_name %> + end +end diff --git a/lib/generators/przelewy24/templates/model.rb b/lib/generators/przelewy24/templates/model.rb new file mode 100644 index 0000000..66bd369 --- /dev/null +++ b/lib/generators/przelewy24/templates/model.rb @@ -0,0 +1,90 @@ +# responsible for process with payment service Przelewy24.pl +class <%= class_name %> < ActiveRecord::Base + + before_create :set_session_id + + SELLER_ID = <%= seller_id %> # Put here you account login on przelewy24 + COUNTRY = 'PL' + LANGUAGE = 'pl' + + validates_presence_of :email, :klient, :adres, :kod, :miasto + validates_format_of :kod, :with => /[0-9]{2}-[0-9]{3}/ # polish post code check + + # price to display - in db is in cents + def kwota_pln + kwota.to_f/100 + end + + # generate 64-char long key to przelewy24.pl + def self.generate_session_id + <%= class_name %>Tools::generate(64, 26, 97) + end + + # attributes that are needed in second verification + def attributes_for_verify + { + 'p24_session_id' => session_id, + 'p24_order_id' => order_id, + 'p24_id_sprzedawcy' => SELLER_ID, + 'p24_kwota' => kwota + } + end + + # attibutes that are needed for first contact with przelewy24.pl + def attributes_for_p24 + { + 'p24_session_id' => session_id, + 'p24_id_sprzedawcy' => SELLER_ID, + 'p24_opis' => <%= class_name %>Tools::replace_polish_chars(opis), + 'p24_kwota' => kwota, + 'p24_klient' => <%= class_name %>Tools::replace_polish_chars(klient), + 'p24_adres' => <%= class_name %>Tools::replace_polish_chars(adres), + 'p24_kod' => kod, + 'p24_miasto' => <%= class_name %>Tools::replace_polish_chars(miasto), + 'p24_kraj' => COUNTRY, + 'p24_email' => email, + 'p24_language' => LANGUAGE + } + end + + # after the payment correct verification + def set_account + transaction do + unless is_verified + update_attribute(:is_verified, true) + + # Here you should put what happen after correct verification process + end + end + end + + private + + # setting session id for connection with przelewy24 + def set_session_id + self.session_id = <%= class_name %>.generate_session_id + self.id_sprzedawcy = SELLER_ID + self.kraj = COUNTRY + self.language = LANGUAGE + end + + class <%= class_name %>Tools + + # Generate a string with given length from given ascii range + def self.generate(length, from, to) + string = "" + length.times { |i| string << (rand(from)+to).chr } + string + end + + # Replace polish chars, so there will be no funny signs on Przelewy24 in transactions + def self.replace_polish_chars(string) + ascii = "acelnoszzACELNOSZZ" + cep = "\271\346\352\263\361\363\234\277\237\245\306\312\243\321\323\214\257\217" + string = Iconv.new("cp1250", "UTF-8").iconv(string) + string.tr(cep,ascii) + end + + end + +end diff --git a/lib/generators/przelewy24/templates/przelewy24.yml b/lib/generators/przelewy24/templates/przelewy24.yml new file mode 100644 index 0000000..8780ca6 --- /dev/null +++ b/lib/generators/przelewy24/templates/przelewy24.yml @@ -0,0 +1,51 @@ +en: + przelewy24: + new: "New transaction" + show: "Details" + are_you_sure: "Are you sure you want to delete this transaction?" + destroy: "Delete" + view_all: "List of transactions" + submit: "Create transaction" + submit_to_p24: "Go to Przelewy24.pl" + no_transactions: "No transactions to list" + success: "Verification success" + failure: "Verification failure" + + # attributes + order: "Order" + klient: "Client" + kwota: "Value" + email: "Email" + adres: "Address" + kod: "Post code" + miasto: "City" + opis: "Descripiton" + metoda: "Payment method" + is_verified: "Verified?" + +pl: + przelewy24: + new: "Nowa transakcja" + show: "Szczegóły" + are_you_sure: "Czy na pewno chcesz usunąć tę transakcję?" + destroy: "Usuń" + view_all: "Lista transakcji" + submit: "Nowa transakcja" + submit_to_p24: "Wyślij do Przelewy24.pl" + no_transactions: "Brak transakcji" + success: "Weryfikacja zakończona sukcesem" + failure: "Błąd weryfikacji" + + # attributes + order: "Zamówienie" + klient: "Klient" + kwota: "Wartość" + email: "Email" + adres: "Adres" + kod: "Kod pocztowy" + miasto: "Miasto" + opis: "Opis" + metoda: "Metoda płatności" + is_verified: "Zweryfikowana?" + + diff --git a/lib/generators/przelewy24/templates/views/.show.html.erb.swp b/lib/generators/przelewy24/templates/views/.show.html.erb.swp new file mode 100644 index 0000000000000000000000000000000000000000..38decc04e023514624cdd6633838ae60eda95d06 GIT binary patch literal 12288 zcmeI2L2J}N7>1|bw6>LcDClLZl(kSdtro0hceRuXwJr*6MFfen&FpU4B(qGiUA9OM z>RCh(52B(KrGLYM7eW02f(Jc_s2~Ne`p&wj8%i|=FZu-@viT0pNs4Gr$^-N$!#&yo`|KnBPF86X2>fDDiUGC&6YGXqhjjeW(Ow}Elc)&x7+ z$N(8217v^n_6EELYv2~R z0j>cLWWfj+27ADICu5($d+-801`ohpa1~qt=fDiefF95dI>CAeW6!`-@C2-aD_|Kc zfs5cM7zTr&2YlYi*az?qJO>ZKJ#ZV;!AURy#y~Il(vCjhBX|iOf&1VNxD3vNSug|6 zfLCyF6Bs9}#tUs^fDDiUGC&5%02v?yf6YL~s^l2wnZCX(_uOE?juej$q<$_2O`9d4 zw(z`E{{T+Q^3V-RRZnO;5WeJnxzMhNsEi+*$2c;Kw5pqw;~T{c@XubK zwB&VF>RQQkN`jqX@n+Z?4CNl?n=8@17l z)jV#5{Xv!|U_g}22+W+Dy-zi($@8SvO51bFi6u^$Iv+24GBYokHG~oumb1+ literal 0 HcmV?d00001 diff --git a/lib/generators/przelewy24/templates/views/_form.html.erb b/lib/generators/przelewy24/templates/views/_form.html.erb new file mode 100644 index 0000000..0a35274 --- /dev/null +++ b/lib/generators/przelewy24/templates/views/_form.html.erb @@ -0,0 +1,31 @@ +<%%= form_for @<%= singular_name %> do |f| %> +

+ <%%= label_tag t('przelewy24.email') %>
+ <%%= f.text_field :email, :value => @<%= singular_name %>.email %> +

+

+ <%%= label_tag t('przelewy24.klient') %>
+ <%%= f.text_field :klient, :value => @<%= singular_name %>.klient %> +

+

+ <%%= label_tag t('przelewy24.adres') %>
+ <%%= f.text_field :adres, :value => @<%= singular_name %>.adres %> +

+

+ <%%= label_tag t('przelewy24.kod') %>
+ <%%= f.text_field :kod, :value => @<%= singular_name %>.kod %> +

+

+ <%%= label_tag t('przelewy24.miasto') %>
+ <%%= f.text_field :miasto, :value => @<%= singular_name %>.miasto %> +

+

+ <%%= label_tag t('przelewy24.opis') %>
+ <%%= f.text_field :opis, :value => @<%= singular_name %>.opis %> +

+

+ <%%= label_tag t('przelewy24.kwota') %>
+ <%%= f.text_field :kwota, :value => @<%= singular_name %>.kwota %> +

+

<%%= f.submit t('przelewy24.submit') %>

+<%% end %> diff --git a/lib/generators/przelewy24/templates/views/confirm.html.erb b/lib/generators/przelewy24/templates/views/confirm.html.erb new file mode 100644 index 0000000..ad340a7 --- /dev/null +++ b/lib/generators/przelewy24/templates/views/confirm.html.erb @@ -0,0 +1,51 @@ +<%% if Rails.env.eql?('development') %> + <%%= link_to 'normal payment', confirm_<%= plural_name %>_url %> + <%%= link_to 'test ok payment', confirm_<%= plural_name %>_url(:test => 'TEST_OK') %> + <%%= link_to 'test error payment', confirm_<%= plural_name %>_url(:test => 'TEST_ERR') %> +<%% end %> + +<%%= form_tag 'https://secure.przelewy24.pl/index.php' do %> + + <%% @<%= singular_name %>.attributes_for_p24.each do |key, value| %> + <%% if key == 'p24_opis' %> + <%%= hidden_field_tag key, params[:test] || value %> + <%% else %> + <%%= hidden_field_tag key, value %> + <%% end %> + <%% end %> + + <%%= hidden_field_tag :p24_return_url_ok, ok_<%= plural_name %>_url %> + <%%= hidden_field_tag :p24_return_url_error, error_<%= plural_name %>_url %> + +
+

+ <%%= t('przelewy24.email') %>: + <%%=h @<%= singular_name %>.email %> +

+

+ <%%= t('przelewy24.klient') %>: + <%%=h @<%= singular_name %>.klient %> +

+

+ <%%= t('przelewy24.adres') %>: + <%%=h @<%= singular_name %>.adres %> +

+

+ <%%= t('przelewy24.kod') %>: + <%%=h @<%= singular_name %>.kod %> +

+

+ <%%= t('przelewy24.miasto') %>: + <%%=h @<%= singular_name %>.miasto %> +

+

+ <%%= t('przelewy24.opis') %>: + <%%=h @<%= singular_name %>.opis %> +

+

+ <%%= t('przelewy24.kwota') %>: + <%%=h @<%= singular_name %>.kwota %> +

+
+

<%%= submit_tag t('przelewy24.submit_to_p24') %>

+<%% end %> diff --git a/lib/generators/przelewy24/templates/views/error.html.erb b/lib/generators/przelewy24/templates/views/error.html.erb new file mode 100644 index 0000000..47ec75c --- /dev/null +++ b/lib/generators/przelewy24/templates/views/error.html.erb @@ -0,0 +1,2 @@ +<%%= t('przelewy24.failure') %>
+<%%= link_to t('przelewy24.view_all'), <%= plural_name %>_url %> diff --git a/lib/generators/przelewy24/templates/views/index.html.erb b/lib/generators/przelewy24/templates/views/index.html.erb new file mode 100644 index 0000000..3cd045a --- /dev/null +++ b/lib/generators/przelewy24/templates/views/index.html.erb @@ -0,0 +1,32 @@ +<%% t('przelewy24.view_all') %> + +<%% if @<%= plural_name %>.present? %> + + + + + + + + + + + <%% for <%= singular_name %> in @<%= plural_name %> %> + + + + + + + + + + + + <%% end %> +
<%%= t('przelewy24.order') %><%%= t('przelewy24.klient') %><%%= t('przelewy24.kwota') %><%%= t('przelewy24.email') %><%%= t('przelewy24.opis') %><%%= t('przelewy24.metoda') %><%%= t('przelewy24.is_verified') %>
<%%=h <%= singular_name %>.order_id %><%%=h <%= singular_name %>.klient %><%%=h number_to_currency(<%= singular_name %>.kwota_pln) %><%%=h <%= singular_name %>.email %><%%=h <%= singular_name %>.opis %><%%=h <%= singular_name %>.metoda %><%%=h <%= singular_name %>.is_verified %><%%= link_to t('przelewy24.show'), <%= singular_name %> %><%%= link_to t('przelewy24.destroy'), <%= singular_name %>, :confirm => t('przelewy24.are_you_sure'), :method => :delete %>
+<%% else %> +

<%%= t('przelewy24.no_transactions') %>

+<%% end %> + +<%%= link_to t('przelewy24.new'), new_<%= singular_name %>_path %> diff --git a/lib/generators/przelewy24/templates/views/new.html.erb b/lib/generators/przelewy24/templates/views/new.html.erb new file mode 100644 index 0000000..914fa69 --- /dev/null +++ b/lib/generators/przelewy24/templates/views/new.html.erb @@ -0,0 +1,3 @@ +<%% t('transaction_data') %> + +<%%= render :partial => 'form' %> diff --git a/lib/generators/przelewy24/templates/views/ok.html.erb b/lib/generators/przelewy24/templates/views/ok.html.erb new file mode 100644 index 0000000..f9c8e5e --- /dev/null +++ b/lib/generators/przelewy24/templates/views/ok.html.erb @@ -0,0 +1,2 @@ +<%%= t('przelewy24.success') %>
+<%%= link_to t('przelewy24.view_all'), <%= plural_name %>_url %> diff --git a/lib/generators/przelewy24/templates/views/show.html.erb b/lib/generators/przelewy24/templates/views/show.html.erb new file mode 100644 index 0000000..3af9eff --- /dev/null +++ b/lib/generators/przelewy24/templates/views/show.html.erb @@ -0,0 +1,67 @@ +<%% t('przelewy24.show') %> + +

+ Session: + <%%=h @<%= singular_name %>.session_id %> +

+

+ Id Sprzedawcy: + <%%=h @<%= singular_name %>.id_sprzedawcy %> +

+

+ Kwota: + <%%=h @<%= singular_name %>.kwota %> +

+

+ Klient: + <%%=h @<%= singular_name %>.klient %> +

+

+ Adres: + <%%=h @<%= singular_name %>.adres %> +

+

+ Kod: + <%%=h @<%= singular_name %>.kod %> +

+

+ Miasto: + <%%=h @<%= singular_name %>.miasto %> +

+

+ Kraj: + <%%=h @<%= singular_name %>.kraj %> +

+

+ Email: + <%%=h @<%= singular_name %>.email %> +

+

+ Opis: + <%%=h @<%= singular_name %>.opis %> +

+

+ Order: + <%%=h @<%= singular_name %>.order_id %> +

+

+ Order Id Full: + <%%=h @<%= singular_name %>.order_id_full %> +

+

+ Error Code: + <%%=h @<%= singular_name %>.error_code %> +

+

+ Language: + <%%=h @<%= singular_name %>.language %> +

+

+ Metoda: + <%%=h @<%= singular_name %>.metoda %> +

+ +

+ <%%= link_to t('przelewy24.destroy'), @<%= singular_name %>, :confirm => 'Are you sure?', :method => :delete %> | + <%%= link_to t('przelewy24.view_all'), <%= singular_name %>s_path %> +

diff --git a/przelewy24.gemspec b/przelewy24.gemspec new file mode 100644 index 0000000..598ecbc --- /dev/null +++ b/przelewy24.gemspec @@ -0,0 +1,50 @@ +# Generated by jeweler +# DO NOT EDIT THIS FILE DIRECTLY +# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{przelewy24} + s.version = "0.0.3" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Jakub Godawa"] + s.date = %q{2010-12-17} + s.description = %q{Gem consist of a generator 'przelewy24'. Application that have products for sale finally sends the form to Przelewy24 service. All transaction security and verification is held by generated files and Przelewy24 side.} + s.email = %q{jakub.godawa@gmail.com} + s.extra_rdoc_files = [ + "README.textile" + ] + s.files = [ + "lib/generators/przelewy24/USAGE", + "lib/generators/przelewy24/przelewy24_generator.rb", + "lib/generators/przelewy24/templates/controller.rb", + "lib/generators/przelewy24/templates/helper.rb", + "lib/generators/przelewy24/templates/migration.rb", + "lib/generators/przelewy24/templates/model.rb", + "lib/generators/przelewy24/templates/przelewy24.yml", + "lib/generators/przelewy24/templates/views/_form.html.erb", + "lib/generators/przelewy24/templates/views/confirm.html.erb", + "lib/generators/przelewy24/templates/views/error.html.erb", + "lib/generators/przelewy24/templates/views/index.html.erb", + "lib/generators/przelewy24/templates/views/new.html.erb", + "lib/generators/przelewy24/templates/views/ok.html.erb", + "lib/generators/przelewy24/templates/views/show.html.erb" + ] + s.homepage = %q{http://github.com/rails3-przelewy24} + s.require_paths = ["lib"] + s.rubyforge_project = %q{rails-p24} + s.rubygems_version = %q{1.3.7} + s.summary = %q{This is a Rails engine to play with Polish payment service Przelewy24.pl} + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 3 + + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then + else + end + else + end +end + diff --git a/test/database.yml b/test/database.yml new file mode 100644 index 0000000..35ab898 --- /dev/null +++ b/test/database.yml @@ -0,0 +1,6 @@ +test: + adapter: sqlite3 + database: db/cheese_plugin_test.db + encoding: unicode + pool: 5 + timeout: 5000 diff --git a/test/db/cheese_plugin_test.db b/test/db/cheese_plugin_test.db new file mode 100644 index 0000000..e69de29 diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 0000000..450f144 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,16 @@ +ENV["RAILS_ENV"] = "test" + +require 'test/unit' +require 'rubygems' +require 'yaml' +require 'active_record' +require 'sqlite3' + +require File.dirname(__FILE__) + '/../app/models/cheese/widget.rb' + +def load_schema + config = YAML::load( IO.read( File.dirname(__FILE__) + '/database.yml') ) + + # Manually initialize the database + SQLite3::Database.new(File.dirname(__FILE__) + '/' + config['test']['database']) +end diff --git a/test/unit/widget_test.rb b/test/unit/widget_test.rb new file mode 100644 index 0000000..fd355d0 --- /dev/null +++ b/test/unit/widget_test.rb @@ -0,0 +1,5 @@ +require 'test_helper' + +class WidgetTest < Test::Unit::TestCase + load_schema +end