lib/evertils/common/entity.rb in evertils-common-0.3.9 vs lib/evertils/common/entity.rb in evertils-common-0.3.10

- old
+ new

@@ -2,13 +2,52 @@ module Common module Entity class Base < Common::Generic attr_accessor :entity + REPLACEMENTS = { + '%DOY%': Date.today.yday, + '%MONTH_NAME%': Date.today.strftime('%B'), + '%MONTH%': Date.today.month, + '%DAY%': Date.today.day, + '%DOW%': Date.today.wday, + '%DOW_NAME%': Date.today.strftime('%a'), + '%YEAR%': Date.today.year, + '%WEEK%': Date.today.cweek, + '%WEEK_START%': Date.commercial(Date.today.year, Date.today.cweek, 1), + '%WEEK_END%': Date.commercial(Date.today.year, Date.today.cweek, 5) + } + def initialize @evernote = Authentication.instance super + end + + def placeholders_for(items) + items.map do |item| + REPLACEMENTS.each_pair do |k, v| + item.last.gsub!(k.to_s, v.to_s) if item.last.is_a? String + item.last.map { |i| i.gsub!(k.to_s, v.to_s) } if item.last.is_a? Array + end + end + + symbolize_keys(items) + end + + def symbolize_keys(hash) + hash.inject({}){ |result, (key, value)| + new_key = case key + when String then key.to_sym + else key + end + new_value = case value + when Hash then symbolize_keys(value) + else value + end + result[new_key] = new_value + result + } end # # @since 0.2.8 def start_of_day(date = ::Time.now) \ No newline at end of file