Module: StandupMD::Post
- Defined in:
- lib/standup_md/post.rb,
lib/standup_md/post/result.rb,
lib/standup_md/post/adapter.rb,
lib/standup_md/post/message.rb,
lib/standup_md/post/adapters/slack.rb
Overview
Namespace for posting standup entries to chat clients.
Defined Under Namespace
Modules: Adapters Classes: Adapter, Error, Message, Result, UnknownAdapter
Class Method Summary collapse
-
.apply_post_title(text, entry, config) ⇒ String
Applies the configured post title format to the first entry header.
-
.default_renderer(config = StandupMD.config) ⇒ StandupMD::Parsers::Markdown
Default renderer used when posting an entry.
-
.post(entry, adapter: nil, channel: nil, text: nil, renderer: nil, config: StandupMD.config) ⇒ StandupMD::Post::Result
Renders and posts a standup entry through a configured chat adapter.
-
.render_post_text(entry, renderer, config) ⇒ String
Renders text for a posted entry.
Class Method Details
.apply_post_title(text, entry, config) ⇒ String
Applies the configured post title format to the first entry header.
76 77 78 79 80 81 82 |
# File 'lib/standup_md/post.rb', line 76 def apply_post_title(text, entry, config) return text unless config.post.title title = config.post.title % entry.date.strftime(config.file.header_date_format) header = "#" * config.file.header_depth text.sub(/\A#{Regexp.escape(header)}\s+.*$/, "#{header} #{title}") end |
.default_renderer(config = StandupMD.config) ⇒ StandupMD::Parsers::Markdown
Default renderer used when posting an entry.
51 52 53 |
# File 'lib/standup_md/post.rb', line 51 def default_renderer(config = StandupMD.config) StandupMD::Parsers::Markdown.new(config.file) end |
.post(entry, adapter: nil, channel: nil, text: nil, renderer: nil, config: StandupMD.config) ⇒ StandupMD::Post::Result
Renders and posts a standup entry through a configured chat adapter.
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/standup_md/post.rb', line 34 def post(entry, adapter: nil, channel: nil, text: nil, renderer: nil, config: StandupMD.config) adapter_name = (adapter || config.post.default_adapter).to_sym = Message.new( entry: entry, text: text || render_post_text(entry, renderer, config), channel: channel, adapter: adapter_name ) config.post.build_adapter(adapter_name).post() end |
.render_post_text(entry, renderer, config) ⇒ String
Renders text for a posted entry.
63 64 65 66 |
# File 'lib/standup_md/post.rb', line 63 def render_post_text(entry, renderer, config) text = (renderer || default_renderer(config)).render_entry(entry) apply_post_title(text, entry, config) end |