Class: ElmInstall::Populator
Overview
Populator for ‘elm-stuff’ directory
Instance Method Summary collapse
-
#copy_dependencies ⇒ Object
Copies dependencies to ‘elm-stuff/packages/package/version’ directory.
-
#exact_dependencies ⇒ Hash
Returns the contents for ‘elm-stuff/exact-dependencies.json’.
-
#initialize(dependencies) ⇒ Object
constructor
Initializes a new populator.
-
#log_dependency(dependency) ⇒ Object
Logs the dependency with a dot.
-
#populate ⇒ Object
Populates ‘elm-stuff’ directory and writes ‘elm-stuff/exact-dependencies.json’.
-
#write_exact_dependencies ⇒ Object
Writes the ‘elm-stuff/exact-dependencies.json’.
Constructor Details
#initialize(dependencies) ⇒ Object
Initializes a new populator
10 11 12 13 |
# File 'lib/elm_install/populator.rb', line 10 def initialize(dependencies) @dependencies = dependencies self end |
Instance Method Details
#copy_dependencies ⇒ Object
Copies dependencies to ‘elm-stuff/packages/package/version’ directory
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/elm_install/populator.rb', line 51 def copy_dependencies @dependencies.each do |dependency| path = File.join('elm-stuff', 'packages', dependency.name, dependency.version.to_simple) log_dependency dependency dependency.source.copy_to(dependency.version, Pathname.new(path)) end nil end |
#exact_dependencies ⇒ Hash
Returns the contents for ‘elm-stuff/exact-dependencies.json’
41 42 43 44 45 |
# File 'lib/elm_install/populator.rb', line 41 def exact_dependencies @dependencies.each_with_object({}) do |dependency, memo| memo[dependency.name] = dependency.version.to_simple end end |
#log_dependency(dependency) ⇒ Object
Logs the dependency with a dot
70 71 72 73 74 75 76 77 |
# File 'lib/elm_install/populator.rb', line 70 def log_dependency(dependency) log = "#{dependency.name} - " log += dependency.source.to_log.to_s log += " (#{dependency.version.to_simple})" Logger.dot log nil end |
#populate ⇒ Object
Populates ‘elm-stuff’ directory and writes ‘elm-stuff/exact-dependencies.json’.
20 21 22 23 |
# File 'lib/elm_install/populator.rb', line 20 def populate copy_dependencies write_exact_dependencies end |
#write_exact_dependencies ⇒ Object
Writes the ‘elm-stuff/exact-dependencies.json’
29 30 31 32 33 34 35 |
# File 'lib/elm_install/populator.rb', line 29 def write_exact_dependencies File.binwrite( File.join('elm-stuff', 'exact-dependencies.json'), JSON.pretty_generate(exact_dependencies) ) nil end |