def css_module(module_name, selector_names = nil, bare_selector_names = nil, &block)
      lookup = StyleModule.new(module_name)

      if selector_names.nil? && block_given?
        yield(lookup)
        lookup
      elsif selector_names.present?
        lookup.selector(selector_names.to_s, bare_selector_names.to_s)
      else
        lookup
      end
    end
def css_module(module_name, selector_names = nil, bare_selector_names = nil, &block)
      lookup = StyleModule.new(module_name)

      if selector_names.nil? && block_given?
        yield(lookup)
        lookup
      elsif selector_names.present?
        lookup.selector(selector_names.to_s, bare_selector_names.to_s)
      else
        lookup
      end
    end
@overload css_module(module_name)
   Apply the styles from `module_name` for `selector_name`

   @example Passing a module to a partial
      style_module = css_module("events_index")
      render(partial: "header", locals: { style_module: style_module })

   @param module_name [String]
   @return [StyleModule] helper for modulizing selectors within `module_name`

 @overload css_module(module_name, selector_names, bare_selector_names)
   Apply the styles from `module_name` for `selector_names`

   @example Getting a selector within a module
      css_module("events_index", "header")
      # => "..." (opaque string which matches the stylesheet)

   @param module_name [String]
   @param selector_names [String] Space-separated DOM ids or class names
   @param bare_selector_names [String] Space-separated selectors to be appended _without_ the module
   @return [String] modulized selector name for `class=` or `id=` in a view

 @overload css_module(module_name, &block)
   Modulize selectors within a block using the yielded helper.

   @example modulizing a few selectors
     <% css_module("events_index") do |events_module| %>
       <h1 class="<%= events_module.selector("heading") %>">All events</h1>
       <p id="<%= events_module.selector("description") %>"> ... </p>
     <% end %>

   @param module_name [String]
   @yieldparam [StyleModule] a helper for modulizing selectors within `module_name`
   @return [StyleModule] a helper for modulizing selectors within `module_name`