whop_sdk 0.0.36 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/internal/util.rb +3 -1
  5. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +135 -3
  6. data/lib/whop_sdk/models/checkout_font.rb +17 -0
  7. data/lib/whop_sdk/models/checkout_shape.rb +17 -0
  8. data/lib/whop_sdk/models/invoice_create_params.rb +141 -1646
  9. data/lib/whop_sdk/models/invoice_delete_params.rb +20 -0
  10. data/lib/whop_sdk/models/invoice_delete_response.rb +8 -0
  11. data/lib/whop_sdk/models/invoice_mark_paid_params.rb +20 -0
  12. data/lib/whop_sdk/models/invoice_mark_paid_response.rb +8 -0
  13. data/lib/whop_sdk/models/invoice_mark_uncollectible_params.rb +20 -0
  14. data/lib/whop_sdk/models/invoice_mark_uncollectible_response.rb +8 -0
  15. data/lib/whop_sdk/models/invoice_update_params.rb +468 -0
  16. data/lib/whop_sdk/models/membership.rb +3 -3
  17. data/lib/whop_sdk/models/membership_list_response.rb +3 -3
  18. data/lib/whop_sdk/models/payment_method_types.rb +6 -0
  19. data/lib/whop_sdk/models/payment_provider.rb +1 -0
  20. data/lib/whop_sdk/models/plan_create_params.rb +40 -1
  21. data/lib/whop_sdk/models/plan_update_params.rb +40 -1
  22. data/lib/whop_sdk/models/tax_identifier_type.rb +125 -0
  23. data/lib/whop_sdk/models.rb +14 -0
  24. data/lib/whop_sdk/resources/invoices.rb +123 -1
  25. data/lib/whop_sdk/resources/plans.rb +6 -2
  26. data/lib/whop_sdk/version.rb +1 -1
  27. data/lib/whop_sdk.rb +10 -0
  28. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +255 -0
  29. data/rbi/whop_sdk/models/checkout_font.rbi +21 -0
  30. data/rbi/whop_sdk/models/checkout_shape.rbi +21 -0
  31. data/rbi/whop_sdk/models/invoice_create_params.rbi +171 -3995
  32. data/rbi/whop_sdk/models/invoice_delete_params.rbi +35 -0
  33. data/rbi/whop_sdk/models/invoice_delete_response.rbi +8 -0
  34. data/rbi/whop_sdk/models/invoice_mark_paid_params.rbi +35 -0
  35. data/rbi/whop_sdk/models/invoice_mark_paid_response.rbi +8 -0
  36. data/rbi/whop_sdk/models/invoice_mark_uncollectible_params.rbi +38 -0
  37. data/rbi/whop_sdk/models/invoice_mark_uncollectible_response.rbi +8 -0
  38. data/rbi/whop_sdk/models/invoice_update_params.rbi +649 -0
  39. data/rbi/whop_sdk/models/membership.rbi +3 -3
  40. data/rbi/whop_sdk/models/membership_list_response.rbi +3 -3
  41. data/rbi/whop_sdk/models/payment_method_types.rbi +8 -0
  42. data/rbi/whop_sdk/models/payment_provider.rbi +1 -0
  43. data/rbi/whop_sdk/models/plan_create_params.rbi +73 -0
  44. data/rbi/whop_sdk/models/plan_update_params.rbi +73 -0
  45. data/rbi/whop_sdk/models/tax_identifier_type.rbi +131 -0
  46. data/rbi/whop_sdk/models.rbi +15 -0
  47. data/rbi/whop_sdk/resources/invoices.rbi +112 -4
  48. data/rbi/whop_sdk/resources/plans.rbi +10 -0
  49. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +96 -0
  50. data/sig/whop_sdk/models/checkout_font.rbs +15 -0
  51. data/sig/whop_sdk/models/checkout_shape.rbs +15 -0
  52. data/sig/whop_sdk/models/invoice_create_params.rbs +108 -1675
  53. data/sig/whop_sdk/models/invoice_delete_params.rbs +20 -0
  54. data/sig/whop_sdk/models/invoice_delete_response.rbs +5 -0
  55. data/sig/whop_sdk/models/invoice_mark_paid_params.rbs +20 -0
  56. data/sig/whop_sdk/models/invoice_mark_paid_response.rbs +5 -0
  57. data/sig/whop_sdk/models/invoice_mark_uncollectible_params.rbs +20 -0
  58. data/sig/whop_sdk/models/invoice_mark_uncollectible_response.rbs +5 -0
  59. data/sig/whop_sdk/models/invoice_update_params.rbs +322 -0
  60. data/sig/whop_sdk/models/membership.rbs +4 -4
  61. data/sig/whop_sdk/models/membership_list_response.rbs +4 -4
  62. data/sig/whop_sdk/models/payment_method_types.rbs +12 -0
  63. data/sig/whop_sdk/models/payment_provider.rbs +2 -0
  64. data/sig/whop_sdk/models/plan_create_params.rbs +32 -0
  65. data/sig/whop_sdk/models/plan_update_params.rbs +32 -0
  66. data/sig/whop_sdk/models/tax_identifier_type.rbs +234 -0
  67. data/sig/whop_sdk/models.rbs +14 -0
  68. data/sig/whop_sdk/resources/invoices.rbs +29 -0
  69. data/sig/whop_sdk/resources/plans.rbs +2 -0
  70. metadata +32 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 420957333a3afbd52b09179d17ba1f54876addc3408a8e4609e467ad44a2adee
4
- data.tar.gz: f04a470ceea3d6788174ad1e317c8c15344f30d10bd2b26575137bb18cf41928
3
+ metadata.gz: 8465f5ce3b0ffbb280bc7f25f778a6500a7534d05aab113245b2778ecdacb995
4
+ data.tar.gz: badc992950cbd83b175a35381af4e2818d4717e868e85606347d31456392502c
5
5
  SHA512:
6
- metadata.gz: a934c03728cd9c270a711599752c77c58018cb2fc1e88adb71dcde1b6d574d0ff4866dc37b828bfd77302a1ef9f7644f56781ca5452c1f103077e4e6aac3379b
7
- data.tar.gz: 0574eee685eae9673ef0ad28665b615fedc014b9ff9eaf271101770545caf9bc1acf9c92562d2cebcb023d7cede7cfa4ccbfad684c2f50d9b3aeb23d28faa22b
6
+ metadata.gz: 462b1ddf6796bed0127bceb52fb663fb80a192add71f329d0ec4af4a64a5560a97e595c27958030e338405c4e5ba286b2151d7b2c278cca168f3620f282731dc
7
+ data.tar.gz: 7f3e8318bd93c9ffd0d4ff36860b6ae80075a100936e55e01d48b3750dfbffed48f0f36d18599eae0bb9c0ace339cff2320e711f95d6e9d53ac04442534033a1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.37 (2026-04-10)
4
+
5
+ Full Changelog: [v0.0.36...v0.0.37](https://github.com/whopio/whopsdk-ruby/compare/v0.0.36...v0.0.37)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([4130e50](https://github.com/whopio/whopsdk-ruby/commit/4130e501162d6ba1a80de15a056950aca35508ad))
10
+ * **api:** api update ([1bac626](https://github.com/whopio/whopsdk-ruby/commit/1bac6269c3270ac68a86e36e9fedba945b43084c))
11
+ * **api:** api update ([cd88f35](https://github.com/whopio/whopsdk-ruby/commit/cd88f351641bdca8bb65efea98998f80590ccf8f))
12
+ * **api:** api update ([346d6ab](https://github.com/whopio/whopsdk-ruby/commit/346d6ab266c7382e3e17e5afcd6823558b155a81))
13
+ * **api:** api update ([25ceb03](https://github.com/whopio/whopsdk-ruby/commit/25ceb03fe003bcc96db811fd444989cd7266d37f))
14
+ * **api:** manual updates ([df60228](https://github.com/whopio/whopsdk-ruby/commit/df6022818f7e90ff309bf0c54d278f6244e981b9))
15
+ * **api:** manual updates ([a3ed550](https://github.com/whopio/whopsdk-ruby/commit/a3ed550169ba398cfc6581d9281eb81fce212802))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * multipart encoding for file arrays ([feee3d1](https://github.com/whopio/whopsdk-ruby/commit/feee3d1be0bb3f387d1c5cb7c61459442c762d94))
21
+
3
22
  ## 0.0.36 (2026-04-01)
4
23
 
5
24
  Full Changelog: [v0.0.35...v0.0.36](https://github.com/whopio/whopsdk-ruby/compare/v0.0.35...v0.0.36)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "whop_sdk", "~> 0.0.36"
29
+ gem "whop_sdk", "~> 0.0.37"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -610,6 +610,7 @@ module WhopSDK
610
610
  #
611
611
  # @return [Array(String, Enumerable<String>)]
612
612
  private def encode_multipart_streaming(body)
613
+ # rubocop:disable Style/CaseEquality
613
614
  # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
614
615
  boundary = SecureRandom.urlsafe_base64(46)
615
616
 
@@ -619,7 +620,7 @@ module WhopSDK
619
620
  in Hash
620
621
  body.each do |key, val|
621
622
  case val
622
- in Array if val.all? { primitive?(_1) }
623
+ in Array if val.all? { primitive?(_1) || WhopSDK::Internal::Type::FileInput === _1 }
623
624
  val.each do |v|
624
625
  write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
625
626
  end
@@ -635,6 +636,7 @@ module WhopSDK
635
636
 
636
637
  fused_io = fused_enum(strio) { closing.each(&:call) }
637
638
  [boundary, fused_io]
639
+ # rubocop:enable Style/CaseEquality
638
640
  end
639
641
 
640
642
  # @api private
@@ -45,6 +45,17 @@ module WhopSDK
45
45
  # @return [String, nil]
46
46
  optional :affiliate_code, String, nil?: true
47
47
 
48
+ # @!attribute checkout_styling
49
+ # Checkout styling overrides for this session. Overrides plan and company
50
+ # defaults.
51
+ #
52
+ # @return [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan::CheckoutStyling, nil]
53
+ optional :checkout_styling,
54
+ -> {
55
+ WhopSDK::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan::CheckoutStyling
56
+ },
57
+ nil?: true
58
+
48
59
  # @!attribute currency
49
60
  # The available currencies on the platform
50
61
  #
@@ -86,7 +97,7 @@ module WhopSDK
86
97
  # @return [String, nil]
87
98
  optional :source_url, String, nil?: true
88
99
 
89
- # @!method initialize(plan:, affiliate_code: nil, currency: nil, metadata: nil, mode: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil)
100
+ # @!method initialize(plan:, affiliate_code: nil, checkout_styling: nil, currency: nil, metadata: nil, mode: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil)
90
101
  # Some parameter documentations has been truncated, see
91
102
  # {WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan}
92
103
  # for more details.
@@ -97,6 +108,8 @@ module WhopSDK
97
108
  #
98
109
  # @param affiliate_code [String, nil] An affiliate tracking code to attribute the checkout to a specific affiliate.
99
110
  #
111
+ # @param checkout_styling [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan::CheckoutStyling, nil] Checkout styling overrides for this session. Overrides plan and company defaults
112
+ #
100
113
  # @param currency [Symbol, WhopSDK::Models::Currency, nil] The available currencies on the platform
101
114
  #
102
115
  # @param metadata [Hash{Symbol=>Object}, nil] Custom key-value metadata to attach to the checkout configuration.
@@ -550,6 +563,37 @@ module WhopSDK
550
563
  end
551
564
  end
552
565
 
566
+ # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan#checkout_styling
567
+ class CheckoutStyling < WhopSDK::Internal::Type::BaseModel
568
+ # @!attribute border_style
569
+ # The different border-radius styles available for checkout pages.
570
+ #
571
+ # @return [Symbol, WhopSDK::Models::CheckoutShape, nil]
572
+ optional :border_style, enum: -> { WhopSDK::CheckoutShape }, nil?: true
573
+
574
+ # @!attribute button_color
575
+ # A hex color code for the button color (e.g. #FF5733).
576
+ #
577
+ # @return [String, nil]
578
+ optional :button_color, String, nil?: true
579
+
580
+ # @!attribute font_family
581
+ # The different font families available for checkout pages.
582
+ #
583
+ # @return [Symbol, WhopSDK::Models::CheckoutFont, nil]
584
+ optional :font_family, enum: -> { WhopSDK::CheckoutFont }, nil?: true
585
+
586
+ # @!method initialize(border_style: nil, button_color: nil, font_family: nil)
587
+ # Checkout styling overrides for this session. Overrides plan and company
588
+ # defaults.
589
+ #
590
+ # @param border_style [Symbol, WhopSDK::Models::CheckoutShape, nil] The different border-radius styles available for checkout pages.
591
+ #
592
+ # @param button_color [String, nil] A hex color code for the button color (e.g. #FF5733).
593
+ #
594
+ # @param font_family [Symbol, WhopSDK::Models::CheckoutFont, nil] The different font families available for checkout pages.
595
+ end
596
+
553
597
  # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlan#mode
554
598
  module Mode
555
599
  extend WhopSDK::Internal::Type::Enum
@@ -616,6 +660,17 @@ module WhopSDK
616
660
  # @return [String, nil]
617
661
  optional :affiliate_code, String, nil?: true
618
662
 
663
+ # @!attribute checkout_styling
664
+ # Checkout styling overrides for this session. Overrides plan and company
665
+ # defaults.
666
+ #
667
+ # @return [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID::CheckoutStyling, nil]
668
+ optional :checkout_styling,
669
+ -> {
670
+ WhopSDK::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID::CheckoutStyling
671
+ },
672
+ nil?: true
673
+
619
674
  # @!attribute currency
620
675
  # The available currencies on the platform
621
676
  #
@@ -657,7 +712,7 @@ module WhopSDK
657
712
  # @return [String, nil]
658
713
  optional :source_url, String, nil?: true
659
714
 
660
- # @!method initialize(plan_id:, affiliate_code: nil, currency: nil, metadata: nil, mode: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil)
715
+ # @!method initialize(plan_id:, affiliate_code: nil, checkout_styling: nil, currency: nil, metadata: nil, mode: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil)
661
716
  # Some parameter documentations has been truncated, see
662
717
  # {WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID}
663
718
  # for more details.
@@ -668,6 +723,8 @@ module WhopSDK
668
723
  #
669
724
  # @param affiliate_code [String, nil] An affiliate tracking code to attribute the checkout to a specific affiliate.
670
725
  #
726
+ # @param checkout_styling [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID::CheckoutStyling, nil] Checkout styling overrides for this session. Overrides plan and company defaults
727
+ #
671
728
  # @param currency [Symbol, WhopSDK::Models::Currency, nil] The available currencies on the platform
672
729
  #
673
730
  # @param metadata [Hash{Symbol=>Object}, nil] Custom key-value metadata to attach to the checkout configuration.
@@ -680,6 +737,37 @@ module WhopSDK
680
737
  #
681
738
  # @param source_url [String, nil] The URL of the page where the checkout is being initiated from.
682
739
 
740
+ # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID#checkout_styling
741
+ class CheckoutStyling < WhopSDK::Internal::Type::BaseModel
742
+ # @!attribute border_style
743
+ # The different border-radius styles available for checkout pages.
744
+ #
745
+ # @return [Symbol, WhopSDK::Models::CheckoutShape, nil]
746
+ optional :border_style, enum: -> { WhopSDK::CheckoutShape }, nil?: true
747
+
748
+ # @!attribute button_color
749
+ # A hex color code for the button color (e.g. #FF5733).
750
+ #
751
+ # @return [String, nil]
752
+ optional :button_color, String, nil?: true
753
+
754
+ # @!attribute font_family
755
+ # The different font families available for checkout pages.
756
+ #
757
+ # @return [Symbol, WhopSDK::Models::CheckoutFont, nil]
758
+ optional :font_family, enum: -> { WhopSDK::CheckoutFont }, nil?: true
759
+
760
+ # @!method initialize(border_style: nil, button_color: nil, font_family: nil)
761
+ # Checkout styling overrides for this session. Overrides plan and company
762
+ # defaults.
763
+ #
764
+ # @param border_style [Symbol, WhopSDK::Models::CheckoutShape, nil] The different border-radius styles available for checkout pages.
765
+ #
766
+ # @param button_color [String, nil] A hex color code for the button color (e.g. #FF5733).
767
+ #
768
+ # @param font_family [Symbol, WhopSDK::Models::CheckoutFont, nil] The different font families available for checkout pages.
769
+ end
770
+
683
771
  # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModePaymentWithPlanID#mode
684
772
  module Mode
685
773
  extend WhopSDK::Internal::Type::Enum
@@ -745,6 +833,17 @@ module WhopSDK
745
833
  # @return [Symbol, :setup]
746
834
  required :mode, const: :setup
747
835
 
836
+ # @!attribute checkout_styling
837
+ # Checkout styling overrides for this session. Overrides plan and company
838
+ # defaults.
839
+ #
840
+ # @return [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup::CheckoutStyling, nil]
841
+ optional :checkout_styling,
842
+ -> {
843
+ WhopSDK::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup::CheckoutStyling
844
+ },
845
+ nil?: true
846
+
748
847
  # @!attribute currency
749
848
  # The available currencies on the platform
750
849
  #
@@ -780,7 +879,7 @@ module WhopSDK
780
879
  # @return [String, nil]
781
880
  optional :source_url, String, nil?: true
782
881
 
783
- # @!method initialize(company_id:, currency: nil, metadata: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil, mode: :setup)
882
+ # @!method initialize(company_id:, checkout_styling: nil, currency: nil, metadata: nil, payment_method_configuration: nil, redirect_url: nil, source_url: nil, mode: :setup)
784
883
  # Some parameter documentations has been truncated, see
785
884
  # {WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup}
786
885
  # for more details.
@@ -789,6 +888,8 @@ module WhopSDK
789
888
  #
790
889
  # @param company_id [String] The unique identifier of the company to create the checkout configuration for. O
791
890
  #
891
+ # @param checkout_styling [WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup::CheckoutStyling, nil] Checkout styling overrides for this session. Overrides plan and company defaults
892
+ #
792
893
  # @param currency [Symbol, WhopSDK::Models::Currency, nil] The available currencies on the platform
793
894
  #
794
895
  # @param metadata [Hash{Symbol=>Object}, nil] Custom key-value metadata to attach to the checkout configuration.
@@ -801,6 +902,37 @@ module WhopSDK
801
902
  #
802
903
  # @param mode [Symbol, :setup]
803
904
 
905
+ # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup#checkout_styling
906
+ class CheckoutStyling < WhopSDK::Internal::Type::BaseModel
907
+ # @!attribute border_style
908
+ # The different border-radius styles available for checkout pages.
909
+ #
910
+ # @return [Symbol, WhopSDK::Models::CheckoutShape, nil]
911
+ optional :border_style, enum: -> { WhopSDK::CheckoutShape }, nil?: true
912
+
913
+ # @!attribute button_color
914
+ # A hex color code for the button color (e.g. #FF5733).
915
+ #
916
+ # @return [String, nil]
917
+ optional :button_color, String, nil?: true
918
+
919
+ # @!attribute font_family
920
+ # The different font families available for checkout pages.
921
+ #
922
+ # @return [Symbol, WhopSDK::Models::CheckoutFont, nil]
923
+ optional :font_family, enum: -> { WhopSDK::CheckoutFont }, nil?: true
924
+
925
+ # @!method initialize(border_style: nil, button_color: nil, font_family: nil)
926
+ # Checkout styling overrides for this session. Overrides plan and company
927
+ # defaults.
928
+ #
929
+ # @param border_style [Symbol, WhopSDK::Models::CheckoutShape, nil] The different border-radius styles available for checkout pages.
930
+ #
931
+ # @param button_color [String, nil] A hex color code for the button color (e.g. #FF5733).
932
+ #
933
+ # @param font_family [Symbol, WhopSDK::Models::CheckoutFont, nil] The different font families available for checkout pages.
934
+ end
935
+
804
936
  # @see WhopSDK::Models::CheckoutConfigurationCreateParams::Body::CreateCheckoutSessionInputModeSetup#payment_method_configuration
805
937
  class PaymentMethodConfiguration < WhopSDK::Internal::Type::BaseModel
806
938
  # @!attribute disabled
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # The different font families available for checkout pages.
6
+ module CheckoutFont
7
+ extend WhopSDK::Internal::Type::Enum
8
+
9
+ SYSTEM = :system
10
+ ROBOTO = :roboto
11
+ OPEN_SANS = :open_sans
12
+
13
+ # @!method self.values
14
+ # @return [Array<Symbol>]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # The different border-radius styles available for checkout pages.
6
+ module CheckoutShape
7
+ extend WhopSDK::Internal::Type::Enum
8
+
9
+ ROUNDED = :rounded
10
+ PILL = :pill
11
+ RECTANGULAR = :rectangular
12
+
13
+ # @!method self.values
14
+ # @return [Array<Symbol>]
15
+ end
16
+ end
17
+ end