jekyll-recker 1.11.0 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15d0b79e8f6f9370433856ad0d89a1ae7996d0900644739fa915bd5f155e60c9
4
- data.tar.gz: 630418f988d9e17ac451be9932aa6e3f881cb71a37570b7d4e70bd3f1b629477
3
+ metadata.gz: f0acecf9f429bcd83a0cbe8204e046bee16c5a30de1e458b4080db7502e3a831
4
+ data.tar.gz: 2b579e98cd7b81c71f063652a45b791708825b58d6ba83d2146ab2f321b0ce2e
5
5
  SHA512:
6
- metadata.gz: 141f627ae47682e8cd42320cd522693e33f01970f8f229c7394f26d66e1a13284ac1f73f8ac90fc4361093dccef209698a89ea168be299b9fae264efe6106523
7
- data.tar.gz: 9563f420e21f8a343c409521b06065c5d36f8aad3f503303511e913ec37b1d15ee476819bcffa1ccf4a6c8781b6c1da8d52b474c25dbc007a68e3d27395412aa
6
+ metadata.gz: a8b792c90336432c126993937c45dafcb88b1741bfbe2f0eafb32f8c6cc7607d402c442a782409b69a52664cbffe886cf8be39efff0890c15a2f96d84c5f83a9
7
+ data.tar.gz: 14da6696ecf19dc25ea9d02a7ef1904c7e975f8137f0a41ee333da524ff1d242391673a2d6c31d81a77a0ce11d45aed03677b7173e24dae6a91716255f146689
@@ -6,7 +6,6 @@ require 'jekyll'
6
6
  #
7
7
  # The greatest jekyll plugin in the world
8
8
  module JekyllRecker
9
- autoload :Configuration, 'jekyll_recker/configuration.rb'
10
9
  autoload :Mixins, 'jekyll_recker/mixins.rb'
11
10
  autoload :Shell, 'jekyll_recker/shell.rb'
12
11
  autoload :Social, 'jekyll_recker/social.rb'
@@ -17,8 +17,11 @@ module JekyllRecker
17
17
  end
18
18
 
19
19
  def self.action(args, options)
20
- JekyllRecker::Social.action(args, options)
21
- rescue Error => e
20
+ site = Jekyll::Site.new(configuration_from_options(options))
21
+ site.reset
22
+ site.read
23
+ Social.action(site, args, options)
24
+ rescue StandardError => e
22
25
  logger.error e.message
23
26
  exit 1
24
27
  end
@@ -5,11 +5,12 @@ require 'twitter'
5
5
 
6
6
  module JekyllRecker
7
7
  module Social
8
- def self.action(args, options)
8
+ def self.action(site, args, options)
9
9
  args += %w[slack twitter] if args.empty?
10
- Slack.share(dry: options['dry']) if args.include?('slack')
11
- Twitter.share(dry: options['dry']) if args.include?('twitter')
10
+ Slack.share(site, dry: options['dry']) if args.include?('slack')
11
+ Twitter.share(site, dry: options['dry']) if args.include?('twitter')
12
12
  end
13
+
13
14
  # Backend
14
15
  #
15
16
  # Backend base class for social sharing backends.
@@ -18,8 +19,8 @@ module JekyllRecker
18
19
  include Mixins::Introspection
19
20
  include Mixins::Logging
20
21
 
21
- def self.share(dry: false)
22
- backend = new(dry: dry)
22
+ def self.share(site, dry: false)
23
+ backend = new(site, dry: dry)
23
24
  logger.info "#{backend.name} - building configuration"
24
25
  backend.configure!
25
26
 
@@ -27,7 +28,8 @@ module JekyllRecker
27
28
  backend.post!
28
29
  end
29
30
 
30
- def initialize(dry: false)
31
+ def initialize(site, dry: false)
32
+ @site = site
31
33
  @dry = dry
32
34
  end
33
35
 
@@ -36,7 +38,7 @@ module JekyllRecker
36
38
  end
37
39
 
38
40
  def config
39
- @config ||= JekyllRecker::Configuration.recker.fetch(config_key)
41
+ @site.config.fetch('recker', {}).fetch(config_key, {})
40
42
  end
41
43
 
42
44
  def config_key
@@ -45,7 +47,7 @@ module JekyllRecker
45
47
  alias name config_key
46
48
 
47
49
  def post_body
48
- url = File.join Configuration.jekyll['url'], latest.url
50
+ url = File.join @site.config['url'], latest.url
49
51
  <<~BODY
50
52
  #{latest.data['date'].strftime('%A, %B %-d %Y')}
51
53
  #{latest.data['title']}
@@ -54,7 +56,7 @@ module JekyllRecker
54
56
  end
55
57
 
56
58
  def latest
57
- @latest ||= Configuration.latest_post
59
+ @latest ||= @site.posts.docs.last
58
60
  end
59
61
 
60
62
  def latest_title
@@ -154,7 +156,7 @@ module JekyllRecker
154
156
 
155
157
  def extract_from_config
156
158
  values = cred_fieldnames.map do |k|
157
- Shell.run(Configuration.twitter["#{k}_cmd"]).strip
159
+ Shell.run(twitter_config["#{k}_cmd"]).strip
158
160
  end
159
161
 
160
162
  return nil if values.any? { |v| v.nil? || v.empty? }
@@ -162,6 +164,10 @@ module JekyllRecker
162
164
  Hash[cred_fieldnames.zip(values)]
163
165
  end
164
166
 
167
+ def twitter_config
168
+ @site.config.fetch('recker', {}).fetch('twitter', {})
169
+ end
170
+
165
171
  def cred_fieldnames
166
172
  %w[
167
173
  access_token_secret
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllRecker
4
- VERSION = '1.11.0'
4
+ VERSION = '1.12.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-recker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Recker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-13 00:00:00.000000000 Z
11
+ date: 2020-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bump
@@ -184,7 +184,6 @@ files:
184
184
  - _layouts/post.html
185
185
  - lib/jekyll-recker.rb
186
186
  - lib/jekyll_recker/commands.rb
187
- - lib/jekyll_recker/configuration.rb
188
187
  - lib/jekyll_recker/filters.rb
189
188
  - lib/jekyll_recker/generators.rb
190
189
  - lib/jekyll_recker/mixins.rb
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module JekyllRecker
4
- # Configuration
5
- module Configuration
6
- def self.jekyll
7
- @jekyll ||= Jekyll.configuration
8
- end
9
-
10
- def self.recker
11
- jekyll.fetch('recker', {})
12
- end
13
-
14
- def self.facebook
15
- recker.fetch('facebook', {})
16
- end
17
-
18
- def self.twitter
19
- recker.fetch('twitter', {})
20
- end
21
-
22
- def self.slack
23
- recker.fetch('slack', {})
24
- end
25
-
26
- def self.site
27
- @site = Jekyll::Site.new(jekyll)
28
- @site.reset
29
- @site.read
30
- @site
31
- end
32
-
33
- def self.latest_post
34
- @latest_post ||= site.posts.docs.last
35
- end
36
- end
37
- end