Sha256: 3c4be7fe025779771fae175a2ca0aca5d1021e7c870c88484fde5c1d4a77efd2
Contents?: true
Size: 925 Bytes
Versions: 3
Compression:
Stored size: 925 Bytes
Contents
module Stimulus::Manifest extend self def generate_from(controllers_path) extract_controllers_from(controllers_path).collect do |controller_path| import_and_register_controller(controllers_path, controller_path) end end def import_and_register_controller(controllers_path, controller_path) module_path = controller_path.relative_path_from(controllers_path).to_s.remove(".js") controller_class_name = module_path.camelize.gsub(/::/, "__") tag_name = module_path.remove("_controller").gsub(/_/, "-").gsub(/\//, "--") <<-JS import #{controller_class_name} from "./#{module_path}" application.register("#{tag_name}", #{controller_class_name}) JS end def extract_controllers_from(directory) (directory.children.select { |e| e.to_s =~ /_controller.js$/ } + directory.children.select(&:directory?).collect { |d| extract_controllers_from(d) } ).flatten.sort end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
stimulus-rails-0.6.0 | lib/stimulus/manifest.rb |
stimulus-rails-0.5.4 | lib/stimulus/manifest.rb |
stimulus-rails-0.5.3 | lib/stimulus/manifest.rb |