jekyll-github-metadata 1.7.0 → 1.8.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
  SHA1:
3
- metadata.gz: 5e31c09b658a0801c54f1ed63a5f23fdfa17d8b2
4
- data.tar.gz: 5a1bb8408e9275ae8c0d94e4406a5acc21551090
3
+ metadata.gz: 7fa1821d6ccee003926a0f48c29e55297f6f6b7e
4
+ data.tar.gz: 365ade522cbadf13eef373e287492f0868acbf06
5
5
  SHA512:
6
- metadata.gz: d3096bbf569fec42459a1c9698db667881d80e6c3a5c68707008eadd4cf0fd33e1851002001096fe045fe19d0c67afa8839808e1c9a43255a55458f511cea421
7
- data.tar.gz: 56a5b39e2cfbfae6fbade849733b9356c5fc1613582303a76c85d8316056c66f8bf65ff125fddbad3e80a155be9b732e01809fe4eb805559162f8bc1126b3bb6
6
+ metadata.gz: 3d87d8db81aafbd0c5568ee108b44cf40d2c105a5f2f68322166e5115bd04b2c660b95732dd418a5af0156708a7c82c329aee4e704efd291b692a943f84adf50
7
+ data.tar.gz: b7cd63c3b740bf203a2ff454ba6f108234646748ea6c317a2091755f7b040f282af02f1c6827dcfb6d122ac5467dbc47195ccf93fc2322df38c64ff913ddd0fe
@@ -1,3 +1,5 @@
1
+ require 'digest'
2
+
1
3
  module Jekyll
2
4
  module GitHubMetadata
3
5
  class Client
@@ -45,10 +47,9 @@ module Jekyll
45
47
  def method_missing(method_name, *args, &block)
46
48
  method = method_name.to_s
47
49
  if accepts_client_method?(method_name)
48
- instance_var_name = method.sub('?', '_')
50
+ key = cache_key(method_name, args)
49
51
  Jekyll.logger.debug "GitHub Metadata:", "Calling @client.#{method}(#{args.map(&:inspect).join(", ")})"
50
- instance_variable_get(:"@#{instance_var_name}") ||
51
- instance_variable_set(:"@#{instance_var_name}", save_from_errors { @client.public_send(method_name, *args, &block) })
52
+ cache[key] ||= save_from_errors { @client.public_send(method_name, *args, &block) }
52
53
  elsif @client.respond_to?(method_name)
53
54
  raise InvalidMethodError, "#{method_name} is not whitelisted on #{inspect}"
54
55
  else
@@ -94,6 +95,14 @@ module Jekyll
94
95
  {}.freeze
95
96
  end
96
97
  end
98
+
99
+ def cache_key(method, *args)
100
+ Digest::SHA1.hexdigest(method.to_s + args.join(", "))
101
+ end
102
+
103
+ def cache
104
+ @cache ||= {}
105
+ end
97
106
  end
98
107
  end
99
108
  end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module GitHubMetadata
3
- VERSION = '1.7.0'
3
+ VERSION = '1.8.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-github-metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-03 00:00:00.000000000 Z
11
+ date: 2016-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit