ruby_native 0.17.3 → 0.18.0

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.
@@ -1,14 +1,29 @@
1
+ require "ruby_native/cli/apple"
1
2
  require "ruby_native/cli/check"
2
3
  require "ruby_native/cli/credentials"
4
+ require "ruby_native/cli/demo_account"
3
5
  require "ruby_native/cli/deploy"
6
+ require "ruby_native/cli/icon"
7
+ require "ruby_native/cli/link"
8
+ require "ruby_native/cli/listing"
4
9
  require "ruby_native/cli/login"
10
+ require "ruby_native/cli/mcp"
11
+ require "ruby_native/cli/mcp/install"
12
+ require "ruby_native/cli/permissions"
5
13
  require "ruby_native/cli/preview"
14
+ require "ruby_native/cli/screenshots"
15
+ require "ruby_native/cli/ship"
16
+ require "ruby_native/cli/status"
17
+ require "ruby_native/cli/submit"
18
+ require "ruby_native/cli/testers"
6
19
 
7
20
  module RubyNative
8
21
  class CLI
9
22
  def self.start(argv)
10
23
  command = argv.shift
11
24
  case command
25
+ when "apple"
26
+ RubyNative::CLI::Apple.new(argv).run
12
27
  when "check"
13
28
  RubyNative::CLI::Check.new(argv).run
14
29
  when "deploy"
@@ -17,14 +32,37 @@ module RubyNative
17
32
  RubyNative::CLI::Preview.new(argv).run
18
33
  when "login"
19
34
  RubyNative::CLI::Login.new(argv).run
35
+ when "mcp"
36
+ if argv.first == "install"
37
+ RubyNative::CLI::Mcp::Install.new(argv.drop(1)).run
38
+ else
39
+ RubyNative::CLI::Mcp.new(argv).run
40
+ end
41
+ when "status"
42
+ RubyNative::CLI::Status.new(argv).run
43
+ when "ship"
44
+ RubyNative::CLI::Ship.new(argv).run
45
+ when "link"
46
+ RubyNative::CLI::Link.new(argv).run
47
+ when "submit"
48
+ RubyNative::CLI::Submit.new(argv).run
49
+ when "withdraw"
50
+ RubyNative::CLI::Withdraw.new(argv).run
20
51
  when "logout"
21
52
  RubyNative::CLI::Credentials.clear
22
53
  puts "Logged out of Ruby Native."
23
54
  when "screenshots"
24
- warn "ruby_native screenshots was removed in 0.9.0."
25
- warn "Screenshots are now captured by rubynative.com against your deployed site."
26
- warn "See https://rubynative.com/docs/screenshots for the new flow."
27
- exit 1
55
+ RubyNative::CLI::Screenshots.new(argv).run
56
+ when "permissions"
57
+ RubyNative::CLI::Permissions.new(argv).run
58
+ when "testers"
59
+ RubyNative::CLI::Testers.new(argv).run
60
+ when "icon"
61
+ RubyNative::CLI::Icon.new(argv).run
62
+ when "listing"
63
+ RubyNative::CLI::Listing.new(argv).run
64
+ when "demo_account"
65
+ RubyNative::CLI::DemoAccount.new(argv).run
28
66
  when nil
29
67
  print_usage
30
68
  else
@@ -43,20 +81,48 @@ module RubyNative
43
81
  puts "Usage: ruby_native <command> [options]"
44
82
  puts ""
45
83
  puts "Commands:"
84
+ puts " Every command that talks to rubynative.com reads the app from config/ruby_native.yml, or takes --app=ID."
85
+ puts " link [APP_ID] Link this project to an app on your account (writes ruby_native.app_id)"
86
+ puts " apple key PATH --key-id=KEY --issuer-id=ISSUER --team-id=TEAM"
87
+ puts " Hand over the App Store Connect key (.p8) and wait for Apple to accept it"
46
88
  puts " check Validate your views against the signal vocabulary"
47
89
  puts " --deployed Also compare against the build your users have"
48
90
  puts " --paths=A,B Directories to scan (default: app/views)"
91
+ puts " demo_account set --name=EMAIL --password=SECRET Stage the reviewer's sign-in"
49
92
  puts " deploy Build every configured platform and wait for it to finish"
50
93
  puts " --ios Build iOS only"
51
94
  puts " --android Build Android only"
52
95
  puts " --platform=NAME Build for ios, android, or all"
53
96
  puts " --if-needed Skip when this gem version is already built"
97
+ puts " --version=1.1 The App Store version to build (default: the next patch once live)"
54
98
  puts " --skip-check Deploy without checking your views for broken signals"
99
+ puts " icon set PATH Set the app icon, a 1024x1024 PNG (ships with the next deploy)"
100
+ puts " listing push, pull, or publish the store listing in config/ruby_native_listing.yml"
101
+ puts " publish Send it to every store the app has started (--ios or --android for one)"
55
102
  puts " login Authenticate with Ruby Native"
56
103
  puts " logout Remove stored credentials"
104
+ puts " mcp Serve the check, signal, config, and status tools to a coding agent over MCP"
105
+ puts " install Register the server in .mcp.json for this project"
106
+ puts " permissions Show the camera, microphone, and photos permission strings"
107
+ puts " set NAME TEXT Set one (ships with the next deploy)"
57
108
  puts " preview Start a tunnel and display a QR code"
58
109
  puts " --port PORT Rails server port (default: PORT or 3000)"
59
110
  puts " --url URL Tunnel to this URL instead of localhost"
111
+ puts " screenshots Show the screenshot setup and the latest captures"
112
+ puts " setup Set the pages with --paths=/a,/b,/c for every started store (--ios or --android for one)"
113
+ puts " --sign-in The pages need a signed-in user: generate the screenshot key"
114
+ puts " capture Capture screenshots against the deployed site for every started store (--ios or --android for one)"
115
+ puts " ship Print the prompt that walks an agent to the App Store and Google Play (the MCP server has it as /mcp__ruby-native__ship)"
116
+ puts " status Where the app is, what is next, and what is in the way. Works before login, from this checkout"
117
+ puts " submit Show exactly what would go to App Store review, then ask before sending it"
118
+ puts " --yes Skip the question"
119
+ puts " --confirm=NAME Say a questionnaire is done: app_privacy, age_rating, play_category, or play_content; or answer content rights: no_third_party_content or third_party_content"
120
+ puts " --ios The App Store only"
121
+ puts " --android Only what stands between the app and Google Play, and the promotion steps"
122
+ puts " testers List the testers for every started store"
123
+ puts " add EMAIL Invite a team member to TestFlight (Play keeps its list in Google Play Console)"
124
+ puts " --ios, --android One store only"
125
+ puts " withdraw Take the app back out of the App Store review queue. Works until Apple approves it"
60
126
  end
61
127
  end
62
128
  end