lib/hyperstack/imports.rb in hyperstack-config-1.0.alpha1.5 vs lib/hyperstack/imports.rb in hyperstack-config-1.0.alpha1.6

- old
+ new

@@ -1,8 +1,24 @@ module Hyperstack class << self + + # redefine this method ito avoid logging imports. + # typically in rspec - for example: + # + # if config.formatters.empty? + # module Hyperstack + # def self.log_import(s) + # # turn off import logging + # end + # end + # end + + def log_import(s) + puts s + end + def import_list @import_list ||= [] end def import(value, gem: nil, cancelled: nil, client_only: nil, server_only: nil, tree: nil, js_import: nil, at_head: nil) @@ -50,28 +66,36 @@ def add_inflections(sys) return [] unless sys ["puts \"require 'config/initializers/inflections.rb'\""] + File.open(Rails.root.join('config', 'initializers', 'inflections.rb'), &:readlines).tap do - puts " require 'config/initializers/inflections.rb'" + log_import " require 'config/initializers/inflections.rb'" end rescue Errno::ENOENT [] end + def add_opal(sys) + return [] unless sys + + log_import " require 'opal'" + ["require 'opal'; puts \"require 'opal'\""] + end + def generate_requires(mode, sys, file) handle_webpack - (import_list.collect do |value, cancelled, render_on_server, render_on_client, kind| + (add_opal(sys) + import_list.collect do |value, cancelled, render_on_server, render_on_client, kind| next if cancelled + next if value == 'opal' next if (sys && kind == :tree) || (!sys && kind != :tree) next if mode == :client && !render_on_client next if mode == :server && !render_on_server if kind == :tree generate_require_tree(value, render_on_server, render_on_client) elsif kind == :gem r = "require '#{value}' #{client_guard(render_on_server, render_on_client)}" - puts " #{r}" + log_import " #{r}" "puts \"#{r}\"; #{r}" else generate_directive(:require, value, file, render_on_server, render_on_client) end end + add_inflections(sys)).compact.join("\n") @@ -83,11 +107,11 @@ while comp_path.first == gem_path.first do gem_path.shift comp_path.shift end r = "#{directive} '#{(['.'] + ['..'] * gem_path.length + comp_path).join('/')}' #{client_guard(render_on_server, render_on_client)}" - puts " #{r}" + log_import " #{r}" "puts \"#{r}\"; #{r}" end def generate_require_tree(path, render_on_server, render_on_client) base_name = Rails.root.join('app', path).to_s+'/' @@ -95,10 +119,10 @@ fname = fname.gsub(/^#{base_name}/, '') fname = fname.gsub(/\.erb$/, '') if fname =~ /(\.js$)|(\.rb$)|(\.jsx$)/ fname = fname.gsub(/(\.js$)|(\.rb$)|(\.jsx$)/, '') r = "require '#{fname}' #{client_guard(render_on_server, render_on_client)}" - puts " #{r}" + log_import " #{r}" "puts \"#{r}\"; #{r}" end end.compact.join("\n") end