Module: YAMLiner::YAMLinerActions
- Defined in:
- lib/yamliner.rb
Overview
CRUD operation functions and some tools
Instance Attribute Summary collapse
-
#yamline_settings ⇒ Object
readonly
Returns the value of attribute yamline_settings.
Instance Method Summary collapse
-
#to_yaml_properties ⇒ Object
removing our yamline_settings instance variable.
-
#to_yaml_properties_orginal ⇒ Object
aliasing to_yaml_properties to remove our instance variable.
-
#to_yaml_style ⇒ Object
You can get inline YAML only redefining this method.
-
#yamline ⇒ Object
Returns generated YAMLiner line >> a.yamline => “#YAMLiner— selman, :surname: ulugn”.
-
#yamline_delete!(lines = nil) ⇒ Object
Finds and deletes formatted line/lines from supplied file/files.
-
#yamline_read(lines = nil, loaded = true) ⇒ Object
Reads your supplied file/files if successfull returns readed object Dir[‘*/.txt’].each {|f| a.yamline_set(:file => f); a.yamline_read }.
-
#yamline_set(settings = {}) ⇒ Object
YAMLiner settings default values :name => ‘YAMLiner’ :file => ” :line => 0 :prefix => ‘#’ :postfix => ” :writeto => ”.
-
#yamline_write! ⇒ Object
Writes the generated YAMLiner line to supplied file/files if there is a same formated line it deletes and write again.
Instance Attribute Details
#yamline_settings ⇒ Object (readonly)
Returns the value of attribute yamline_settings.
38 39 40 |
# File 'lib/yamliner.rb', line 38 def yamline_settings @yamline_settings end |
Instance Method Details
#to_yaml_properties ⇒ Object
removing our yamline_settings instance variable
49 50 51 |
# File 'lib/yamliner.rb', line 49 def to_yaml_properties to_yaml_properties_orginal - [:@yamline_settings, '@yamline_settings'] end |
#to_yaml_properties_orginal ⇒ Object
aliasing to_yaml_properties to remove our instance variable
46 |
# File 'lib/yamliner.rb', line 46 alias to_yaml_properties_orginal to_yaml_properties |
#to_yaml_style ⇒ Object
You can get inline YAML only redefining this method
41 42 43 |
# File 'lib/yamliner.rb', line 41 def to_yaml_style :inline end |
#yamline ⇒ Object
Returns generated YAMLiner line
>> a.yamline
=> "#YAMLiner--- {:name: selman, :surname: ulug}\n"
56 57 58 |
# File 'lib/yamliner.rb', line 56 def yamline @yamline_settings[:prefix] + @yamline_settings[:name] + to_yaml.chop + @yamline_settings[:postfix] + "\n" end |
#yamline_delete!(lines = nil) ⇒ Object
Finds and deletes formatted line/lines from supplied file/files. if formetted line is not uniq it deletes all of them.
a.yamline_set(:file => 'test.txt')
a.yamline_delete!
98 99 100 101 102 103 104 |
# File 'lib/yamliner.rb', line 98 def yamline_delete!(lines = nil) lines = file_lines unless lines return unless lines lines_readed = yamline_read(lines, false) lines_readed.each {|lr| lines.delete(lr) } if lines_readed save_file(lines) end |
#yamline_read(lines = nil, loaded = true) ⇒ Object
Reads your supplied file/files if successfull returns readed object
Dir['**/*.txt'].each {|f| a.yamline_set(:file => f); a.yamline_read }
73 74 75 76 77 78 79 80 81 |
# File 'lib/yamliner.rb', line 73 def yamline_read(lines = nil, loaded = true) lines = file_lines unless lines return unless lines matcher = %r{^#{Regexp.escape(@yamline_settings[:prefix] + @yamline_settings[:name])}(.*?)#{Regexp.escape(@yamline_settings[:postfix])}$} line_l = [] line_s = lines.select {|line| line_l << YAML::load($1) if line =~ matcher } return if line_s.empty? loaded ? line_l : line_s end |
#yamline_set(settings = {}) ⇒ Object
YAMLiner settings default values
:name => 'YAMLiner'
:file => ''
:line => 0
:prefix => '#'
:postfix => ''
:writeto => ''
67 68 69 |
# File 'lib/yamliner.rb', line 67 def yamline_set(settings = {}) @yamline_settings.merge!(settings) unless settings.empty? end |
#yamline_write! ⇒ Object
Writes the generated YAMLiner line to supplied file/files if there is a same formated line it deletes and write again.
a.yamline_set(:file => 'test.txt')
a.yamline_write!
87 88 89 90 91 92 |
# File 'lib/yamliner.rb', line 87 def yamline_write! lines = file_lines || [] yamline_delete!(lines) unless lines.empty? lines.insert(@yamline_settings[:line], yamline) save_file(lines) end |