class Manifest
cattr_accessor :manifest
attr :system_resources, :magic_numbers,
- :items, :controllers, :models, :module_names
+ :items, :controllers, :models, :module_names,
+ :inflectors, :singulars, :plurals
# call me before load routes.rb
# routes.rb needs engine_resources manifest in system_resources
# ex. it's adding license_groups routes
def init
# managers can't initialize before load application.rb
return unless defined? ::Pettanr
+ @inflectors = @global_json['inflectors']
+ @item_names = {}
+ @table_names = {}
+ @inflectors.each do |item_name, table_name|
+ @item_names[item_name] = table_name # monkey copy
+ @table_names[table_name] = item_name
+ end
@items = ManifestBase.load_type_name_args(self, @global_json, 'items', ItemFactory)
@controllers = Controller.load(self, @global_json, 'controllers')
@models = Model.load(self, @global_json, 'models')
end
end
+ # table_name to item_name
+ def singularize table_name
+ @table_names[table_name]
+ end
+
+ # item_name to table_name
+ def pluralize item_name
+ @item_names[item_name]
+ end
+
end
module ModuleMethods
item_name.classify.constantize
end
- def singularize name
- name.singularize
- end
-
- def pluralize name
- name.pluralize
- end
-
end
extend ModuleMethods