Module: AnkiConnect::Client::Models
- Included in:
- AnkiConnect::Client
- Defined in:
- lib/anki_connect/models.rb
Overview
Methods to create and modify note types (models).
Instance Method Summary collapse
-
#add_field(model_name, field_name, index: nil) ⇒ nil
Adds a field to a model.
-
#add_template(model_name, template) ⇒ nil
Adds a template to a model.
-
#create_model(name:, fields:, templates:, css: nil, is_cloze: false) ⇒ Hash
Creates a new model.
-
#find_and_replace_in_model(model_name:, find:, replace:, front: true, back: true, css: true) ⇒ Integer
Find and replace in model templates/CSS.
-
#get_field_descriptions(model_name) ⇒ Array<String>
Gets field descriptions for a model.
-
#get_field_fonts(model_name) ⇒ Hash
Gets field fonts and sizes for a model.
-
#get_field_names(model_name) ⇒ Array<String>
Gets field names for a model.
-
#get_fields_on_templates(model_name) ⇒ Hash
Gets fields used on templates.
-
#get_models_by_id(ids) ⇒ Array<Hash>
Gets models by ID.
-
#get_models_by_name(names) ⇒ Array<Hash>
Gets models by name.
-
#get_styling(model_name) ⇒ Hash
Gets CSS styling for a model.
-
#get_templates(model_name) ⇒ Hash
Gets templates for a model.
-
#model_names ⇒ Array<String>
Gets complete list of model names.
-
#model_names_and_ids ⇒ Hash
Gets model names with their IDs.
-
#remove_field(model_name, field_name) ⇒ nil
Removes a field from a model.
-
#remove_template(model_name, template_name) ⇒ nil
Removes a template from a model.
-
#rename_field(model_name, from:, to:) ⇒ nil
Renames a field.
-
#rename_template(model_name, from:, to:) ⇒ nil
Renames a template.
-
#reposition_field(model_name, field_name, index) ⇒ nil
Moves a field to a new position.
-
#reposition_template(model_name, template_name, index) ⇒ nil
Moves a template to a new position.
-
#set_field_description(model_name, field_name, description) ⇒ Boolean
Sets description for a field.
-
#set_field_font(model_name, field_name, font) ⇒ nil
Sets font for a field.
-
#set_field_font_size(model_name, field_name, size) ⇒ nil
Sets font size for a field.
-
#update_model(name, templates: nil, css: nil) ⇒ nil
Updates a model’s templates and/or CSS.
Instance Method Details
#add_field(model_name, field_name, index: nil) ⇒ nil
Adds a field to a model.
192 193 194 195 196 |
# File 'lib/anki_connect/models.rb', line 192 def add_field(model_name, field_name, index: nil) params = { modelName: model_name, fieldName: field_name } params[:index] = index if index request(:modelFieldAdd, **params) end |
#add_template(model_name, template) ⇒ nil
Adds a template to a model.
153 154 155 |
# File 'lib/anki_connect/models.rb', line 153 def add_template(model_name, template) request(:modelTemplateAdd, modelName: model_name, template: template) end |
#create_model(name:, fields:, templates:, css: nil, is_cloze: false) ⇒ Hash
Creates a new model.
77 78 79 80 81 |
# File 'lib/anki_connect/models.rb', line 77 def create_model(name:, fields:, templates:, css: nil, is_cloze: false) params = { modelName: name, inOrderFields: fields, cardTemplates: templates, isCloze: is_cloze } params[:css] = css if css request(:createModel, **params) end |
#find_and_replace_in_model(model_name:, find:, replace:, front: true, back: true, css: true) ⇒ Integer
Find and replace in model templates/CSS.
121 122 123 124 125 126 |
# File 'lib/anki_connect/models.rb', line 121 def find_and_replace_in_model(model_name:, find:, replace:, front: true, back: true, css: true) request(:findAndReplaceInModels, model: { modelName: model_name, findText: find, replaceText: replace, front: front, back: back, css: css }) end |
#get_field_descriptions(model_name) ⇒ Array<String>
Gets field descriptions for a model.
49 50 51 |
# File 'lib/anki_connect/models.rb', line 49 def get_field_descriptions(model_name) request(:modelFieldDescriptions, modelName: model_name) end |
#get_field_fonts(model_name) ⇒ Hash
Gets field fonts and sizes for a model.
57 58 59 |
# File 'lib/anki_connect/models.rb', line 57 def get_field_fonts(model_name) request(:modelFieldFonts, modelName: model_name) end |
#get_field_names(model_name) ⇒ Array<String>
Gets field names for a model.
41 42 43 |
# File 'lib/anki_connect/models.rb', line 41 def get_field_names(model_name) request(:modelFieldNames, modelName: model_name) end |
#get_fields_on_templates(model_name) ⇒ Hash
Gets fields used on templates.
65 66 67 |
# File 'lib/anki_connect/models.rb', line 65 def get_fields_on_templates(model_name) request(:modelFieldsOnTemplates, modelName: model_name) end |
#get_models_by_id(ids) ⇒ Array<Hash>
Gets models by ID.
25 26 27 |
# File 'lib/anki_connect/models.rb', line 25 def get_models_by_id(ids) request(:findModelsById, modelIds: ids) end |
#get_models_by_name(names) ⇒ Array<Hash>
Gets models by name.
33 34 35 |
# File 'lib/anki_connect/models.rb', line 33 def get_models_by_name(names) request(:findModelsByName, modelNames: names) end |
#get_styling(model_name) ⇒ Hash
Gets CSS styling for a model.
95 96 97 |
# File 'lib/anki_connect/models.rb', line 95 def get_styling(model_name) request(:modelStyling, modelName: model_name) end |
#get_templates(model_name) ⇒ Hash
Gets templates for a model.
87 88 89 |
# File 'lib/anki_connect/models.rb', line 87 def get_templates(model_name) request(:modelTemplates, modelName: model_name) end |
#model_names ⇒ Array<String>
Gets complete list of model names.
10 11 12 |
# File 'lib/anki_connect/models.rb', line 10 def model_names request(:modelNames) end |
#model_names_and_ids ⇒ Hash
Gets model names with their IDs.
17 18 19 |
# File 'lib/anki_connect/models.rb', line 17 def model_names_and_ids request(:modelNamesAndIds) end |
#remove_field(model_name, field_name) ⇒ nil
Removes a field from a model.
203 204 205 |
# File 'lib/anki_connect/models.rb', line 203 def remove_field(model_name, field_name) request(:modelFieldRemove, modelName: model_name, fieldName: field_name) end |
#remove_template(model_name, template_name) ⇒ nil
Removes a template from a model.
162 163 164 |
# File 'lib/anki_connect/models.rb', line 162 def remove_template(model_name, template_name) request(:modelTemplateRemove, modelName: model_name, templateName: template_name) end |
#rename_field(model_name, from:, to:) ⇒ nil
Renames a field.
172 173 174 |
# File 'lib/anki_connect/models.rb', line 172 def rename_field(model_name, from:, to:) request(:modelFieldRename, modelName: model_name, oldFieldName: from, newFieldName: to) end |
#rename_template(model_name, from:, to:) ⇒ nil
Renames a template.
134 135 136 |
# File 'lib/anki_connect/models.rb', line 134 def rename_template(model_name, from:, to:) request(:modelTemplateRename, modelName: model_name, oldTemplateName: from, newTemplateName: to) end |
#reposition_field(model_name, field_name, index) ⇒ nil
Moves a field to a new position.
182 183 184 |
# File 'lib/anki_connect/models.rb', line 182 def reposition_field(model_name, field_name, index) request(:modelFieldReposition, modelName: model_name, fieldName: field_name, index: index) end |
#reposition_template(model_name, template_name, index) ⇒ nil
Moves a template to a new position.
144 145 146 |
# File 'lib/anki_connect/models.rb', line 144 def reposition_template(model_name, template_name, index) request(:modelTemplateReposition, modelName: model_name, templateName: template_name, index: index) end |
#set_field_description(model_name, field_name, description) ⇒ Boolean
Sets description for a field.
233 234 235 |
# File 'lib/anki_connect/models.rb', line 233 def set_field_description(model_name, field_name, description) request(:modelFieldSetDescription, modelName: model_name, fieldName: field_name, description: description) end |
#set_field_font(model_name, field_name, font) ⇒ nil
Sets font for a field.
213 214 215 |
# File 'lib/anki_connect/models.rb', line 213 def set_field_font(model_name, field_name, font) request(:modelFieldSetFont, modelName: model_name, fieldName: field_name, font: font) end |
#set_field_font_size(model_name, field_name, size) ⇒ nil
Sets font size for a field.
223 224 225 |
# File 'lib/anki_connect/models.rb', line 223 def set_field_font_size(model_name, field_name, size) request(:modelFieldSetFontSize, modelName: model_name, fieldName: field_name, fontSize: size) end |
#update_model(name, templates: nil, css: nil) ⇒ nil
Updates a model’s templates and/or CSS.
105 106 107 108 109 110 |
# File 'lib/anki_connect/models.rb', line 105 def update_model(name, templates: nil, css: nil) request(:updateModelTemplates, model: { name: name, templates: templates }) if templates return unless css request(:updateModelStyling, model: { name: name, css: css }) end |