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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +196 -0
- data/CONTRIBUTING.md +96 -0
- data/LICENSE.txt +21 -0
- data/README.md +896 -0
- data/bin/pike13 +6 -0
- data/completions/_pike13 +229 -0
- data/completions/pike13.bash +112 -0
- data/lib/pike13/cli/commands/account/business.rb +22 -0
- data/lib/pike13/cli/commands/account/confirmation.rb +21 -0
- data/lib/pike13/cli/commands/account/password.rb +21 -0
- data/lib/pike13/cli/commands/account/person.rb +22 -0
- data/lib/pike13/cli/commands/account.rb +33 -0
- data/lib/pike13/cli/commands/base.rb +350 -0
- data/lib/pike13/cli/commands/concerns/formattable_command.rb +48 -0
- data/lib/pike13/cli/commands/concerns/reporting_query.rb +59 -0
- data/lib/pike13/cli/commands/desk/appointment.rb +58 -0
- data/lib/pike13/cli/commands/desk/booking.rb +56 -0
- data/lib/pike13/cli/commands/desk/business.rb +20 -0
- data/lib/pike13/cli/commands/desk/custom_field.rb +27 -0
- data/lib/pike13/cli/commands/desk/event.rb +32 -0
- data/lib/pike13/cli/commands/desk/event_occurrence.rb +64 -0
- data/lib/pike13/cli/commands/desk/event_occurrence_note.rb +82 -0
- data/lib/pike13/cli/commands/desk/event_occurrence_visit.rb +26 -0
- data/lib/pike13/cli/commands/desk/event_occurrence_waitlist_entry.rb +26 -0
- data/lib/pike13/cli/commands/desk/form_of_payment.rb +75 -0
- data/lib/pike13/cli/commands/desk/invoice.rb +29 -0
- data/lib/pike13/cli/commands/desk/location.rb +29 -0
- data/lib/pike13/cli/commands/desk/make_up.rb +51 -0
- data/lib/pike13/cli/commands/desk/note.rb +71 -0
- data/lib/pike13/cli/commands/desk/pack.rb +20 -0
- data/lib/pike13/cli/commands/desk/pack_product.rb +101 -0
- data/lib/pike13/cli/commands/desk/payment.rb +44 -0
- data/lib/pike13/cli/commands/desk/person.rb +98 -0
- data/lib/pike13/cli/commands/desk/person_plan.rb +27 -0
- data/lib/pike13/cli/commands/desk/person_visit.rb +27 -0
- data/lib/pike13/cli/commands/desk/person_waitlist_entry.rb +27 -0
- data/lib/pike13/cli/commands/desk/person_waiver.rb +27 -0
- data/lib/pike13/cli/commands/desk/plan.rb +29 -0
- data/lib/pike13/cli/commands/desk/plan_product.rb +35 -0
- data/lib/pike13/cli/commands/desk/punch.rb +20 -0
- data/lib/pike13/cli/commands/desk/refund.rb +31 -0
- data/lib/pike13/cli/commands/desk/revenue_category.rb +36 -0
- data/lib/pike13/cli/commands/desk/sales_tax.rb +36 -0
- data/lib/pike13/cli/commands/desk/service.rb +29 -0
- data/lib/pike13/cli/commands/desk/staff_member.rb +35 -0
- data/lib/pike13/cli/commands/desk/visit.rb +36 -0
- data/lib/pike13/cli/commands/desk/waitlist_entry.rb +69 -0
- data/lib/pike13/cli/commands/desk.rb +172 -0
- data/lib/pike13/cli/commands/front/appointment.rb +31 -0
- data/lib/pike13/cli/commands/front/booking.rb +56 -0
- data/lib/pike13/cli/commands/front/branding.rb +17 -0
- data/lib/pike13/cli/commands/front/business.rb +17 -0
- data/lib/pike13/cli/commands/front/event.rb +22 -0
- data/lib/pike13/cli/commands/front/event_occurrence.rb +35 -0
- data/lib/pike13/cli/commands/front/event_occurrence_note.rb +35 -0
- data/lib/pike13/cli/commands/front/event_occurrence_waitlist_eligibility.rb +27 -0
- data/lib/pike13/cli/commands/front/form_of_payment.rb +83 -0
- data/lib/pike13/cli/commands/front/location.rb +22 -0
- data/lib/pike13/cli/commands/front/person.rb +17 -0
- data/lib/pike13/cli/commands/front/person_plan.rb +26 -0
- data/lib/pike13/cli/commands/front/person_visit.rb +26 -0
- data/lib/pike13/cli/commands/front/person_waitlist_entry.rb +26 -0
- data/lib/pike13/cli/commands/front/person_waiver.rb +26 -0
- data/lib/pike13/cli/commands/front/plan_product.rb +31 -0
- data/lib/pike13/cli/commands/front/plan_terms.rb +42 -0
- data/lib/pike13/cli/commands/front/service.rb +22 -0
- data/lib/pike13/cli/commands/front.rb +113 -0
- data/lib/pike13/cli/commands/report/clients.rb +27 -0
- data/lib/pike13/cli/commands/report/enrollments.rb +27 -0
- data/lib/pike13/cli/commands/report/event_occurrence_staff_members.rb +31 -0
- data/lib/pike13/cli/commands/report/event_occurrences.rb +31 -0
- data/lib/pike13/cli/commands/report/invoice_item_transactions.rb +31 -0
- data/lib/pike13/cli/commands/report/invoice_items.rb +31 -0
- data/lib/pike13/cli/commands/report/invoices.rb +27 -0
- data/lib/pike13/cli/commands/report/monthly_business_metrics.rb +31 -0
- data/lib/pike13/cli/commands/report/pays.rb +27 -0
- data/lib/pike13/cli/commands/report/person_plans.rb +31 -0
- data/lib/pike13/cli/commands/report/staff_members.rb +31 -0
- data/lib/pike13/cli/commands/report/transactions.rb +27 -0
- data/lib/pike13/cli/commands/report.rb +77 -0
- data/lib/pike13/cli/config.rb +26 -0
- data/lib/pike13/cli/formatter.rb +142 -0
- data/lib/pike13/cli/progress.rb +85 -0
- data/lib/pike13/cli/thor_nested_subcommand.rb +37 -0
- data/lib/pike13/cli/version.rb +7 -0
- data/lib/pike13/cli.rb +70 -0
- 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
|
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: []
|