pike13-cli 0.1.4

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 (88) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +196 -0
  3. data/CONTRIBUTING.md +96 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +896 -0
  6. data/bin/pike13 +6 -0
  7. data/completions/_pike13 +229 -0
  8. data/completions/pike13.bash +112 -0
  9. data/lib/pike13/cli/commands/account/business.rb +22 -0
  10. data/lib/pike13/cli/commands/account/confirmation.rb +21 -0
  11. data/lib/pike13/cli/commands/account/password.rb +21 -0
  12. data/lib/pike13/cli/commands/account/person.rb +22 -0
  13. data/lib/pike13/cli/commands/account.rb +33 -0
  14. data/lib/pike13/cli/commands/base.rb +350 -0
  15. data/lib/pike13/cli/commands/concerns/formattable_command.rb +48 -0
  16. data/lib/pike13/cli/commands/concerns/reporting_query.rb +59 -0
  17. data/lib/pike13/cli/commands/desk/appointment.rb +58 -0
  18. data/lib/pike13/cli/commands/desk/booking.rb +56 -0
  19. data/lib/pike13/cli/commands/desk/business.rb +20 -0
  20. data/lib/pike13/cli/commands/desk/custom_field.rb +27 -0
  21. data/lib/pike13/cli/commands/desk/event.rb +32 -0
  22. data/lib/pike13/cli/commands/desk/event_occurrence.rb +64 -0
  23. data/lib/pike13/cli/commands/desk/event_occurrence_note.rb +82 -0
  24. data/lib/pike13/cli/commands/desk/event_occurrence_visit.rb +26 -0
  25. data/lib/pike13/cli/commands/desk/event_occurrence_waitlist_entry.rb +26 -0
  26. data/lib/pike13/cli/commands/desk/form_of_payment.rb +75 -0
  27. data/lib/pike13/cli/commands/desk/invoice.rb +29 -0
  28. data/lib/pike13/cli/commands/desk/location.rb +29 -0
  29. data/lib/pike13/cli/commands/desk/make_up.rb +51 -0
  30. data/lib/pike13/cli/commands/desk/note.rb +71 -0
  31. data/lib/pike13/cli/commands/desk/pack.rb +20 -0
  32. data/lib/pike13/cli/commands/desk/pack_product.rb +101 -0
  33. data/lib/pike13/cli/commands/desk/payment.rb +44 -0
  34. data/lib/pike13/cli/commands/desk/person.rb +98 -0
  35. data/lib/pike13/cli/commands/desk/person_plan.rb +27 -0
  36. data/lib/pike13/cli/commands/desk/person_visit.rb +27 -0
  37. data/lib/pike13/cli/commands/desk/person_waitlist_entry.rb +27 -0
  38. data/lib/pike13/cli/commands/desk/person_waiver.rb +27 -0
  39. data/lib/pike13/cli/commands/desk/plan.rb +29 -0
  40. data/lib/pike13/cli/commands/desk/plan_product.rb +35 -0
  41. data/lib/pike13/cli/commands/desk/punch.rb +20 -0
  42. data/lib/pike13/cli/commands/desk/refund.rb +31 -0
  43. data/lib/pike13/cli/commands/desk/revenue_category.rb +36 -0
  44. data/lib/pike13/cli/commands/desk/sales_tax.rb +36 -0
  45. data/lib/pike13/cli/commands/desk/service.rb +29 -0
  46. data/lib/pike13/cli/commands/desk/staff_member.rb +35 -0
  47. data/lib/pike13/cli/commands/desk/visit.rb +36 -0
  48. data/lib/pike13/cli/commands/desk/waitlist_entry.rb +69 -0
  49. data/lib/pike13/cli/commands/desk.rb +172 -0
  50. data/lib/pike13/cli/commands/front/appointment.rb +31 -0
  51. data/lib/pike13/cli/commands/front/booking.rb +56 -0
  52. data/lib/pike13/cli/commands/front/branding.rb +17 -0
  53. data/lib/pike13/cli/commands/front/business.rb +17 -0
  54. data/lib/pike13/cli/commands/front/event.rb +22 -0
  55. data/lib/pike13/cli/commands/front/event_occurrence.rb +35 -0
  56. data/lib/pike13/cli/commands/front/event_occurrence_note.rb +35 -0
  57. data/lib/pike13/cli/commands/front/event_occurrence_waitlist_eligibility.rb +27 -0
  58. data/lib/pike13/cli/commands/front/form_of_payment.rb +83 -0
  59. data/lib/pike13/cli/commands/front/location.rb +22 -0
  60. data/lib/pike13/cli/commands/front/person.rb +17 -0
  61. data/lib/pike13/cli/commands/front/person_plan.rb +26 -0
  62. data/lib/pike13/cli/commands/front/person_visit.rb +26 -0
  63. data/lib/pike13/cli/commands/front/person_waitlist_entry.rb +26 -0
  64. data/lib/pike13/cli/commands/front/person_waiver.rb +26 -0
  65. data/lib/pike13/cli/commands/front/plan_product.rb +31 -0
  66. data/lib/pike13/cli/commands/front/plan_terms.rb +42 -0
  67. data/lib/pike13/cli/commands/front/service.rb +22 -0
  68. data/lib/pike13/cli/commands/front.rb +113 -0
  69. data/lib/pike13/cli/commands/report/clients.rb +27 -0
  70. data/lib/pike13/cli/commands/report/enrollments.rb +27 -0
  71. data/lib/pike13/cli/commands/report/event_occurrence_staff_members.rb +31 -0
  72. data/lib/pike13/cli/commands/report/event_occurrences.rb +31 -0
  73. data/lib/pike13/cli/commands/report/invoice_item_transactions.rb +31 -0
  74. data/lib/pike13/cli/commands/report/invoice_items.rb +31 -0
  75. data/lib/pike13/cli/commands/report/invoices.rb +27 -0
  76. data/lib/pike13/cli/commands/report/monthly_business_metrics.rb +31 -0
  77. data/lib/pike13/cli/commands/report/pays.rb +27 -0
  78. data/lib/pike13/cli/commands/report/person_plans.rb +31 -0
  79. data/lib/pike13/cli/commands/report/staff_members.rb +31 -0
  80. data/lib/pike13/cli/commands/report/transactions.rb +27 -0
  81. data/lib/pike13/cli/commands/report.rb +77 -0
  82. data/lib/pike13/cli/config.rb +26 -0
  83. data/lib/pike13/cli/formatter.rb +142 -0
  84. data/lib/pike13/cli/progress.rb +85 -0
  85. data/lib/pike13/cli/thor_nested_subcommand.rb +37 -0
  86. data/lib/pike13/cli/version.rb +7 -0
  87. data/lib/pike13/cli.rb +70 -0
  88. metadata +187 -0
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "colorize"
5
+
6
+ module Pike13
7
+ module CLI
8
+ # Handles output formatting for CLI commands
9
+ # Supports JSON, table, and CSV formats
10
+ class Formatter
11
+ # Output data in the specified format
12
+ # The SDK returns raw API responses (Hash or Array)
13
+ #
14
+ # @param data [Hash, Array] The data to format and output
15
+ # @param format [Symbol, String] Output format (:json, :table, or :csv)
16
+ # @param compact [Boolean] Whether to use compact JSON (no pretty printing)
17
+ # @param color [Boolean] Whether to use colored output
18
+ # @return [void]
19
+ def self.output(data, format: :json, compact: false, color: false)
20
+ case format.to_sym
21
+ when :json
22
+ puts compact ? JSON.generate(data) : JSON.pretty_generate(data)
23
+ when :table
24
+ output_table(data, color: color)
25
+ when :csv
26
+ output_csv(data)
27
+ else
28
+ puts JSON.pretty_generate(data)
29
+ end
30
+ end
31
+
32
+ def self.output_table(data, color: false)
33
+ return puts "No data" if data.nil? || (data.respond_to?(:empty?) && data.empty?)
34
+
35
+ # Extract array from wrapper if needed
36
+ items = extract_array_from_response(data)
37
+ return puts "No data" if items.empty?
38
+
39
+ # Get headers from first item
40
+ first = items.first
41
+ return puts "No data" if first.nil?
42
+
43
+ headers = first.is_a?(Hash) ? first.keys : ["value"]
44
+
45
+ # Calculate optimal column widths
46
+ col_widths = calculate_column_widths(headers, items)
47
+
48
+ # Print header
49
+ header_line = headers.map.with_index { |h, i| h.to_s.ljust(col_widths[i]) }.join(" | ")
50
+ puts color ? header_line.bold.cyan : header_line
51
+ puts "-" * header_line.length
52
+
53
+ # Print rows
54
+ items.each do |item|
55
+ if item.is_a?(Hash)
56
+ row = headers.map.with_index do |h, i|
57
+ truncate(item[h].to_s, col_widths[i]).ljust(col_widths[i])
58
+ end
59
+ puts row.join(" | ")
60
+ else
61
+ puts truncate(item.to_s, col_widths[0])
62
+ end
63
+ end
64
+ end
65
+
66
+ def self.output_csv(data)
67
+ return puts "" if data.nil? || (data.respond_to?(:empty?) && data.empty?)
68
+
69
+ # Extract array from wrapper if needed
70
+ items = extract_array_from_response(data)
71
+ return puts "" if items.empty?
72
+
73
+ first = items.first
74
+ return puts "" if first.nil? || !first.is_a?(Hash)
75
+
76
+ headers = first.keys
77
+
78
+ # Print CSV header
79
+ puts headers.join(",")
80
+
81
+ # Print CSV rows
82
+ items.each do |item|
83
+ puts headers.map { |h| csv_escape(item[h]) }.join(",")
84
+ end
85
+ end
86
+
87
+ def self.extract_array_from_response(data)
88
+ case data
89
+ when Array
90
+ data
91
+ when Hash
92
+ # Handle reporting API response (v3)
93
+ if data.dig("data", "attributes", "rows")
94
+ rows = data.dig("data", "attributes", "rows")
95
+ fields = data.dig("data", "attributes", "fields") || []
96
+ # Convert rows (arrays) to hashes using field names
97
+ return rows.map do |row|
98
+ fields.each_with_index.to_h { |field, i| [field["name"], row[i]] }
99
+ end
100
+ end
101
+
102
+ # Try to find an array value in the hash (common API response pattern)
103
+ # Look for keys like "locations", "people", "events", etc.
104
+ array_value = data.values.find { |v| v.is_a?(Array) }
105
+ array_value || [data]
106
+ else
107
+ [data]
108
+ end
109
+ end
110
+
111
+ def self.calculate_column_widths(headers, items, max_width: 50, min_width: 10)
112
+ # Calculate the width needed for each column
113
+ headers.map.with_index do |header, _i|
114
+ # Start with header width
115
+ max_len = header.to_s.length
116
+
117
+ # Check data widths (sample first 100 rows for performance)
118
+ items.first(100).each do |item|
119
+ next unless item.is_a?(Hash)
120
+
121
+ value_len = item[header].to_s.length
122
+ max_len = value_len if value_len > max_len
123
+ end
124
+
125
+ # Constrain to min/max
126
+ max_len.clamp(min_width, max_width)
127
+ end
128
+ end
129
+
130
+ def self.truncate(str, max_length)
131
+ str.length > max_length ? "#{str[0...(max_length - 3)]}..." : str
132
+ end
133
+
134
+ def self.csv_escape(value)
135
+ return "" if value.nil?
136
+
137
+ str = value.to_s
138
+ str.include?(",") || str.include?('"') || str.include?("\n") ? "\"#{str.gsub('"', '""')}\"" : str
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pike13
4
+ module CLI
5
+ # Simple progress indicator for long-running operations
6
+ class Progress
7
+ SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"].freeze
8
+
9
+ def initialize(message = "Loading", enabled: true)
10
+ @message = message
11
+ @enabled = enabled && $stdout.tty?
12
+ @frame_index = 0
13
+ @thread = nil
14
+ end
15
+
16
+ # Start the spinner
17
+ def start
18
+ return unless @enabled
19
+
20
+ @thread = Thread.new do
21
+ loop do
22
+ print "\r#{SPINNER_FRAMES[@frame_index]} #{@message}..."
23
+ @frame_index = (@frame_index + 1) % SPINNER_FRAMES.length
24
+ sleep 0.1
25
+ end
26
+ end
27
+ end
28
+
29
+ # Stop the spinner and clear the line
30
+ def stop(final_message = nil)
31
+ return unless @enabled
32
+
33
+ @thread&.kill
34
+ print "\r#{' ' * (@message.length + 10)}\r" # Clear the line
35
+ puts final_message if final_message
36
+ end
37
+
38
+ # Run a block with progress indication
39
+ def self.run(message = "Loading", enabled: true)
40
+ progress = new(message, enabled: enabled)
41
+ progress.start
42
+
43
+ begin
44
+ result = yield
45
+ progress.stop
46
+ result
47
+ rescue StandardError => e
48
+ progress.stop
49
+ raise e
50
+ end
51
+ end
52
+
53
+ # Simple progress bar for known iterations
54
+ class Bar
55
+ def initialize(total, width: 40, enabled: true)
56
+ @total = total
57
+ @current = 0
58
+ @width = width
59
+ @enabled = enabled && $stdout.tty?
60
+ end
61
+
62
+ def increment(message = nil)
63
+ return unless @enabled
64
+
65
+ @current += 1
66
+ percentage = (@current.to_f / @total * 100).round
67
+ filled = (@current.to_f / @total * @width).round
68
+ bar = ("█" * filled) + ("░" * (@width - filled))
69
+
70
+ suffix = message ? " - #{message}" : ""
71
+ print "\r[#{bar}] #{percentage}%#{suffix}"
72
+ print "\n" if @current >= @total
73
+ end
74
+
75
+ def finish(message = "Complete")
76
+ return unless @enabled
77
+
78
+ @current = @total
79
+ bar = "█" * @width
80
+ print "\r[#{bar}] 100% - #{message}\n"
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Fix for Thor nested subcommand help display bug
4
+ # Based on https://github.com/gangelo/thor_nested_subcommand
5
+ module Pike13
6
+ module CLI
7
+ # This module fixes a bug in Thor that prohibits help for nested
8
+ # subcommands from displaying help properly. Nested subcommands fail
9
+ # to display their subcommand ancestor command name. This fixes that
10
+ # bug.
11
+ module ThorNestedSubcommand
12
+ class << self
13
+ def included(base)
14
+ base.extend ClassMethods
15
+ end
16
+ end
17
+
18
+ module ClassMethods
19
+ def base_usage
20
+ raise NotImplementedError, "#{name} must implement .base_usage method"
21
+ end
22
+
23
+ # Don't override desc - just fix the banner for proper display
24
+ # The banner override handles the display correctly
25
+
26
+ # Thor override
27
+ # rubocop:disable Lint/UnusedMethodArgument
28
+ # rubocop:disable Style/OptionalBooleanParameter
29
+ def banner(command, namespace = nil, subcommand = false)
30
+ "#{basename} #{base_usage} #{command.usage}"
31
+ end
32
+ # rubocop:enable Lint/UnusedMethodArgument
33
+ # rubocop:enable Style/OptionalBooleanParameter
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pike13
4
+ module CLI
5
+ VERSION = "0.1.4"
6
+ end
7
+ end
data/lib/pike13/cli.rb ADDED
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pike13"
4
+ require "thor"
5
+ require "json"
6
+
7
+ require_relative "cli/version"
8
+ require_relative "cli/config"
9
+ require_relative "cli/formatter"
10
+ require_relative "cli/commands/desk"
11
+ require_relative "cli/commands/front"
12
+ require_relative "cli/commands/account"
13
+ require_relative "cli/commands/report"
14
+
15
+ module Pike13
16
+ module CLI
17
+ class Runner < Thor
18
+ class_option :verbose, type: :boolean, aliases: "-v", desc: "Verbose output"
19
+ class_option :quiet, type: :boolean, aliases: "-q", desc: "Quiet mode (errors only)"
20
+
21
+ desc "desk SUBCOMMAND", "Desk namespace (staff interface)"
22
+ subcommand "desk", Commands::Desk
23
+
24
+ desc "front SUBCOMMAND", "Front namespace (client interface)"
25
+ subcommand "front", Commands::Front
26
+
27
+ desc "account SUBCOMMAND", "Account namespace"
28
+ subcommand "account", Commands::Account
29
+
30
+ desc "ac SUBCOMMAND", "Account namespace (shortcut)"
31
+ subcommand "ac", Commands::Account
32
+
33
+ desc "report SUBCOMMAND", "Reporting API"
34
+ subcommand "report", Commands::Report
35
+
36
+ desc "version", "Show version"
37
+ def version
38
+ require "colorize" if $stdout.tty?
39
+
40
+ puts "pike13-cli version #{Pike13::CLI::VERSION}".bold if $stdout.tty?
41
+ puts "pike13-cli version #{Pike13::CLI::VERSION}" unless $stdout.tty?
42
+ puts "pike13 gem version #{Pike13::VERSION}"
43
+ puts "Ruby version: #{RUBY_VERSION}"
44
+ puts ""
45
+ puts "Environment:"
46
+ puts " PIKE13_ACCESS_TOKEN: #{ENV['PIKE13_ACCESS_TOKEN'] ? 'set' : 'not set'}"
47
+ puts " PIKE13_BASE_URL: #{ENV['PIKE13_BASE_URL'] || 'not set'}"
48
+ end
49
+
50
+ def self.exit_on_failure?
51
+ true
52
+ end
53
+
54
+ # Hook to configure Pike13 before any command
55
+ def self.start(given_args = ARGV, config = {})
56
+ # Skip config for help commands
57
+ first_arg = given_args.first
58
+ is_help_command = first_arg == "help" || first_arg == "version" ||
59
+ given_args.any? { |arg| arg.include?("--help") }
60
+ unless is_help_command || given_args.empty?
61
+ Config.configure_pike13!
62
+ end
63
+ super
64
+ rescue StandardError => e
65
+ puts "Error: #{e.message}"
66
+ exit 1
67
+ end
68
+ end
69
+ end
70
+ end
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pike13-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Pike13 CLI Contributors
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: colorize
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.1'
26
+ - !ruby/object:Gem::Dependency
27
+ name: pike13
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.1'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.1'
40
+ - !ruby/object:Gem::Dependency
41
+ name: table_print
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.5'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.5'
54
+ - !ruby/object:Gem::Dependency
55
+ name: thor
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.3'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.3'
68
+ description: A powerful CLI tool for interacting with Pike13's Core and Reporting
69
+ APIs
70
+ email:
71
+ - juanfhuttemann@gmail.com
72
+ executables:
73
+ - pike13
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - CHANGELOG.md
78
+ - CONTRIBUTING.md
79
+ - LICENSE.txt
80
+ - README.md
81
+ - bin/pike13
82
+ - completions/_pike13
83
+ - completions/pike13.bash
84
+ - lib/pike13/cli.rb
85
+ - lib/pike13/cli/commands/account.rb
86
+ - lib/pike13/cli/commands/account/business.rb
87
+ - lib/pike13/cli/commands/account/confirmation.rb
88
+ - lib/pike13/cli/commands/account/password.rb
89
+ - lib/pike13/cli/commands/account/person.rb
90
+ - lib/pike13/cli/commands/base.rb
91
+ - lib/pike13/cli/commands/concerns/formattable_command.rb
92
+ - lib/pike13/cli/commands/concerns/reporting_query.rb
93
+ - lib/pike13/cli/commands/desk.rb
94
+ - lib/pike13/cli/commands/desk/appointment.rb
95
+ - lib/pike13/cli/commands/desk/booking.rb
96
+ - lib/pike13/cli/commands/desk/business.rb
97
+ - lib/pike13/cli/commands/desk/custom_field.rb
98
+ - lib/pike13/cli/commands/desk/event.rb
99
+ - lib/pike13/cli/commands/desk/event_occurrence.rb
100
+ - lib/pike13/cli/commands/desk/event_occurrence_note.rb
101
+ - lib/pike13/cli/commands/desk/event_occurrence_visit.rb
102
+ - lib/pike13/cli/commands/desk/event_occurrence_waitlist_entry.rb
103
+ - lib/pike13/cli/commands/desk/form_of_payment.rb
104
+ - lib/pike13/cli/commands/desk/invoice.rb
105
+ - lib/pike13/cli/commands/desk/location.rb
106
+ - lib/pike13/cli/commands/desk/make_up.rb
107
+ - lib/pike13/cli/commands/desk/note.rb
108
+ - lib/pike13/cli/commands/desk/pack.rb
109
+ - lib/pike13/cli/commands/desk/pack_product.rb
110
+ - lib/pike13/cli/commands/desk/payment.rb
111
+ - lib/pike13/cli/commands/desk/person.rb
112
+ - lib/pike13/cli/commands/desk/person_plan.rb
113
+ - lib/pike13/cli/commands/desk/person_visit.rb
114
+ - lib/pike13/cli/commands/desk/person_waitlist_entry.rb
115
+ - lib/pike13/cli/commands/desk/person_waiver.rb
116
+ - lib/pike13/cli/commands/desk/plan.rb
117
+ - lib/pike13/cli/commands/desk/plan_product.rb
118
+ - lib/pike13/cli/commands/desk/punch.rb
119
+ - lib/pike13/cli/commands/desk/refund.rb
120
+ - lib/pike13/cli/commands/desk/revenue_category.rb
121
+ - lib/pike13/cli/commands/desk/sales_tax.rb
122
+ - lib/pike13/cli/commands/desk/service.rb
123
+ - lib/pike13/cli/commands/desk/staff_member.rb
124
+ - lib/pike13/cli/commands/desk/visit.rb
125
+ - lib/pike13/cli/commands/desk/waitlist_entry.rb
126
+ - lib/pike13/cli/commands/front.rb
127
+ - lib/pike13/cli/commands/front/appointment.rb
128
+ - lib/pike13/cli/commands/front/booking.rb
129
+ - lib/pike13/cli/commands/front/branding.rb
130
+ - lib/pike13/cli/commands/front/business.rb
131
+ - lib/pike13/cli/commands/front/event.rb
132
+ - lib/pike13/cli/commands/front/event_occurrence.rb
133
+ - lib/pike13/cli/commands/front/event_occurrence_note.rb
134
+ - lib/pike13/cli/commands/front/event_occurrence_waitlist_eligibility.rb
135
+ - lib/pike13/cli/commands/front/form_of_payment.rb
136
+ - lib/pike13/cli/commands/front/location.rb
137
+ - lib/pike13/cli/commands/front/person.rb
138
+ - lib/pike13/cli/commands/front/person_plan.rb
139
+ - lib/pike13/cli/commands/front/person_visit.rb
140
+ - lib/pike13/cli/commands/front/person_waitlist_entry.rb
141
+ - lib/pike13/cli/commands/front/person_waiver.rb
142
+ - lib/pike13/cli/commands/front/plan_product.rb
143
+ - lib/pike13/cli/commands/front/plan_terms.rb
144
+ - lib/pike13/cli/commands/front/service.rb
145
+ - lib/pike13/cli/commands/report.rb
146
+ - lib/pike13/cli/commands/report/clients.rb
147
+ - lib/pike13/cli/commands/report/enrollments.rb
148
+ - lib/pike13/cli/commands/report/event_occurrence_staff_members.rb
149
+ - lib/pike13/cli/commands/report/event_occurrences.rb
150
+ - lib/pike13/cli/commands/report/invoice_item_transactions.rb
151
+ - lib/pike13/cli/commands/report/invoice_items.rb
152
+ - lib/pike13/cli/commands/report/invoices.rb
153
+ - lib/pike13/cli/commands/report/monthly_business_metrics.rb
154
+ - lib/pike13/cli/commands/report/pays.rb
155
+ - lib/pike13/cli/commands/report/person_plans.rb
156
+ - lib/pike13/cli/commands/report/staff_members.rb
157
+ - lib/pike13/cli/commands/report/transactions.rb
158
+ - lib/pike13/cli/config.rb
159
+ - lib/pike13/cli/formatter.rb
160
+ - lib/pike13/cli/progress.rb
161
+ - lib/pike13/cli/thor_nested_subcommand.rb
162
+ - lib/pike13/cli/version.rb
163
+ homepage: https://github.com/juanhuttemann/pike13-cli
164
+ licenses:
165
+ - MIT
166
+ metadata:
167
+ homepage_uri: https://github.com/juanhuttemann/pike13-cli
168
+ source_code_uri: https://github.com/juanhuttemann/pike13-cli
169
+ rubygems_mfa_required: 'true'
170
+ rdoc_options: []
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 3.0.0
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ requirements: []
184
+ rubygems_version: 3.6.9
185
+ specification_version: 4
186
+ summary: Command-line interface for Pike13 API
187
+ test_files: []