32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/generators/base_editing_bootstrap/scaffold/scaffold_generator.rb', line 32
def add_policy
@search_attrs = []
@permitted_attributes = []
if yes? "Vuoi poter ricercare determinati campi con form di ricerca?(y/n)"
say "Gli attributi che hai indicato sono: #{ attributes_names.join(",")}"
say " La ricerca avviene tramite le logiche di ransack.\n Puoi trovare la documentazione dei predicati di ricerca qua: \n https://activerecord-hackery.github.io/ransack/getting-started/search-matches/\n Ecco alcuni esempi di possibili modi di ricercare:\n MESSAGE\n\n matchers = {\n \"_eq\":\"Equal\",\n \"_not_eq\":\"Not equal\",\n \"_i_cont\":\"Contains insensitive\",\n }\n\n out = [[\"\",*matchers.values]]\n attributes_names.each do |attr|\n out << [attr, *matchers.keys.collect{|m| \"\#{attr}\#{m}\" } ]\n end\n\n print_table(out,borders:true)\n @search_attrs = ask(\"Inserisce un elenco diviso da virgola degli attributi da ricercare\").split(\",\")\n #cerchiamo di estrapolare gli attributi da rendere disponibili a ransack per la ricerca\n @permitted_attributes = out.select{|c| c[1..].intersect?(@search_attrs) }.collect(&:first)\n puts @permitted_attributes.inspect\n end\n\n template \"policy.rb\", File.join(\"app/policies\", \"\#{singular_name}_policy.rb\")\n template \"spec/policy.rb\", File.join(\"spec/policies\", \"\#{singular_name}_policy_spec.rb\")\n\nend\n"
|