Skip to content

Commit

Permalink
fix: Addition of Prefs code.
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Jan 19, 2023
1 parent 37686fd commit f2d8223
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 1 deletion.
2 changes: 2 additions & 0 deletions packages/katana_cli/lib/command/code/code.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ part 'watch.dart';
part 'value.dart';
part 'redirect_query.dart';
part 'boot.dart';
part 'prefs.dart';

class CodeCliCommand extends CliCommandGroup {
const CodeCliCommand();
Expand All @@ -37,5 +38,6 @@ class CodeCliCommand extends CliCommandGroup {
"document": CodeDocumentCliCommand(),
"value": CodeValueCliCommand(),
"redirect": CodeRedirectQueryCliCommand(),
"prefs": CodePrefsCliCommand(),
};
}
2 changes: 1 addition & 1 deletion packages/katana_cli/lib/command/code/group.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class CodeGroupCliCommand extends CliCodeCommand {

@override
String get description =>
"Create a base class for the controller group in `$directory/(filepath).dart`. Create a base class for the controller group in `$directory/(filepath).dart`.";
"Create a base class for the controller group in `$directory/(filepath).dart`. コントローラーグループのベースクラスを`$directory/(filepath).dart`に作成します。";

@override
Future<void> exec(ExecContext context) async {
Expand Down
76 changes: 76 additions & 0 deletions packages/katana_cli/lib/command/code/prefs.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
part of katana_cli.code;

/// Create a base class for SharedPreferences.
///
/// SharedPreferencesのベースクラスを作成します。
class CodePrefsCliCommand extends CliCodeCommand {
/// Create a base class for SharedPreferences.
///
/// SharedPreferencesのベースクラスを作成します。
const CodePrefsCliCommand();

@override
String get name => "prefs";

@override
String get prefix => "prefs";

@override
String get directory => "prefs";

@override
String get description =>
"Create a base class for SharedPreferences in `$directory/prefs.dart`. SharedPreferencesのベースクラスを`$directory/prefs.dart`に作成します。";

@override
Future<void> exec(ExecContext context) async {
label("Create a controller group class in `$directory/prefs.dart`.");
await generateDartCode("$directory/prefs.dart");
}

@override
String import(String path, String baseName, String className) {
return """
// ignore: unused_import, unnecessary_import
import 'package:flutter/material.dart';
// ignore: unused_import, unnecessary_import
import 'package:masamune/masamune.dart';
// ignore: unused_import, unnecessary_import
import '/main.dart';
""";
}

@override
String header(String path, String baseName, String className) {
return """
part '$baseName.prefs.dart';
""";
}

@override
String body(String path, String baseName, String className) {
return r"""
/// Get SharedPreferences for the app.
///
/// ```dart
/// appPrefs.xxx.get(); // Get xxx value.
/// appPrefs.xxx.set("xxx"); // Set xxx value.
/// ```
final appPrefs = Prefs(
// TODO: Initial values defined in Prefs are listed here.
\${2}
);
/// Shared Preferences.
@prefs
class Prefs with _\$Prefs, ChangeNotifier {
factory Prefs({
// TODO: Define here the values to be managed in Shared Preferences.
\${1}
}) = _Prefs;
Prefs._();
}
""";
}
}

0 comments on commit f2d8223

Please sign in to comment.