kaui 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f9dda6885d003eff4164274878c7dd5e0781cf4d
4
+ data.tar.gz: a19b25d1af270e4b3355df0a5ac33d117e5e1a95
5
+ SHA512:
6
+ metadata.gz: 0c22f0940c23cb17f5afa93c937da47ced42edd855b218b14de02eb4cb4d8ed3e9ff6996075e8ce8a53f51f1a08aadc8f72e51da69f748ceda923c0b298de51d
7
+ data.tar.gz: 5fbcc849e2de8d1125b903f259a11df802dc5aba6597d9c744267ead7b80cf39896694f43a48712e4433c04e0ebd1e99c17efe5144a0651843c45fc39067e526
data/.travis.yml CHANGED
@@ -28,3 +28,6 @@ matrix:
28
28
 
29
29
  env:
30
30
  - MYSQL_PASSWORD=''
31
+
32
+ #force travis to use only 'bundle install' instead of 'bundle install --deployments'
33
+ bundler_args: ''
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kaui (0.2.5)
4
+ kaui (0.2.6)
5
5
  d3_rails (~> 2.10.3)
6
6
  jquery-rails (~> 2.0)
7
- killbill-client (~> 0.1.1)
7
+ killbill-client (~> 0.1.3)
8
8
  money-rails (~> 0.5.0)
9
9
  rails (~> 3.2.3)
10
10
  rest-client (~> 1.6.7)
@@ -12,48 +12,47 @@ PATH
12
12
  GEM
13
13
  remote: http://rubygems.org/
14
14
  specs:
15
- actionmailer (3.2.9)
16
- actionpack (= 3.2.9)
17
- mail (~> 2.4.4)
18
- actionpack (3.2.9)
19
- activemodel (= 3.2.9)
20
- activesupport (= 3.2.9)
15
+ actionmailer (3.2.14)
16
+ actionpack (= 3.2.14)
17
+ mail (~> 2.5.4)
18
+ actionpack (3.2.14)
19
+ activemodel (= 3.2.14)
20
+ activesupport (= 3.2.14)
21
21
  builder (~> 3.0.0)
22
22
  erubis (~> 2.7.0)
23
23
  journey (~> 1.0.4)
24
- rack (~> 1.4.0)
24
+ rack (~> 1.4.5)
25
25
  rack-cache (~> 1.2)
26
26
  rack-test (~> 0.6.1)
27
27
  sprockets (~> 2.2.1)
28
- activemodel (3.2.9)
29
- activesupport (= 3.2.9)
28
+ activemodel (3.2.14)
29
+ activesupport (= 3.2.14)
30
30
  builder (~> 3.0.0)
31
- activerecord (3.2.9)
32
- activemodel (= 3.2.9)
33
- activesupport (= 3.2.9)
31
+ activerecord (3.2.14)
32
+ activemodel (= 3.2.14)
33
+ activesupport (= 3.2.14)
34
34
  arel (~> 3.0.2)
35
35
  tzinfo (~> 0.3.29)
36
- activeresource (3.2.9)
37
- activemodel (= 3.2.9)
38
- activesupport (= 3.2.9)
39
- activesupport (3.2.9)
40
- i18n (~> 0.6)
36
+ activeresource (3.2.14)
37
+ activemodel (= 3.2.14)
38
+ activesupport (= 3.2.14)
39
+ activesupport (3.2.14)
40
+ i18n (~> 0.6, >= 0.6.4)
41
41
  multi_json (~> 1.0)
42
42
  arel (3.0.2)
43
43
  builder (3.0.4)
44
44
  d3_rails (2.10.3)
45
45
  railties (>= 3.1.0)
46
46
  erubis (2.7.0)
47
- hike (1.2.1)
47
+ hike (1.2.3)
48
48
  i18n (0.6.4)
49
49
  journey (1.0.4)
50
- jquery-rails (2.2.0)
50
+ jquery-rails (2.3.0)
51
51
  railties (>= 3.0, < 5.0)
52
52
  thor (>= 0.14, < 2.0)
53
53
  json (1.8.0)
54
- killbill-client (0.1.1)
55
- mail (2.4.4)
56
- i18n (>= 0.4.0)
54
+ killbill-client (0.1.3)
55
+ mail (2.5.4)
57
56
  mime-types (~> 1.16)
58
57
  treetop (~> 1.4.8)
59
58
  mime-types (1.23)
@@ -64,8 +63,8 @@ GEM
64
63
  activesupport (~> 3.0)
65
64
  money (~> 5.0.0)
66
65
  railties (~> 3.0)
67
- multi_json (1.7.6)
68
- mysql2 (0.3.11)
66
+ multi_json (1.7.9)
67
+ mysql2 (0.3.13)
69
68
  polyglot (0.3.3)
70
69
  rack (1.4.5)
71
70
  rack-cache (1.2)
@@ -74,22 +73,22 @@ GEM
74
73
  rack
75
74
  rack-test (0.6.2)
76
75
  rack (>= 1.0)
77
- rails (3.2.9)
78
- actionmailer (= 3.2.9)
79
- actionpack (= 3.2.9)
80
- activerecord (= 3.2.9)
81
- activeresource (= 3.2.9)
82
- activesupport (= 3.2.9)
76
+ rails (3.2.14)
77
+ actionmailer (= 3.2.14)
78
+ actionpack (= 3.2.14)
79
+ activerecord (= 3.2.14)
80
+ activeresource (= 3.2.14)
81
+ activesupport (= 3.2.14)
83
82
  bundler (~> 1.0)
84
- railties (= 3.2.9)
85
- railties (3.2.9)
86
- actionpack (= 3.2.9)
87
- activesupport (= 3.2.9)
83
+ railties (= 3.2.14)
84
+ railties (3.2.14)
85
+ actionpack (= 3.2.14)
86
+ activesupport (= 3.2.14)
88
87
  rack-ssl (~> 1.3.2)
89
88
  rake (>= 0.8.7)
90
89
  rdoc (~> 3.4)
91
90
  thor (>= 0.14.6, < 2.0)
92
- rake (10.0.4)
91
+ rake (10.1.0)
93
92
  rdoc (3.12.2)
94
93
  json (~> 1.4)
95
94
  rest-client (1.6.7)
@@ -101,13 +100,12 @@ GEM
101
100
  tilt (~> 1.1, != 1.3.0)
102
101
  thor (0.18.1)
103
102
  tilt (1.4.1)
104
- treetop (1.4.12)
103
+ treetop (1.4.14)
105
104
  polyglot
106
105
  polyglot (>= 0.3.1)
107
106
  tzinfo (0.3.37)
108
107
 
109
108
  PLATFORMS
110
- java
111
109
  ruby
112
110
 
113
111
  DEPENDENCIES
@@ -57,6 +57,7 @@ class Kaui::AccountTimelinesController < Kaui::EngineController
57
57
  @bundle_names[bundle.external_key] = Kaui.bundle_key_display_string.call(bundle.external_key)
58
58
  end
59
59
  end
60
+
60
61
  if params.has_key?(:external_key)
61
62
  @selected_bundle = @bundle_names[params[:external_key]]
62
63
  end
@@ -25,6 +25,7 @@ class Kaui::AccountsController < Kaui::EngineController
25
25
  begin
26
26
  @tags = Kaui::KillbillHelper::get_tags_for_account(@account.account_id).sort
27
27
  @account_emails = Kaui::AccountEmail.where(:account_id => @account.account_id)
28
+
28
29
  @payment_methods = Kaui::KillbillHelper::get_non_external_payment_methods(@account.account_id)
29
30
  @bundles = Kaui::KillbillHelper::get_bundles(@account.account_id)
30
31
 
@@ -108,18 +109,20 @@ class Kaui::AccountsController < Kaui::EngineController
108
109
  payment_method = KillBillClient::Model::PaymentMethod.new
109
110
  payment_method.account_id = account_id
110
111
  payment_method.plugin_name = params[:plugin_name] || Kaui.creditcard_plugin_name.call
112
+
111
113
  payment_method.plugin_info = {
112
- 'type' => 'CreditCard',
113
- 'cardType' => @card_type,
114
- 'cardHolderName' => @card_holder_name,
115
- 'expirationDate' => "#{@expiration_year}-#{@expiration_month}",
116
- 'maskNumber' => @credit_card_number,
117
- 'address1' => @address1,
118
- 'address2' => @address2,
119
- 'city' => @city,
120
- 'country' => @country,
121
- 'postalCode' => @postal_code,
122
- 'state' => @state
114
+ 'type' => 'CreditCard',
115
+ 'ccType' => @card_type,
116
+ 'ccName' => @card_holder_name,
117
+ 'ccExpirationMonth' => @expiration_month,
118
+ 'ccExpirationYear' => @expiration_year,
119
+ 'ccLast4' => @credit_card_number[-4,4],
120
+ 'address1' => @address1,
121
+ 'address2' => @address2,
122
+ 'city' => @city,
123
+ 'country' => @country,
124
+ 'zip' => @postal_code,
125
+ 'state' => @state
123
126
  }
124
127
 
125
128
  begin
@@ -6,17 +6,22 @@ class Kaui::InvoicesController < Kaui::EngineController
6
6
  end
7
7
 
8
8
  def show
9
- @invoice_id = params[:id]
10
- if @invoice_id.present?
9
+ invoice_id_or_number = params[:id]
10
+ if invoice_id_or_number.present?
11
+
11
12
  begin
12
- @invoice = Kaui::KillbillHelper.get_invoice(@invoice_id)
13
+ @invoice = Kaui::KillbillHelper.get_invoice(invoice_id_or_number)
13
14
  if @invoice.present?
15
+ @invoice_id = @invoice.invoice_id
14
16
  @account = Kaui::KillbillHelper.get_account(@invoice.account_id)
15
17
  @payments = Kaui::KillbillHelper.get_payments(@invoice_id)
16
18
  @payment_methods = {}
17
19
  @payments.each do |payment|
18
20
  # The payment method may have been deleted
19
21
  @payment_methods[payment.payment_id] = Kaui::KillbillHelper::get_payment_method(payment.payment_method_id) rescue nil
22
+
23
+ #get the refunds for the payment
24
+ payment.refunds = Kaui::KillbillHelper::get_refunds_for_payment(payment.payment_id) rescue []
20
25
  end
21
26
 
22
27
  @subscriptions = {}
@@ -37,11 +42,11 @@ class Kaui::InvoicesController < Kaui::EngineController
37
42
  flash[:error] = "Invoice items for #{@invoice_id} not found"
38
43
  end
39
44
  else
40
- flash[:error] = "Invoice #{@invoice_id} not found"
45
+ flash[:error] = "Invoice #{invoice_id_or_number} not found"
41
46
  render :action => :index
42
47
  end
43
48
  rescue => e
44
- flash[:error] = "Error while getting information for invoice #{@invoice_id}: #{as_string(e)}"
49
+ flash[:error] = "Error while getting information for invoice #{invoice_id_or_number}: #{as_string(e)}"
45
50
  end
46
51
  else
47
52
  flash[:error] = "No id given"
@@ -2,12 +2,13 @@ require 'kaui/killbill_helper'
2
2
 
3
3
  class Kaui::PaymentMethodsController < Kaui::EngineController
4
4
  def index
5
- if params[:account_id]
5
+ if params[:key]
6
+ params[:key].strip!
6
7
  begin
7
- @payment_methods = Kaui::KillbillHelper.get_payment_methods params[:account_id]
8
+ @payment_methods = Kaui::KillbillHelper.get_payment_methods params[:key]
8
9
  render :show
9
10
  rescue => e
10
- flash.now[:error] = "Error while retrieving payment method for account #{params[:id]}: #{as_string(e)}"
11
+ flash.now[:error] = "Error while retrieving payment method for account: #{params[:key]}: #{as_string(e)}"
11
12
  end
12
13
  end
13
14
  end
@@ -52,9 +52,8 @@ module Kaui
52
52
  end
53
53
  end
54
54
 
55
- def self.get_account_timeline(account_id)
56
- data = call_killbill :get, "/1.0/kb/accounts/#{account_id}/timeline?audit=MINIMAL"
57
- process_response(data, :single) { |json| Kaui::AccountTimeline.new(json) }
55
+ def self.get_account_timeline(account_id, audit = "MINIMAL")
56
+ KillBillClient::Model::AccountTimeline.find_by_account_id account_id, audit
58
57
  end
59
58
 
60
59
  def self.get_account(account_id, with_balance = false, with_balance_and_cba = false)
@@ -235,9 +234,8 @@ module Kaui
235
234
 
236
235
  ############## INVOICE ##############
237
236
 
238
- def self.get_invoice(invoice_id)
239
- data = call_killbill :get, "/1.0/kb/invoices/#{invoice_id}?withItems=true"
240
- process_response(data, :single) { |json| Kaui::Invoice.new(json) }
237
+ def self.get_invoice id_or_number, with_items = true
238
+ KillBillClient::Model::Invoice.find_by_id_or_number id_or_number, with_items
241
239
  end
242
240
 
243
241
  def self.get_invoice_item(invoice_id, invoice_item_id)
@@ -372,8 +370,14 @@ module Kaui
372
370
  self.get_payment_methods(account_id).reject { |x| x.plugin_name == '__EXTERNAL_PAYMENT__' }
373
371
  end
374
372
 
375
- def self.get_payment_methods(account_id)
376
- KillBillClient::Model::PaymentMethod.find_all_by_account_id account_id, true
373
+ def self.get_payment_methods key
374
+ if key =~ /[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}/
375
+ #looks like its account_id
376
+ KillBillClient::Model::PaymentMethod.find_all_by_account_id key, true
377
+ else
378
+ #any search key
379
+ KillBillClient::Model::PaymentMethod.find_all_by_search_key key, true
380
+ end
377
381
  end
378
382
 
379
383
  def self.get_payment_method(payment_method_id)
@@ -13,16 +13,17 @@ class Kaui::AuditLog < Kaui::Base
13
13
  :reason_code => data['reasonCode'])
14
14
  end
15
15
 
16
- def description
17
- if changed_by.present?
18
- changed_str = "Performed by #{changed_by} on #{ActionController::Base.helpers.format_date(change_date)}"
19
- if reason_code.blank? && comments.blank?
16
+ def self.description(log)
17
+ if log.changed_by.present?
18
+ changed_str = "Performed by #{log.changed_by} on #{ActionController::Base.helpers.format_date(log.change_date)}"
19
+ if log.reason_code.blank? && log.comments.blank?
20
20
  changed_str
21
- elsif reason_code.blank?
22
- "#{changed_str}: #{comments}"
21
+ elsif log.reason_code.blank?
22
+ "#{changed_str}: #{log.comments}"
23
23
  else
24
- "#{changed_str} (#{reason_code} #{comments})"
24
+ "#{changed_str} (#{log.reason_code} #{log.comments})"
25
25
  end
26
26
  end
27
27
  end
28
+
28
29
  end
@@ -8,6 +8,12 @@
8
8
  <div class="controls">
9
9
  <%= select_tag "bundles", options_for_select([ "" ] + @bundle_names.values.sort, @selected_bundle || 'all') %>
10
10
  </div>
11
+
12
+ <label for="events" class="control-label">Filter by event type</label>
13
+ <div class="controls">
14
+ <%= select_tag "event_types", options_for_select('<option value="all">ALL</option><option value="invoice">INVOICE</option><option value="payment">PAYMENT</option><option value="refund">REFUND</option><option value="chargeback">CHARGEBACK</option><option value="entitlement">ENTITLEMENTS</option>'.html_safe) %>
15
+ </div>
16
+
11
17
  <dl class="dl-horizontal">
12
18
  <dt>Billing timezone:</dt>
13
19
  <dd><%= @account.timezone %></dd>
@@ -38,7 +44,7 @@
38
44
  <% else %>
39
45
  <% invoice = invoice_stub %>
40
46
  <% end %>
41
- <tr title="<%= bundles %>">
47
+ <tr title="<%= bundles %>" data-event_type="INVOICE">
42
48
  <td>
43
49
  <% if invoice.invoice_date.present? %>
44
50
  <%= invoice.invoice_date %>
@@ -61,16 +67,16 @@
61
67
  </td>
62
68
  <td><%= "INVOICE" %></td>
63
69
  <td><span class="hide" title="<%= invoice.invoice_number %>"></span>
64
- <%= "Amount:" %> <%= humanized_money_with_symbol invoice.amount_to_money(@account.currency) %> (<%= @account.currency %>)<br/>
65
- <%= "Balance:" %> <%= humanized_money_with_symbol invoice.balance_to_money(@account.currency) %> (<%= @account.currency %>)<br/>
66
- <% if invoice.credit_adjustment.present? && invoice.credit_adjustment > 0 %>
67
- <%= "Credit adjustment:" %> <%= humanized_money_with_symbol invoice.credit_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)<br/>
70
+ <%= "Amount:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(invoice.amount, @account.currency) %> (<%= @account.currency %>)<br/>
71
+ <%= "Balance:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(invoice.amount, @account.currency) %> (<%= @account.currency %>)<br/>
72
+ <% if invoice.credit_adj.present? && invoice.credit_adj > 0 %>
73
+ <%= "Credit adjustment:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(invoice.credit_adj, @account.currency) %> (<%= @account.currency %>)<br/>
68
74
  <% end %>
69
- <% if invoice.credit_balance_adjustment.present? && invoice.credit_balance_adjustment > 0 %>
70
- <%= "Credit balance adjustment:" %> <%= humanized_money_with_symbol invoice.credit_balance_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)<br/>
75
+ <% if invoice.credits.present? && invoice.credits > 0 %>
76
+ <%= "Credit balance adjustment:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(invoice.credits, @account.currency) %> (<%= @account.currency %>)<br/>
71
77
  <% end %>
72
- <% if invoice.refund_adjustment.present? && invoice.refund_adjustment < 0 %>
73
- <%= "Refund adjustment:" %> <%= humanized_money_with_symbol invoice.refund_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)<br/>
78
+ <% if invoice.refund_adj.present? && invoice.refund_adj < 0 %>
79
+ <%= "Refund adjustment:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(invoice.refund_adj, @account.currency) %> (<%= @account.currency %>)<br/>
74
80
  <% end %>
75
81
  <%= "Invoice #" %>
76
82
  <%= link_to invoice.invoice_number, invoice_path(:id => invoice.invoice_id) %>
@@ -78,7 +84,7 @@
78
84
  <td>
79
85
  <% if invoice_stub.audit_logs.present? %>
80
86
  <% invoice_stub.audit_logs.each do |entry| %>
81
- <%= entry.description unless entry.changed_by == 'Transition' %><br/>
87
+ <%= Kaui::AuditLog.description(entry) unless entry.changed_by == 'Transition' %><br/>
82
88
  <% end %>
83
89
  <% end %>
84
90
  </td>
@@ -107,7 +113,7 @@
107
113
  <% @timeline.payments.each do |payment| %>
108
114
  <% payment.refunds.each do |refund| %>
109
115
  <% bundles = payment.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %>
110
- <tr title="<%= bundles %>">
116
+ <tr title="<%= bundles %>" data-event_type="REFUND">
111
117
  <td>
112
118
  <% if refund.requested_date.present? %>
113
119
  <%= format_date(refund.requested_date, @account.timezone).html_safe %>
@@ -131,11 +137,11 @@
131
137
  <td>
132
138
  <%= "Adjusted:" %> <% if refund.adjusted %>yes<% else %>no<% end %><br/>
133
139
  <%= "Payment id:" %> <%= refund.payment_id %><br/>
134
- <%= "Refund Amount:" %> <%= humanized_money_with_symbol refund.amount_to_money %> (<%= refund.currency %>)<br/>
140
+ <%= "Refund Amount:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(refund.amount, refund.currency) %> (<%= refund.currency %>)<br/>
135
141
  </td>
136
142
  <td>
137
143
  <% if refund.audit_logs.present? %>
138
- <%= refund.audit_logs[0].description %><br/>
144
+ <%= Kaui::AuditLog.description(refund.audit_logs[0])%><br/>
139
145
  <% end %>
140
146
  </td>
141
147
  <td></td>
@@ -145,7 +151,7 @@
145
151
  <% @timeline.payments.each do |payment| %>
146
152
  <% payment.chargebacks.each do |chargeback| %>
147
153
  <% bundles = payment.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %>
148
- <tr title="<%= bundles %>">
154
+ <tr title="<%= bundles %>" data-event_type="CHARGEBACK">
149
155
  <td>
150
156
  <% if chargeback.effective_date.present? %>
151
157
  <%= format_date(chargeback.effective_date, @account.timezone).html_safe %>
@@ -168,11 +174,11 @@
168
174
  <td><%= "CHARGEBACK" %></td>
169
175
  <td>
170
176
  <%= "Payment id:" %> <%= chargeback.payment_id %><br/>
171
- <%= "Chargeback Amount:" %> <%= humanized_money_with_symbol chargeback.chargeback_amount_to_money(payment.currency) %> (<%= payment.currency %>)<br/>
177
+ <%= "Chargeback Amount:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(chargeback.chargeback_amount, payment.currency) %> (<%= payment.currency %>)<br/>
172
178
  </td>
173
179
  <td>
174
180
  <% if chargeback.audit_logs.present? %>
175
- <%= chargeback.audit_logs[0].description %><br/>
181
+ <%= Kaui::AuditLog.description(chargeback.audit_logs[0]) %><br/>
176
182
  <% end %>
177
183
  </td>
178
184
  <td></td>
@@ -187,7 +193,7 @@
187
193
  <% else %>
188
194
  <% invoice = nil %>
189
195
  <% end %>
190
- <tr title="<%= bundles %>">
196
+ <tr title="<%= bundles %>" data-event_type="PAYMENT">
191
197
  <td>
192
198
  <% if payment.requested_date.present? %>
193
199
  <%= format_date(payment.requested_date, @account.timezone).html_safe %>
@@ -211,8 +217,8 @@
211
217
  <td>
212
218
  <span class="hide" title="<%= invoice.invoice_number %>"></span>
213
219
  <%= "Payment id:" %> <%= payment.payment_id %><br/>
214
- <%= "Total amount:" %> <%= humanized_money_with_symbol payment.amount_to_money %> (<%= payment.currency %>)<br/>
215
- <%= "Paid amount:" %> <%= humanized_money_with_symbol payment.paid_amount_to_money %> (<%= payment.currency %>)<br/>
220
+ <%= "Total amount:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(payment.amount, payment.currency) %> (<%= payment.currency %>)<br/>
221
+ <%= "Paid amount:" %> <%= humanized_money_with_symbol Kaui::Base.to_money(payment.paid_amount, payment.currency) %> (<%= payment.currency %>)<br/>
216
222
  <span <% if payment.status == 'FAILED' %>class="alert-error" <% elsif payment.status == 'SUCCESS' %>class="alert-success" <% end %>>
217
223
  <%= payment.status %>
218
224
  </span>
@@ -222,7 +228,7 @@
222
228
  <td>
223
229
  <% if payment.audit_logs.present? %>
224
230
  <% payment.audit_logs.each do |entry| %>
225
- <%= entry.description unless entry.changed_by == 'PaymentRequestProcessor' %><br/>
231
+ <%= Kaui::AuditLog.description(entry) unless entry.changed_by == 'PaymentRequestProcessor' %><br/>
226
232
  <% end %>
227
233
  <% end %>
228
234
  </td>
@@ -231,7 +237,7 @@
231
237
  <%= link_to 'Refund', kaui_engine.new_refund_path(:params => { :payment_id => payment.payment_id,
232
238
  :account_id => @account.account_id,
233
239
  :invoice_id => payment.invoice_id }),
234
- :class => "btn btn-mini #{"disabled" unless payment.payment_id.present? and payment.status == 'SUCCESS' and !payment.is_fully_refunded?}" %>
240
+ :class => "btn btn-mini #{"disabled" unless payment.payment_id.present? and payment.status == 'SUCCESS' and !(0 == payment.paid_amount)}" %>
235
241
  </nobr>
236
242
  <nobr>
237
243
  <%= link_to 'Chargeback', kaui_engine.new_chargeback_path(:params => { :payment_id => payment.payment_id,
@@ -247,7 +253,7 @@
247
253
  <% sub.events.each do |event| %>
248
254
  <!-- SKIP UNCANCEL SINCE MATCHING CANCEL EVENT IS NOT RETURNED AS IT WAS INVALIDED -->
249
255
  <% next if event.event_type == 'UNCANCEL' %>
250
- <tr title="<%= @bundle_names[bundle.external_key] %>">
256
+ <tr title="<%= @bundle_names[bundle.external_key] %>" data-event_type="<%= event.event_type %>">
251
257
  <td>
252
258
  <% if event.requested_date.present? %>
253
259
  <%= format_date(event.requested_date, @account.timezone).html_safe %>
@@ -270,7 +276,7 @@
270
276
  <td>
271
277
  <% if event.audit_logs.present? %>
272
278
  <% event.audit_logs.each do |entry| %>
273
- <%= entry.description %><br/>
279
+ <%= Kaui::AuditLog.description(entry) %><br/>
274
280
  <% end %>
275
281
  <% end %>
276
282
  </td>
@@ -337,7 +343,7 @@
337
343
  "iDisplayLength": 100,
338
344
  "bRetrieve": true,
339
345
  // Force a predictive order for event types, invoices and payments
340
- "aaSortingFixed": [[1, 'desc'], [4, 'desc'], [3, 'desc']],
346
+ "aaSorting": [[1, 'desc'], [4, 'desc'], [3, 'desc']],
341
347
  "aoColumns": [
342
348
  { "sType": 'date' },
343
349
  { "sType": 'date' },
@@ -350,32 +356,76 @@
350
356
  });
351
357
  }
352
358
 
353
- function filterBundles() {
359
+ function filterEachNode(rows) {
354
360
  var bundle = $("#bundles").val();
361
+ var event_to_filter = $('#event_types').val().toUpperCase();
355
362
 
356
- var dataTable = initTable();
357
- $(dataTable.fnGetNodes()).each(function() {
358
- var tr = $(this);
359
- if (bundle == "" || tr.attr("title").split(",").indexOf(bundle) >= 0) {
360
- tr.removeClass("hide");
361
- }
362
- else {
363
+ for (i = 0; i < rows.length; i++)
364
+ {
365
+ tr = $(rows[i]);
366
+
367
+ //filter bundles
368
+ if (bundle == "" || tr.attr("title").split(",").indexOf(bundle) >= 0) {
369
+ //first level filtering, so can remove hide
370
+ tr.removeClass("hide");
371
+ }
372
+ else {
373
+ //remove tr's not under this filter mode
374
+ tr.addClass("hide");
375
+ }
376
+
377
+ //filter events
378
+ if ("ALL" != event_to_filter)
379
+ filterEvents(tr, event_to_filter);
380
+
381
+ //add more filters here
382
+ //do not unhide any rows
383
+ }
384
+
385
+ }
386
+
387
+ function filterEvents(tr, event_to_filter) {
388
+ tr_event_type = tr.data().event_type;
389
+
390
+ core_events = ["INVOICE", "PAYMENT", "REFUND", "CHARGEBACK"]; //events which are not entitlements
391
+
392
+ //is tr event not an event in question
393
+ tr_event_does_not_match_filter = ("ENTITLEMENT" != event_to_filter &&
394
+ tr_event_type != event_to_filter);
395
+
396
+ //tr event is not an entitlement
397
+ tr_event_is_not_entitlement = ("ENTITLEMENT" == event_to_filter &&
398
+ core_events.indexOf(tr_event_type) >= 0);
399
+
400
+ if ( tr_event_does_not_match_filter || tr_event_is_not_entitlement )
401
+ {
402
+ //add hide to all who dont deserve the filter
363
403
  tr.addClass("hide");
364
- }
365
- });
404
+ }
405
+ }
406
+
407
+ function filterTable()
408
+ {
409
+ var dataTable = initTable();
410
+ var all_nodes = dataTable.fnGetNodes();
411
+
412
+ filterEachNode(all_nodes);
413
+
414
+ //my rows are filtered, draw table
366
415
  dataTable.fnDraw();
367
- }
416
+ }
417
+
368
418
 
369
- $(document).ready(function() {
419
+ $(document).ready(function() {
370
420
  disableLinks();
371
421
  // When going through the pages of the table, disable links as needed
372
422
  $('#timeline-table').bind('draw', function (e) {
373
- disableLinks();
423
+ disableLinks();
374
424
  });
375
425
 
376
426
  initTable();
377
427
 
378
- $("#bundles").change(filterBundles);
379
- filterBundles();
380
- });
428
+ $("#bundles, #event_types").change(filterTable);
429
+ filterTable();
430
+ });
381
431
  <% end %>
@@ -4,7 +4,7 @@
4
4
  <div class="control-group">
5
5
  <label class="control-label" for="account_id"><%=t :account %></label>
6
6
  <div class="controls">
7
- <%= text_field_tag 'account_id', nil, :class => "input-xlarge", :id => "account_id" %>
7
+ <%= text_field_tag 'account_id', nil, :class => "input-xlarge", :id => "account_id", :placeholder => "accountId, screenName" %>
8
8
  </div>
9
9
  </div>
10
10
  <div class="form-actions">
@@ -4,7 +4,7 @@
4
4
  <div class="control-group">
5
5
  <label class="control-label" for="invoice_id">Invoice</label>
6
6
  <div class="controls">
7
- <%= text_field_tag 'invoice_id', nil, :class => "input-xlarge", :id => "invoice_id" %>
7
+ <%= text_field_tag 'invoice_id', nil, :class => "input-xlarge", :id => "invoice_id", :placeholder => "InvoiceId, InvoiceNumber" %>
8
8
  </div>
9
9
  </div>
10
10
  <div class="form-actions">
@@ -9,9 +9,9 @@
9
9
  <dt>Target date:</dt>
10
10
  <dd><%= @invoice.target_date.html_safe %>&nbsp;</dd>
11
11
  <dt>Amount:</dt>
12
- <dd><%= humanized_money_with_symbol @invoice.amount_to_money(@account.currency) %> (<%= @account.currency %>)&nbsp;</dd>
12
+ <dd><%= humanized_money_with_symbol Kaui::Base.to_money(@invoice.amount, @account.currency) %> (<%= @account.currency %>)&nbsp;</dd>
13
13
  <dt>Balance:</dt>
14
- <dd><%= humanized_money_with_symbol @invoice.balance_to_money(@account.currency) %> (<%= @account.currency %>)&nbsp;</dd>
14
+ <dd><%= humanized_money_with_symbol Kaui::Base.to_money(@invoice.balance, @account.currency) %> (<%= @account.currency %>)&nbsp;</dd>
15
15
  </dl>
16
16
  <div class="page-header">
17
17
  <h3>Invoice items</h3>
@@ -58,7 +58,7 @@
58
58
  <td onClick="hightlightLinkedItems('<%= item.invoice_item_id %>', '<%= item.linked_invoice_item_id %>'); return false;"><%= item.end_date.html_safe if item.end_date %></td>
59
59
  <td onClick="hightlightLinkedItems('<%= item.invoice_item_id %>', '<%= item.linked_invoice_item_id %>'); return false;"><%= format_date(sub.charged_through_date, @account.timezone).html_safe if sub.present? %></td>
60
60
  <td onClick="hightlightLinkedItems('<%= item.invoice_item_id %>', '<%= item.linked_invoice_item_id %>'); return false;"><%= sub.price_list.downcase.capitalize if sub.present? and sub.price_list.present? %></td>
61
- <td onClick="hightlightLinkedItems('<%= item.invoice_item_id %>', '<%= item.linked_invoice_item_id %>'); return false;"><%= humanized_money_with_symbol item.amount_to_money %> (<%= item.currency %>)</td>
61
+ <td onClick="hightlightLinkedItems('<%= item.invoice_item_id %>', '<%= item.linked_invoice_item_id %>'); return false;"><%= humanized_money_with_symbol Kaui::Base.to_money(item.amount, item.currency) %> (<%= item.currency %>)</td>
62
62
  <td>
63
63
  <nobr>
64
64
  <%= link_to "Adjust",
@@ -82,6 +82,13 @@
82
82
  <%= render :partial => "kaui/payments/payments_table" %>
83
83
  <% end %>
84
84
  </div>
85
+
86
+ <div class="page-header">
87
+ <% if @payments.present? %>
88
+ <%= render :partial => "kaui/refunds/refunds_table" %>
89
+ <% end %>
90
+ </div>
91
+
85
92
  <% else %>
86
93
  <p>Invoice not found</p>
87
94
  <% end %>
@@ -18,6 +18,7 @@
18
18
  <li <%= "class='active'" if params[:controller] == 'chargebacks' %>><%= link_to "Chargebacks", kaui_engine.chargebacks_path %></li>
19
19
  <li <%= "class='active'" if params[:controller] == 'credits' %>><%= link_to "Credits", kaui_engine.credits_path %></li>
20
20
  <li <%= "class='active'" if params[:controller] == 'external_payments' %>><%= link_to "External payments", kaui_engine.external_payments_path %></li>
21
+ <li <%= "class='active'" if params[:controller] == 'payment_methods' %>><%= link_to "Payment methods", kaui_engine.payment_methods_path %></li>
21
22
  <li <%= "class='active'" if params[:controller] == 'refunds' %>><%= link_to "Refunds", kaui_engine.refunds_path %></li>
22
23
  <li <%= "class='active'" if params[:controller] == 'invoices' %>><%= link_to "Invoices", kaui_engine.invoices_path %></li>
23
24
  <li <%= "class='active'" if params[:controller] == 'invoice_items' %>><%= link_to "Invoice items", kaui_engine.invoice_items_path %></li>
@@ -41,6 +41,7 @@
41
41
  <% else %>
42
42
  <%= link_to "Delete", kaui_engine.payment_method_path(payment_method.payment_method_id), :method => :delete, :confirm => "Are you sure you want to delete this payment method?", :class => "btn btn-mini" %>
43
43
  <% end %>
44
+ <%= link_to "Details", kaui_engine.payment_method_path(payment_method.payment_method_id), :class => "btn btn-mini" %>
44
45
  </td>
45
46
  </tr>
46
47
  <% end %>
@@ -1,11 +1,11 @@
1
1
  <%= form_tag payment_methods_path, :class => "form-horizontal", :method => :get do %>
2
2
  <fieldset>
3
- <legend>Please enter account id</legend>
3
+ <legend>Payment Methods</legend>
4
4
  <div class="control-group">
5
- <label class="control-label" for="account_id">Account</label>
5
+ <label class="control-label" for="key">Account</label>
6
6
 
7
7
  <div class="controls">
8
- <%= text_field_tag 'account_id', nil, :class => "input-xlarge", :id => "account_id" %>
8
+ <%= text_field_tag 'key', nil, :class => "input-xlarge", :id => "key", :placeholder => "accountId, PayPalEmail, BAID, Last4cc" %>
9
9
  </div>
10
10
  </div>
11
11
  <div class="form-actions">
@@ -0,0 +1,31 @@
1
+ <div class="page-header">
2
+ <h3>Refunds</h3>
3
+ </div>
4
+ <table class="table table-condensed table-striped data-table">
5
+ <thead>
6
+ <tr>
7
+ <th>Requested date</th>
8
+ <th>Effective date</th>
9
+ <th>Amount Refunded</th>
10
+ <th>Adjusted</th>
11
+ <th>Refund ID</th>
12
+ <th>Payment ID</th>
13
+ </tr>
14
+ </thead>
15
+ <tbody>
16
+ <% if @payments.present? %>
17
+ <% @payments.each do |payment| %>
18
+ <% payment.refunds.each do |refund| %>
19
+ <tr>
20
+ <td><%= format_date(refund.requested_date, @account.timezone).html_safe if refund.requested_date.present? %></td>
21
+ <td><%= format_date(refund.effective_date, @account.timezone).html_safe if refund.effective_date.present? %></td>
22
+ <td><%= humanized_money_with_symbol refund.amount_to_money %> (<%= refund.currency %>)</td>
23
+ <td><%= refund.adjusted %></td>
24
+ <td><%= link_to refund.refund_id, refund_path(refund.refund_id) %></td>
25
+ <td><%= refund.payment_id %></td>
26
+ </tr>
27
+ <% end #end refunds%>
28
+ <% end #end payments%>
29
+ <% end #end if payments present%>
30
+ </tbody>
31
+ </table>
data/kaui.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.add_dependency 'rest-client', '~> 1.6.7'
28
28
  s.add_dependency 'money-rails', '~> 0.5.0'
29
29
  s.add_dependency 'd3_rails', '~> 2.10.3'
30
- s.add_dependency 'killbill-client', '~> 0.1.1'
30
+ s.add_dependency 'killbill-client', '~> 0.1.3'
31
31
 
32
32
  if defined?(JRUBY_VERSION)
33
33
  s.add_development_dependency 'activerecord-jdbc-adapter', '~> 1.2.2'
data/lib/kaui/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kaui
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -12,14 +12,14 @@ class Kaui::AccountsControllerTest < ActionController::TestCase
12
12
  fixtures :accounts
13
13
 
14
14
  test "should get index" do
15
- get :index
15
+ get :index, :use_route => 'kaui'
16
16
  assert_response :success
17
17
  end
18
18
 
19
19
  test "should find account by id" do
20
20
  pierre = accounts(:pierre)
21
21
 
22
- get :show, :id => pierre["accountId"]
22
+ get :show, :id => pierre["accountId"], :use_route => 'kaui'
23
23
  assert_response :success
24
24
  assert_equal assigns(:account).account_id, pierre["accountId"]
25
25
  end
@@ -28,7 +28,7 @@ class Kaui::AccountsControllerTest < ActionController::TestCase
28
28
  test "should find correct positive balance" do
29
29
  accnt = accounts(:account_with_positive_balance)
30
30
 
31
- get :show, :id => accnt["accountId"]
31
+ get :show, :id => accnt["accountId"], :use_route => 'kaui'
32
32
  assert_response :success
33
33
  assert assigns(:account).balance > 0
34
34
 
@@ -48,14 +48,14 @@ end
48
48
  test "should find correct negative balance" do
49
49
  accnt = accounts(:account_with_negative_balance)
50
50
 
51
- get :show, :id => accnt["accountId"]
51
+ get :show, :id => accnt["accountId"], :use_route => 'kaui'
52
52
  assert_response :success
53
53
  assert assigns(:account).balance < 0
54
54
  end
55
55
 
56
56
  test "should find correct zero balance" do
57
57
  accnt = accounts(:account_with_zero_balance)
58
- get :show, :id => accnt["accountId"]
58
+ get :show, :id => accnt["accountId"], :use_route => 'kaui'
59
59
  assert_response :success
60
60
  assert assigns(:account).balance == 0
61
61
  end
@@ -4,7 +4,7 @@ class Kaui::BundlesControllerTest < ActionController::TestCase
4
4
  fixtures :accounts, :bundles
5
5
 
6
6
  test "should get index" do
7
- get :index
7
+ get :index, :use_route => 'kaui'
8
8
  assert_response :success
9
9
  end
10
10
 
@@ -12,10 +12,10 @@ class Kaui::BundlesControllerTest < ActionController::TestCase
12
12
  pierre = accounts(:pierre)
13
13
  bundle = bundles(:bundle_for_pierre)
14
14
 
15
- get :show, :id => bundle["bundleId"]
15
+ get :show, :id => bundle["bundleId"], :use_route => 'kaui'
16
16
  assert_response :success
17
17
  assert_equal assigns(:account).account_id, pierre["accountId"]
18
18
  assert_equal assigns(:bundle).bundle_id, bundle["bundleId"]
19
19
  assert_equal assigns(:bundle).account_id, pierre["accountId"]
20
20
  end
21
- end
21
+ end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
  module Kaui
4
4
  class HomeControllerTest < ActionController::TestCase
5
5
  test "should get index" do
6
- get :index
6
+ get :index, :use_route => 'kaui'
7
7
  assert_response :success
8
8
  end
9
9
 
@@ -4,14 +4,14 @@ class Kaui::InvoiceItemsControllerTest < ActionController::TestCase
4
4
  fixtures :invoice_items
5
5
 
6
6
  test "should get index" do
7
- get :index
7
+ get :index, :use_route => 'kaui'
8
8
  assert_response :success
9
9
  end
10
10
 
11
11
  test "should find invoice item by id" do
12
12
  item = invoice_items(:recurring_item_for_pierre)
13
13
 
14
- get :show, :id => item["invoiceItemId"], :invoice_id => item["invoiceId"]
14
+ get :show, :id => item["invoiceItemId"], :invoice_id => item["invoiceId"], :use_route => 'kaui'
15
15
  assert_response :success
16
16
  assert_equal assigns(:invoice_item).invoice_item_id, item["invoiceItemId"]
17
17
  end
@@ -4,7 +4,7 @@ class Kaui::InvoicesControllerTest < ActionController::TestCase
4
4
  fixtures :accounts, :invoices
5
5
 
6
6
  test "should get index" do
7
- get :index
7
+ get :index, :use_route => 'kaui'
8
8
  assert_response :success
9
9
  end
10
10
 
@@ -12,10 +12,10 @@ class Kaui::InvoicesControllerTest < ActionController::TestCase
12
12
  pierre = accounts(:pierre)
13
13
  invoice = invoices(:invoice_for_pierre)
14
14
 
15
- get :show, :id => invoice["invoiceId"]
15
+ get :show, :id => invoice["invoiceId"], :use_route => 'kaui'
16
16
  assert_response :success
17
17
  assert_equal assigns(:account).account_id, pierre["accountId"]
18
18
  assert_equal assigns(:invoice).invoice_id, invoice["invoiceId"]
19
19
  assert_equal assigns(:invoice).account_id, pierre["accountId"]
20
20
  end
21
- end
21
+ end
data/test/test_helper.rb CHANGED
@@ -33,6 +33,10 @@ module Kaui::KillbillHelper
33
33
  find_among_fixtures(Kaui::Account, account_id)
34
34
  end
35
35
 
36
+ def self.get_overdue_state_for_bundle(bundle_id)
37
+ find_among_fixtures(Kaui::OverdueState, bundle_id)
38
+ end
39
+
36
40
  def self.get_invoice(invoice_id)
37
41
  find_among_fixtures(Kaui::Invoice, invoice_id)
38
42
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
5
- prerelease:
4
+ version: 0.2.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Killbill core team
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-24 00:00:00.000000000 Z
11
+ date: 2013-08-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: jquery-rails
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rest-client
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: money-rails
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: d3_rails
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,33 +83,29 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: killbill-client
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
101
- version: 0.1.1
89
+ version: 0.1.3
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
109
- version: 0.1.1
96
+ version: 0.1.3
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: mysql2
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description: Rails UI plugin for Killbill administration.
@@ -240,6 +225,7 @@ files:
240
225
  - app/views/kaui/payment_methods/show.html.erb
241
226
  - app/views/kaui/payments/_payments_table.html.erb
242
227
  - app/views/kaui/payments/new.html.erb
228
+ - app/views/kaui/refunds/_refunds_table.html.erb
243
229
  - app/views/kaui/refunds/index.html.erb
244
230
  - app/views/kaui/refunds/new.html.erb
245
231
  - app/views/kaui/refunds/show.html.erb
@@ -357,30 +343,26 @@ files:
357
343
  homepage: http://www.killbilling.org
358
344
  licenses:
359
345
  - Apache License (2.0)
346
+ metadata: {}
360
347
  post_install_message:
361
348
  rdoc_options: []
362
349
  require_paths:
363
350
  - lib
364
351
  required_ruby_version: !ruby/object:Gem::Requirement
365
- none: false
366
352
  requirements:
367
- - - ! '>='
353
+ - - '>='
368
354
  - !ruby/object:Gem::Version
369
355
  version: 1.8.7
370
356
  required_rubygems_version: !ruby/object:Gem::Requirement
371
- none: false
372
357
  requirements:
373
- - - ! '>='
358
+ - - '>='
374
359
  - !ruby/object:Gem::Version
375
360
  version: '0'
376
- segments:
377
- - 0
378
- hash: -3532343417055905152
379
361
  requirements: []
380
362
  rubyforge_project:
381
- rubygems_version: 1.8.25
363
+ rubygems_version: 2.0.3
382
364
  signing_key:
383
- specification_version: 3
365
+ specification_version: 4
384
366
  summary: Killbill Admin UI plugin
385
367
  test_files:
386
368
  - test/dummy/README.rdoc