Module: ReadmeHelpers
- Defined in:
- lib/potassium/helpers/readme-helpers.rb
Instance Method Summary collapse
- #add_readme_header(header, iterpolation_values = {}) ⇒ Object
- #add_readme_section(header, section, iterpolation_values = {}) ⇒ Object
- #get_readme ⇒ Object
- #insert_into_readme(after_text = nil, &block) ⇒ Object
- #interpolate_text(text, iterpolation_values) ⇒ Object
- #readme_header_data(header, iterpolation_values) ⇒ Object
- #readme_section_data(header, section, iterpolation_values) ⇒ Object
Instance Method Details
#add_readme_header(header, iterpolation_values = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 16 def add_readme_header(header, iterpolation_values = {}) header_data = readme_header_data(header, iterpolation_values) return if read_file("README.md").match("## #{header_data[:title]}") if header_data[:body] insert_into_readme do <<~HERE ## #{header_data[:title]} #{header_data[:body]} HERE end else insert_into_readme do <<~HERE ## #{header_data[:title]} HERE end end end |
#add_readme_section(header, section, iterpolation_values = {}) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 2 def add_readme_section(header, section, iterpolation_values = {}) section_data = readme_section_data(header, section, iterpolation_values) add_readme_header(header, iterpolation_values) insert_into_readme(section_data[:header_title]) do <<~HERE ### #{section_data[:title]} #{section_data[:body]} HERE end end |
#get_readme ⇒ Object
68 69 70 71 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 68 def get_readme file = File.("../../assets/README.yml", __FILE__) YAML.load(File.read(file)) end |
#insert_into_readme(after_text = nil, &block) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 73 def insert_into_readme(after_text = nil, &block) if after_text line = "#{after_text}\n" insert_into_file "README.md", after: line do block.call end else append_to_file "README.md" do block.call end end end |
#interpolate_text(text, iterpolation_values) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 61 def interpolate_text(text, iterpolation_values) return unless text b = binding iterpolation_values.each { |k, v| singleton_class.send(:define_method, k) { v } } ERB.new(text).result(b) end |
#readme_header_data(header, iterpolation_values) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 39 def readme_header_data(header, iterpolation_values) file = get_readme header_data = file["readme"]["headers"][header.to_s] { title: header_data["title"], body: interpolate_text(header_data["body"], iterpolation_values) } end |
#readme_section_data(header, section, iterpolation_values) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/potassium/helpers/readme-helpers.rb', line 49 def readme_section_data(header, section, iterpolation_values) file = get_readme header_data = file["readme"]["headers"][header.to_s] section_data = header_data["sections"][section.to_s] { header_title: header_data["title"], title: interpolate_text(section_data["title"], iterpolation_values), body: interpolate_text(section_data["body"], iterpolation_values) } end |