Class: ApiMe::Generators::FilterGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- ApiMe::Generators::FilterGenerator
- Defined in:
- lib/generators/api_me/filter/filter_generator.rb
Instance Method Summary collapse
- #association_attribute_names ⇒ Object
- #associations ⇒ Object
- #attributes_names ⇒ Object
- #create_api_filter_file ⇒ Object
- #filter_class_name ⇒ Object
- #nonpolymorphic_attribute_names ⇒ Object
- #parent_class_name ⇒ Object
- #polymorphic_attribute_names ⇒ Object
- #strong_parameters ⇒ Object
Instance Method Details
#association_attribute_names ⇒ Object
41 42 43 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 41 def association_attribute_names nonpolymorphic_attribute_names + polymorphic_attribute_names end |
#associations ⇒ Object
25 26 27 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 25 def associations attributes.select(&:reference?) end |
#attributes_names ⇒ Object
21 22 23 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 21 def attributes_names attributes.reject(&:reference?).map { |a| a.name.to_sym } end |
#create_api_filter_file ⇒ Object
13 14 15 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 13 def create_api_filter_file template 'filter.rb', File.join('app/filters', "#{singular_name}_filter.rb") end |
#filter_class_name ⇒ Object
17 18 19 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 17 def filter_class_name "#{class_name}Filter" end |
#nonpolymorphic_attribute_names ⇒ Object
29 30 31 32 33 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 29 def nonpolymorphic_attribute_names associations.select { |attr| attr.type.in?(%i[belongs_to references]) } .reject { |attr| attr..fetch(:polymorphic, false) } .map { |attr| "#{attr.name}_id".to_sym } end |
#parent_class_name ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 49 def parent_class_name if [:parent] [:parent] else 'ApiMe::BaseFilter' end end |
#polymorphic_attribute_names ⇒ Object
35 36 37 38 39 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 35 def polymorphic_attribute_names associations.select { |attr| attr.type.in?(%i[belongs_to references]) } .select { |attr| attr..fetch(:polymorphic, false) } .map { |attr| ["#{attr.name}_id".to_sym, "#{attr.name}_type".to_sym] }.flatten end |
#strong_parameters ⇒ Object
45 46 47 |
# File 'lib/generators/api_me/filter/filter_generator.rb', line 45 def strong_parameters (attributes_names + association_attribute_names).map(&:inspect).join(', ') end |