piggybak_free_shipping_by_product 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +32 -0
  5. data/lib/piggybak_free_shipping_by_product.rb +6 -0
  6. data/lib/piggybak_free_shipping_by_product/engine.rb +13 -0
  7. data/lib/piggybak_free_shipping_by_product/free_shipping_by_product.rb +25 -0
  8. data/lib/piggybak_free_shipping_by_product/piggybak_orders_controller_decorator.rb +27 -0
  9. data/lib/piggybak_free_shipping_by_product/version.rb +3 -0
  10. data/test/dummy/README.rdoc +28 -0
  11. data/test/dummy/Rakefile +6 -0
  12. data/test/dummy/app/assets/javascripts/application.js +13 -0
  13. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  14. data/test/dummy/app/controllers/application_controller.rb +5 -0
  15. data/test/dummy/app/helpers/application_helper.rb +2 -0
  16. data/test/dummy/app/models/image.rb +3 -0
  17. data/test/dummy/app/models/user.rb +4 -0
  18. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  19. data/test/dummy/app/views/piggybak/orders/_user_details.html.erb +11 -0
  20. data/test/dummy/bin/bundle +3 -0
  21. data/test/dummy/bin/rails +4 -0
  22. data/test/dummy/bin/rake +4 -0
  23. data/test/dummy/config.ru +4 -0
  24. data/test/dummy/config/application.rb +23 -0
  25. data/test/dummy/config/boot.rb +5 -0
  26. data/test/dummy/config/database.yml +25 -0
  27. data/test/dummy/config/environment.rb +8 -0
  28. data/test/dummy/config/environments/development.rb +37 -0
  29. data/test/dummy/config/environments/production.rb +82 -0
  30. data/test/dummy/config/environments/test.rb +39 -0
  31. data/test/dummy/config/initializers/assets.rb +8 -0
  32. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  33. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  34. data/test/dummy/config/initializers/devise.rb +256 -0
  35. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  36. data/test/dummy/config/initializers/inflections.rb +16 -0
  37. data/test/dummy/config/initializers/mime_types.rb +4 -0
  38. data/test/dummy/config/initializers/session_store.rb +3 -0
  39. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  40. data/test/dummy/config/locales/devise.en.yml +59 -0
  41. data/test/dummy/config/locales/en.yml +23 -0
  42. data/test/dummy/config/routes.rb +7 -0
  43. data/test/dummy/config/secrets.yml +22 -0
  44. data/test/dummy/db/migrate/20111221175014_create_roles_users.rb +8 -0
  45. data/test/dummy/db/migrate/20111231040339_devise_create_users.rb +33 -0
  46. data/test/dummy/db/migrate/20111231040340_create_rails_admin_histories_table.rb +18 -0
  47. data/test/dummy/db/migrate/20111231040354_create_images.rb +9 -0
  48. data/test/dummy/db/migrate/20111231041048_create_roles.rb +7 -0
  49. data/test/dummy/db/migrate/20111231052811_create_pages.rb +11 -0
  50. data/test/dummy/db/migrate/20111231055412_acts_as_taggable_on_migration.rb +30 -0
  51. data/test/dummy/db/migrate/20120102162414_create_countries.rb +10 -0
  52. data/test/dummy/db/migrate/20120102162415_create_states.rb +9 -0
  53. data/test/dummy/db/migrate/20120103020918_create_orders.rb +21 -0
  54. data/test/dummy/db/migrate/20120103020919_create_addresses.rb +15 -0
  55. data/test/dummy/db/migrate/20120103020920_create_line_items.rb +10 -0
  56. data/test/dummy/db/migrate/20120103020921_create_variants.rb +14 -0
  57. data/test/dummy/db/migrate/20120103020922_create_shipping_methods.rb +9 -0
  58. data/test/dummy/db/migrate/20120103020923_create_payment_methods.rb +11 -0
  59. data/test/dummy/db/migrate/20120103020924_create_payments.rb +19 -0
  60. data/test/dummy/db/migrate/20120103020925_create_shipments.rb +12 -0
  61. data/test/dummy/db/migrate/20120103020926_create_shipping_method_values.rb +9 -0
  62. data/test/dummy/db/migrate/20120103020927_create_payment_method_values.rb +9 -0
  63. data/test/dummy/db/migrate/20120103020928_create_tax_methods.rb +9 -0
  64. data/test/dummy/db/migrate/20120103020930_create_tax_method_values.rb +9 -0
  65. data/test/dummy/db/migrate/20120104020930_populate_countries_and_states.rb +30 -0
  66. data/test/dummy/db/migrate/20120106010846_create_credits.rb +14 -0
  67. data/test/dummy/db/migrate/20120106034634_create_posts.rb +14 -0
  68. data/test/dummy/db/migrate/20120107140039_add_active_to_countries.rb +11 -0
  69. data/test/dummy/db/migrate/20120111195717_drop_cc_fields.rb +11 -0
  70. data/test/dummy/db/migrate/20120627151032_add_price_to_line_item.piggybak_engine.rb +14 -0
  71. data/test/dummy/db/migrate/20120627175044_add_description_to_line_item.piggybak_engine.rb +14 -0
  72. data/test/dummy/db/migrate/20120829140525_add_masked_credit_card_numbers.piggybak_engine.rb +10 -0
  73. data/test/dummy/db/migrate/20120829140526_order_debugging.piggybak_engine.rb +12 -0
  74. data/test/dummy/db/migrate/20120829140527_create_order_notes.piggybak_engine.rb +11 -0
  75. data/test/dummy/db/migrate/20120829140528_modify_credits.piggybak_engine.rb +7 -0
  76. data/test/dummy/db/migrate/20120829140529_add_to_be_cancelled_to_orders.piggybak_engine.rb +6 -0
  77. data/test/dummy/db/migrate/20121008195802_rename_variants_to_sellables.piggybak_engine.rb +12 -0
  78. data/test/dummy/db/migrate/20121017151401_line_item_rearchitecture.piggybak_engine.rb +105 -0
  79. data/test/dummy/db/migrate/20121022161614_fix_sellable_price_scale.rb +9 -0
  80. data/test/dummy/db/migrate/20121022164235_convert_all_decimal_fields.rb +15 -0
  81. data/test/dummy/db/migrate/20121022202530_create_new_variants.piggybak_variants.rb +14 -0
  82. data/test/dummy/db/migrate/20121108204215_drop_sort_from_line_items.piggybak_engine.rb +10 -0
  83. data/test/dummy/db/migrate/20130516201046_change_user_agent_type.piggybak_engine.rb +10 -0
  84. data/test/dummy/db/migrate/20130516201047_add_confirmation_sent_to_orders.piggybak_engine.rb +6 -0
  85. data/test/dummy/db/migrate/20140325133841_upgrade_piggybak_tables.rb +19 -0
  86. data/test/dummy/db/schema.rb +245 -0
  87. data/test/dummy/db/test.sqlite3 +0 -0
  88. data/test/dummy/public/404.html +67 -0
  89. data/test/dummy/public/422.html +67 -0
  90. data/test/dummy/public/500.html +66 -0
  91. data/test/dummy/public/favicon.ico +0 -0
  92. data/test/dummy/test.sqlite3 +0 -0
  93. data/test/dummy/test/fixtures/images.yml +9 -0
  94. data/test/dummy/test/fixtures/piggybak_orders.yml +0 -0
  95. data/test/dummy/test/fixtures/piggybak_payment_methods.yml +5 -0
  96. data/test/dummy/test/fixtures/piggybak_sellables.yml +15 -0
  97. data/test/dummy/test/fixtures/piggybak_shipping_method_values.yml +17 -0
  98. data/test/dummy/test/fixtures/piggybak_shipping_methods.yml +17 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/204f3ed344cab052c25904aa340641c9 +0 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/3522e8667e0d6e452a01c6b40e7efa4d +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  107. data/test/piggybak_free_shipping_by_product_test.rb +84 -0
  108. data/test/test_helper.rb +15 -0
  109. metadata +322 -0
Binary file
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
Binary file
@@ -0,0 +1,9 @@
1
+ image1:
2
+ id: 1
3
+ title: "Image 1"
4
+ free_shipping: true
5
+
6
+ image2:
7
+ id: 2
8
+ title: "Image 2"
9
+ free_shipping: false
File without changes
@@ -0,0 +1,5 @@
1
+ fake:
2
+ id: 1
3
+ description: "Fake"
4
+ klass: "::Piggybak::PaymentCalculator::Fake"
5
+ active: true
@@ -0,0 +1,15 @@
1
+ image1_sellable:
2
+ id: 1
3
+ item_id: 1
4
+ item_type: "Image"
5
+ sku: "image1"
6
+ description: "image1"
7
+ price: 9.99
8
+
9
+ image2_sellable:
10
+ id: 2
11
+ item_id: 2
12
+ item_type: "Image"
13
+ sku: "image2"
14
+ description: "image2"
15
+ price: 10.99
@@ -0,0 +1,17 @@
1
+ standard_rate:
2
+ id: 1
3
+ shipping_method_id: 1
4
+ key: "rate"
5
+ value: "10.00"
6
+
7
+ express:
8
+ id: 2
9
+ shipping_method_id: 2
10
+ key: "rate"
11
+ value: "20.00"
12
+
13
+ free:
14
+ id: 3
15
+ shipping_method_id: 3
16
+ key: "product_method_name"
17
+ value: "free_shipping"
@@ -0,0 +1,17 @@
1
+ standard:
2
+ id: 1
3
+ description: "Standard Shipping"
4
+ klass: "::Piggybak::ShippingCalculator::FlatRate"
5
+ active: true
6
+
7
+ express:
8
+ id: 2
9
+ description: "Express Shipping"
10
+ klass: "::Piggybak::ShippingCalculator::FlatRate"
11
+ active: true
12
+
13
+ free:
14
+ id: 3
15
+ description: "Free Shipping"
16
+ klass: "::PiggybakFreeShippingByProduct::FreeShippingByProduct"
17
+ active: true
@@ -0,0 +1,84 @@
1
+ require 'test_helper'
2
+
3
+ class PiggybakFreeShippingByProductTest < ActionDispatch::IntegrationTest
4
+ fixtures :images,
5
+ :piggybak_sellables,
6
+ :piggybak_shipping_methods,
7
+ :piggybak_shipping_method_values,
8
+ :piggybak_payment_methods,
9
+ :piggybak_orders
10
+
11
+ def setup_order
12
+ post_via_redirect piggybak.cart_add_path, { sellable_id: 1, quantity: 1 }
13
+ get_via_redirect piggybak.orders_path
14
+ end
15
+
16
+ def order_params
17
+ { "order" => {
18
+ "email" => "test@endpoint.com",
19
+ "phone" => "6304844834",
20
+ "billing_address_attributes" => {
21
+ "firstname"=>"S",
22
+ "lastname"=>"S",
23
+ "address1"=>"123",
24
+ "address2"=>"",
25
+ "city"=>"SLC",
26
+ "country_id"=>"405",
27
+ "state_id"=>"6926",
28
+ "zip"=>"84115"
29
+ },
30
+ "shipping_address_attributes" => {
31
+ "firstname" => "S",
32
+ "lastname"=>"S",
33
+ "address1"=>"123",
34
+ "address2"=>"",
35
+ "city"=>"SLC",
36
+ "country_id"=>"405",
37
+ "state_id"=>"6926",
38
+ "zip"=>"84115" },
39
+ "line_items_attributes" => {
40
+ "0" => {
41
+ "line_item_type" => "shipment",
42
+ "shipment_attributes" => {
43
+ "shipping_method_id"=>"4"
44
+ }
45
+ },
46
+ "1" => {
47
+ "line_item_type" => "payment",
48
+ "payment_attributes" => {
49
+ "number" => "4111111111111111",
50
+ "verification_value"=>"333",
51
+ "month"=>"1",
52
+ "year"=>"2016"
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ end
59
+
60
+ test "cart with free shpping item has free shipping as only option" do
61
+ cookies["cart"] = "1:1"
62
+ xhr :get, piggybak.orders_shipping_path
63
+ methods = JSON.parse(response.body)
64
+ assert methods == [{"label" => "Free Shipping $0.00", "id" => 3, "rate" => 0.0 }]
65
+ end
66
+ test "cart with non-free shpping item has regular shipping options" do
67
+ cookies["cart"] = "2:1"
68
+ xhr :get, piggybak.orders_shipping_path
69
+ methods = JSON.parse(response.body)
70
+ assert methods.size == 2
71
+ assert methods.include?({ "label" => "Standard Shipping $10.00", "id" => 1, "rate" => 10.0 })
72
+ assert methods.include?({ "label" => "Express Shipping $20.00", "id" => 2, "rate" => 20.0 })
73
+ assert !methods.include?({ "label" => "Free Shipping $0.00", "id" => 3, "rate" => 0.0 })
74
+ end
75
+ test "cart with mixed items regular shipping options" do
76
+ cookies["cart"] = "1:1;2:1"
77
+ xhr :get, piggybak.orders_shipping_path
78
+ methods = JSON.parse(response.body)
79
+ assert methods.size == 2
80
+ assert methods.include?({ "label" => "Standard Shipping $10.00", "id" => 1, "rate" => 10.0 })
81
+ assert methods.include?({ "label" => "Express Shipping $20.00", "id" => 2, "rate" => 20.0 })
82
+ assert !methods.include?({ "label" => "Free Shipping $0.00", "id" => 3, "rate" => 0.0 })
83
+ end
84
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ #if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ # ActiveSupport::TestCase.fixture_path = File.expand_path("../../fixtures", __FILE__)
15
+ #end
metadata ADDED
@@ -0,0 +1,322 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: piggybak_free_shipping_by_product
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Steph Skardal
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.3
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: devise
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.2.4
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.2.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: piggybak
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.4
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.7.4
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rails_admin
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.6.2
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.6.2
83
+ description: Free shipping in Piggybak, depending on a product / sellable method as
84
+ defined in the configuration.
85
+ email:
86
+ - steph@endpoint.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - MIT-LICENSE
92
+ - README.rdoc
93
+ - Rakefile
94
+ - lib/piggybak_free_shipping_by_product.rb
95
+ - lib/piggybak_free_shipping_by_product/engine.rb
96
+ - lib/piggybak_free_shipping_by_product/free_shipping_by_product.rb
97
+ - lib/piggybak_free_shipping_by_product/piggybak_orders_controller_decorator.rb
98
+ - lib/piggybak_free_shipping_by_product/version.rb
99
+ - test/dummy/README.rdoc
100
+ - test/dummy/Rakefile
101
+ - test/dummy/app/assets/javascripts/application.js
102
+ - test/dummy/app/assets/stylesheets/application.css
103
+ - test/dummy/app/controllers/application_controller.rb
104
+ - test/dummy/app/helpers/application_helper.rb
105
+ - test/dummy/app/models/image.rb
106
+ - test/dummy/app/models/user.rb
107
+ - test/dummy/app/views/layouts/application.html.erb
108
+ - test/dummy/app/views/piggybak/orders/_user_details.html.erb
109
+ - test/dummy/bin/bundle
110
+ - test/dummy/bin/rails
111
+ - test/dummy/bin/rake
112
+ - test/dummy/config.ru
113
+ - test/dummy/config/application.rb
114
+ - test/dummy/config/boot.rb
115
+ - test/dummy/config/database.yml
116
+ - test/dummy/config/environment.rb
117
+ - test/dummy/config/environments/development.rb
118
+ - test/dummy/config/environments/production.rb
119
+ - test/dummy/config/environments/test.rb
120
+ - test/dummy/config/initializers/assets.rb
121
+ - test/dummy/config/initializers/backtrace_silencers.rb
122
+ - test/dummy/config/initializers/cookies_serializer.rb
123
+ - test/dummy/config/initializers/devise.rb
124
+ - test/dummy/config/initializers/filter_parameter_logging.rb
125
+ - test/dummy/config/initializers/inflections.rb
126
+ - test/dummy/config/initializers/mime_types.rb
127
+ - test/dummy/config/initializers/session_store.rb
128
+ - test/dummy/config/initializers/wrap_parameters.rb
129
+ - test/dummy/config/locales/devise.en.yml
130
+ - test/dummy/config/locales/en.yml
131
+ - test/dummy/config/routes.rb
132
+ - test/dummy/config/secrets.yml
133
+ - test/dummy/db/migrate/20111221175014_create_roles_users.rb
134
+ - test/dummy/db/migrate/20111231040339_devise_create_users.rb
135
+ - test/dummy/db/migrate/20111231040340_create_rails_admin_histories_table.rb
136
+ - test/dummy/db/migrate/20111231040354_create_images.rb
137
+ - test/dummy/db/migrate/20111231041048_create_roles.rb
138
+ - test/dummy/db/migrate/20111231052811_create_pages.rb
139
+ - test/dummy/db/migrate/20111231055412_acts_as_taggable_on_migration.rb
140
+ - test/dummy/db/migrate/20120102162414_create_countries.rb
141
+ - test/dummy/db/migrate/20120102162415_create_states.rb
142
+ - test/dummy/db/migrate/20120103020918_create_orders.rb
143
+ - test/dummy/db/migrate/20120103020919_create_addresses.rb
144
+ - test/dummy/db/migrate/20120103020920_create_line_items.rb
145
+ - test/dummy/db/migrate/20120103020921_create_variants.rb
146
+ - test/dummy/db/migrate/20120103020922_create_shipping_methods.rb
147
+ - test/dummy/db/migrate/20120103020923_create_payment_methods.rb
148
+ - test/dummy/db/migrate/20120103020924_create_payments.rb
149
+ - test/dummy/db/migrate/20120103020925_create_shipments.rb
150
+ - test/dummy/db/migrate/20120103020926_create_shipping_method_values.rb
151
+ - test/dummy/db/migrate/20120103020927_create_payment_method_values.rb
152
+ - test/dummy/db/migrate/20120103020928_create_tax_methods.rb
153
+ - test/dummy/db/migrate/20120103020930_create_tax_method_values.rb
154
+ - test/dummy/db/migrate/20120104020930_populate_countries_and_states.rb
155
+ - test/dummy/db/migrate/20120106010846_create_credits.rb
156
+ - test/dummy/db/migrate/20120106034634_create_posts.rb
157
+ - test/dummy/db/migrate/20120107140039_add_active_to_countries.rb
158
+ - test/dummy/db/migrate/20120111195717_drop_cc_fields.rb
159
+ - test/dummy/db/migrate/20120627151032_add_price_to_line_item.piggybak_engine.rb
160
+ - test/dummy/db/migrate/20120627175044_add_description_to_line_item.piggybak_engine.rb
161
+ - test/dummy/db/migrate/20120829140525_add_masked_credit_card_numbers.piggybak_engine.rb
162
+ - test/dummy/db/migrate/20120829140526_order_debugging.piggybak_engine.rb
163
+ - test/dummy/db/migrate/20120829140527_create_order_notes.piggybak_engine.rb
164
+ - test/dummy/db/migrate/20120829140528_modify_credits.piggybak_engine.rb
165
+ - test/dummy/db/migrate/20120829140529_add_to_be_cancelled_to_orders.piggybak_engine.rb
166
+ - test/dummy/db/migrate/20121008195802_rename_variants_to_sellables.piggybak_engine.rb
167
+ - test/dummy/db/migrate/20121017151401_line_item_rearchitecture.piggybak_engine.rb
168
+ - test/dummy/db/migrate/20121022161614_fix_sellable_price_scale.rb
169
+ - test/dummy/db/migrate/20121022164235_convert_all_decimal_fields.rb
170
+ - test/dummy/db/migrate/20121022202530_create_new_variants.piggybak_variants.rb
171
+ - test/dummy/db/migrate/20121108204215_drop_sort_from_line_items.piggybak_engine.rb
172
+ - test/dummy/db/migrate/20130516201046_change_user_agent_type.piggybak_engine.rb
173
+ - test/dummy/db/migrate/20130516201047_add_confirmation_sent_to_orders.piggybak_engine.rb
174
+ - test/dummy/db/migrate/20140325133841_upgrade_piggybak_tables.rb
175
+ - test/dummy/db/schema.rb
176
+ - test/dummy/db/test.sqlite3
177
+ - test/dummy/public/404.html
178
+ - test/dummy/public/422.html
179
+ - test/dummy/public/500.html
180
+ - test/dummy/public/favicon.ico
181
+ - test/dummy/test.sqlite3
182
+ - test/dummy/test/fixtures/images.yml
183
+ - test/dummy/test/fixtures/piggybak_orders.yml
184
+ - test/dummy/test/fixtures/piggybak_payment_methods.yml
185
+ - test/dummy/test/fixtures/piggybak_sellables.yml
186
+ - test/dummy/test/fixtures/piggybak_shipping_method_values.yml
187
+ - test/dummy/test/fixtures/piggybak_shipping_methods.yml
188
+ - test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
189
+ - test/dummy/tmp/cache/assets/test/sprockets/204f3ed344cab052c25904aa340641c9
190
+ - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
191
+ - test/dummy/tmp/cache/assets/test/sprockets/3522e8667e0d6e452a01c6b40e7efa4d
192
+ - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
193
+ - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
194
+ - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
195
+ - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
196
+ - test/piggybak_free_shipping_by_product_test.rb
197
+ - test/test_helper.rb
198
+ homepage: http://www.endpoint.com/
199
+ licenses:
200
+ - MIT
201
+ metadata: {}
202
+ post_install_message:
203
+ rdoc_options: []
204
+ require_paths:
205
+ - lib
206
+ required_ruby_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ required_rubygems_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ requirements: []
217
+ rubyforge_project:
218
+ rubygems_version: 2.2.2
219
+ signing_key:
220
+ specification_version: 4
221
+ summary: Free shipping in Piggybak, depending on a product / sellable method as defined
222
+ in the configuration.
223
+ test_files:
224
+ - test/dummy/Rakefile
225
+ - test/dummy/app/assets/javascripts/application.js
226
+ - test/dummy/app/assets/stylesheets/application.css
227
+ - test/dummy/app/controllers/application_controller.rb
228
+ - test/dummy/app/helpers/application_helper.rb
229
+ - test/dummy/app/models/image.rb
230
+ - test/dummy/app/models/user.rb
231
+ - test/dummy/app/views/piggybak/orders/_user_details.html.erb
232
+ - test/dummy/app/views/layouts/application.html.erb
233
+ - test/dummy/test.sqlite3
234
+ - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
235
+ - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
236
+ - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
237
+ - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
238
+ - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
239
+ - test/dummy/tmp/cache/assets/test/sprockets/3522e8667e0d6e452a01c6b40e7efa4d
240
+ - test/dummy/tmp/cache/assets/test/sprockets/204f3ed344cab052c25904aa340641c9
241
+ - test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
242
+ - test/dummy/config.ru
243
+ - test/dummy/test/fixtures/piggybak_payment_methods.yml
244
+ - test/dummy/test/fixtures/images.yml
245
+ - test/dummy/test/fixtures/piggybak_sellables.yml
246
+ - test/dummy/test/fixtures/piggybak_shipping_method_values.yml
247
+ - test/dummy/test/fixtures/piggybak_shipping_methods.yml
248
+ - test/dummy/test/fixtures/piggybak_orders.yml
249
+ - test/dummy/public/500.html
250
+ - test/dummy/public/404.html
251
+ - test/dummy/public/422.html
252
+ - test/dummy/public/favicon.ico
253
+ - test/dummy/db/migrate/20120103020918_create_orders.rb
254
+ - test/dummy/db/migrate/20120103020930_create_tax_method_values.rb
255
+ - test/dummy/db/migrate/20120829140528_modify_credits.piggybak_engine.rb
256
+ - test/dummy/db/migrate/20120104020930_populate_countries_and_states.rb
257
+ - test/dummy/db/migrate/20120103020923_create_payment_methods.rb
258
+ - test/dummy/db/migrate/20120103020922_create_shipping_methods.rb
259
+ - test/dummy/db/migrate/20120103020925_create_shipments.rb
260
+ - test/dummy/db/migrate/20120627151032_add_price_to_line_item.piggybak_engine.rb
261
+ - test/dummy/db/migrate/20120102162414_create_countries.rb
262
+ - test/dummy/db/migrate/20140325133841_upgrade_piggybak_tables.rb
263
+ - test/dummy/db/migrate/20120106010846_create_credits.rb
264
+ - test/dummy/db/migrate/20111231055412_acts_as_taggable_on_migration.rb
265
+ - test/dummy/db/migrate/20111231052811_create_pages.rb
266
+ - test/dummy/db/migrate/20111231040340_create_rails_admin_histories_table.rb
267
+ - test/dummy/db/migrate/20111221175014_create_roles_users.rb
268
+ - test/dummy/db/migrate/20120829140525_add_masked_credit_card_numbers.piggybak_engine.rb
269
+ - test/dummy/db/migrate/20120103020924_create_payments.rb
270
+ - test/dummy/db/migrate/20130516201046_change_user_agent_type.piggybak_engine.rb
271
+ - test/dummy/db/migrate/20120627175044_add_description_to_line_item.piggybak_engine.rb
272
+ - test/dummy/db/migrate/20121108204215_drop_sort_from_line_items.piggybak_engine.rb
273
+ - test/dummy/db/migrate/20111231041048_create_roles.rb
274
+ - test/dummy/db/migrate/20120103020921_create_variants.rb
275
+ - test/dummy/db/migrate/20120103020920_create_line_items.rb
276
+ - test/dummy/db/migrate/20120829140527_create_order_notes.piggybak_engine.rb
277
+ - test/dummy/db/migrate/20120103020926_create_shipping_method_values.rb
278
+ - test/dummy/db/migrate/20120829140526_order_debugging.piggybak_engine.rb
279
+ - test/dummy/db/migrate/20111231040354_create_images.rb
280
+ - test/dummy/db/migrate/20121017151401_line_item_rearchitecture.piggybak_engine.rb
281
+ - test/dummy/db/migrate/20120111195717_drop_cc_fields.rb
282
+ - test/dummy/db/migrate/20130516201047_add_confirmation_sent_to_orders.piggybak_engine.rb
283
+ - test/dummy/db/migrate/20120103020928_create_tax_methods.rb
284
+ - test/dummy/db/migrate/20121008195802_rename_variants_to_sellables.piggybak_engine.rb
285
+ - test/dummy/db/migrate/20120103020919_create_addresses.rb
286
+ - test/dummy/db/migrate/20120107140039_add_active_to_countries.rb
287
+ - test/dummy/db/migrate/20120106034634_create_posts.rb
288
+ - test/dummy/db/migrate/20121022161614_fix_sellable_price_scale.rb
289
+ - test/dummy/db/migrate/20121022164235_convert_all_decimal_fields.rb
290
+ - test/dummy/db/migrate/20120829140529_add_to_be_cancelled_to_orders.piggybak_engine.rb
291
+ - test/dummy/db/migrate/20120102162415_create_states.rb
292
+ - test/dummy/db/migrate/20120103020927_create_payment_method_values.rb
293
+ - test/dummy/db/migrate/20121022202530_create_new_variants.piggybak_variants.rb
294
+ - test/dummy/db/migrate/20111231040339_devise_create_users.rb
295
+ - test/dummy/db/test.sqlite3
296
+ - test/dummy/db/schema.rb
297
+ - test/dummy/bin/rails
298
+ - test/dummy/bin/rake
299
+ - test/dummy/bin/bundle
300
+ - test/dummy/config/boot.rb
301
+ - test/dummy/config/initializers/assets.rb
302
+ - test/dummy/config/initializers/session_store.rb
303
+ - test/dummy/config/initializers/backtrace_silencers.rb
304
+ - test/dummy/config/initializers/filter_parameter_logging.rb
305
+ - test/dummy/config/initializers/wrap_parameters.rb
306
+ - test/dummy/config/initializers/devise.rb
307
+ - test/dummy/config/initializers/cookies_serializer.rb
308
+ - test/dummy/config/initializers/inflections.rb
309
+ - test/dummy/config/initializers/mime_types.rb
310
+ - test/dummy/config/secrets.yml
311
+ - test/dummy/config/routes.rb
312
+ - test/dummy/config/locales/devise.en.yml
313
+ - test/dummy/config/locales/en.yml
314
+ - test/dummy/config/application.rb
315
+ - test/dummy/config/environments/development.rb
316
+ - test/dummy/config/environments/production.rb
317
+ - test/dummy/config/environments/test.rb
318
+ - test/dummy/config/environment.rb
319
+ - test/dummy/config/database.yml
320
+ - test/dummy/README.rdoc
321
+ - test/test_helper.rb
322
+ - test/piggybak_free_shipping_by_product_test.rb