tins 1.25.0 → 1.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a37519970d1e310e2a5a0572ddd8c9edb8835dc6ca916cc70c157015f02cd12f
4
- data.tar.gz: 42896f157f7d78fd589414bb2b87116f159575a1a5a3f9a7858409f9736f6d27
3
+ metadata.gz: b8ddaf2f0c1167a939e82f81678dcad1415c446295b71be5b9f103ed7d3119c9
4
+ data.tar.gz: 6e0609afd1eaee465c64a5ea65911f7f09b15b166cb5bfa8e85cf1a7f71446b9
5
5
  SHA512:
6
- metadata.gz: 78c1ec820ab3eb61776cf484c96cee0b7fbdb344df56069d9121ffb84b4dcfe935003c73ff661f3d74e4752c8f835b1580d937256272817c4e830451a9cab516
7
- data.tar.gz: 4047776430e5feda92070c94130c6fb30c1d28a0365be4985d6a4e681f00bf46bff0fced2c57377ff19442f827a1170e86e96edc27218f597e09ec2cf279faf5
6
+ metadata.gz: 3edf583d1f22b556058cad481d9bb78710394b3869fbb118321a31213124534449d1ea507f8a00d264ea7e029226673e062bc07544d445ccd044bb8643cbdbf3
7
+ data.tar.gz: bd04720c57cbec746b212354767d166ae38eb22824635be747a9a0708af71b82078a1b832552c0f7425827234c49178357e914ac36365a8f6ece1cd91ab88700
data/Gemfile CHANGED
@@ -3,8 +3,3 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
-
7
- group :development, :test do
8
- gem 'byebug', platform: :mri
9
- gem 'term-ansicolor'
10
- end
data/README.md CHANGED
@@ -12,7 +12,6 @@ Non yet.
12
12
 
13
13
  ## Changes
14
14
 
15
-
16
15
  * 2018-11-14 Release 1.20.2
17
16
  - Fix ~x options
18
17
  * 2018-11-14 Release 1.20.1
@@ -92,12 +91,6 @@ Non yet.
92
91
  - Add some default alphabets to Tins::Token, e. g. Base64
93
92
  - Add changes to Readme
94
93
 
95
- ## Download
96
-
97
- The homepage of this library is located at
98
-
99
- * http://flori.github.com/tins
100
-
101
94
  ## Author
102
95
 
103
96
  Florian Frank mailto:flori@ping.de
data/Rakefile CHANGED
@@ -13,11 +13,18 @@ GemHadar do
13
13
  test_files.concat Dir["#{test_dir}/*_test.rb"]
14
14
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage', '.rbx',
15
15
  '.AppleDouble', '.DS_Store', 'tags', '.bundle', '.byebug_history'
16
+ package_ignore '.all_images.yml', '.tool-versions', '.gitignore', 'VERSION',
17
+ '.utilsrc', '.rspec', 'TODO',
18
+ *Dir.glob('.github/**/*', File::FNM_DOTMATCH)
16
19
 
17
20
  readme 'README.md'
18
21
  licenses << 'MIT'
19
22
 
20
23
  required_ruby_version '>= 2.0'
24
+ development_dependency 'utils'
25
+ development_dependency 'all_images'
26
+ development_dependency 'debug'
27
+ development_dependency 'term-ansicolor'
21
28
  development_dependency 'test-unit', '~>3.1'
22
29
  development_dependency 'simplecov'
23
30
  dependency 'sync'
data/examples/mail.rb CHANGED
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'tins'
2
4
  require 'net/smtp'
3
5
  require 'time'
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'tins'
2
4
  $:.unshift 'examples'
3
5
 
data/examples/turing.rb CHANGED
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'term/ansicolor'
2
4
  require 'tins'
3
5
 
data/lib/tins/attempt.rb CHANGED
@@ -14,6 +14,7 @@ module Tins
14
14
  def attempt(opts = {}, &block)
15
15
  sleep = nil
16
16
  exception_class = StandardError
17
+ prev_exception = nil
17
18
  if Numeric === opts
18
19
  attempts = opts
19
20
  else
@@ -28,7 +29,7 @@ module Tins
28
29
  if exception_class.nil?
29
30
  begin
30
31
  count += 1
31
- if block.call(count)
32
+ if block.call(count, prev_exception)
32
33
  return true
33
34
  elsif count < attempts
34
35
  sleep_duration(sleep, count)
@@ -38,14 +39,24 @@ module Tins
38
39
  else
39
40
  begin
40
41
  count += 1
41
- block.call(count)
42
+ block.call(count, prev_exception)
42
43
  true
43
44
  rescue *exception_class
44
45
  if count < attempts
46
+ prev_exception = $!
45
47
  sleep_duration(sleep, count)
46
48
  retry
47
49
  end
48
- reraise ? raise : false
50
+ case reraise
51
+ when Proc
52
+ reraise.($!)
53
+ when Exception.class
54
+ raise reraise, "reraised: #{$!.message}"
55
+ when true
56
+ raise $!, "reraised: #{$!.message}"
57
+ else
58
+ false
59
+ end
49
60
  end
50
61
  end
51
62
  end
@@ -13,26 +13,34 @@ module Tins
13
13
  end
14
14
  end
15
15
 
16
- def self.deep_const_get(path, start_module = Object)
17
- path.to_s.split('::').inject(start_module) do |p, c|
18
- case
19
- when c.empty?
20
- if start_module == Object
21
- Object
16
+ if Tins::StringVersion(RUBY_VERSION) < Tins::StringVersion('2.0')
17
+ def self.deep_const_get(path, start_module = Object)
18
+ path.to_s.split('::').inject(start_module) do |p, c|
19
+ case
20
+ when c.empty?
21
+ if start_module == Object
22
+ Object
23
+ else
24
+ raise ArgumentError, "top level constants cannot be reached from"\
25
+ " start module #{start_module.inspect}"
26
+ end
27
+ when const_defined_in?(p, c)
28
+ p.const_get(c)
22
29
  else
23
- raise ArgumentError, "top level constants cannot be reached from"\
24
- " start module #{start_module.inspect}"
25
- end
26
- when const_defined_in?(p, c)
27
- p.const_get(c)
28
- else
29
- begin
30
- p.const_missing(c)
31
- rescue NameError => e
32
- raise ArgumentError, "can't get const #{path}: #{e}"
30
+ begin
31
+ p.const_missing(c)
32
+ rescue NameError => e
33
+ raise ArgumentError, "can't get const #{path}: #{e}"
34
+ end
33
35
  end
34
36
  end
35
37
  end
38
+ else
39
+ def self.deep_const_get(path, start_module = Object)
40
+ start_module.const_get(path)
41
+ rescue NameError => e
42
+ raise ArgumentError, "can't get const #{path}: #{e}"
43
+ end
36
44
  end
37
45
 
38
46
  def deep_const_get(path, start_module = Object)
data/lib/tins/limited.rb CHANGED
@@ -38,6 +38,12 @@ module Tins
38
38
  def wait
39
39
  @tg.list.each(&:join)
40
40
  end
41
+
42
+ def process
43
+ yield self
44
+ ensure
45
+ wait
46
+ end
41
47
  end
42
48
  end
43
49
 
@@ -0,0 +1,62 @@
1
+ module Tins
2
+ class LRUCache
3
+ include Enumerable
4
+
5
+ class << self
6
+ private
7
+
8
+ my_nil = Object.new.freeze
9
+
10
+ define_method(:not_exist) do
11
+ my_nil
12
+ end
13
+ end
14
+
15
+ def initialize(capacity)
16
+ @capacity = capacity
17
+ @data = {}
18
+ end
19
+
20
+ attr_reader :capacity
21
+
22
+ def [](key)
23
+ case value = @data.delete(key){ not_exist }
24
+ when not_exist
25
+ nil
26
+ else
27
+ @data[key] = value
28
+ end
29
+ end
30
+
31
+ def []=(key, value)
32
+ @data.delete(key)
33
+ @data[key] = value
34
+ if @data.size > @capacity
35
+ @data.delete(@data.keys.first)
36
+ end
37
+ value
38
+ end
39
+
40
+ def each(&block)
41
+ @data.reverse_each(&block)
42
+ end
43
+
44
+ def delete(key)
45
+ @data.delete(key)
46
+ end
47
+
48
+ def clear
49
+ @data.clear
50
+ end
51
+
52
+ def size
53
+ @data.size
54
+ end
55
+
56
+ private
57
+
58
+ def not_exist
59
+ self.class.send(:not_exist)
60
+ end
61
+ end
62
+ end
@@ -12,28 +12,54 @@ module Tins
12
12
  class << SexySingleton
13
13
  alias __old_singleton_included__ included
14
14
 
15
- def included(klass)
16
- __old_singleton_included__(klass)
17
- (class << klass; self; end).class_eval do
18
- if Object.method_defined?(:respond_to_missing?)
19
- def respond_to_missing?(name, *args)
20
- instance.respond_to?(name) || super
15
+ if RUBY_VERSION < "2.7"
16
+ def included(klass)
17
+ __old_singleton_included__(klass)
18
+ (class << klass; self; end).class_eval do
19
+ if Object.method_defined?(:respond_to_missing?)
20
+ def respond_to_missing?(name, *args)
21
+ instance.respond_to?(name) || super
22
+ end
23
+ else
24
+ def respond_to?(name, *args)
25
+ instance.respond_to?(name) || super
26
+ end
21
27
  end
22
- else
23
- def respond_to?(name, *args)
24
- instance.respond_to?(name) || super
28
+
29
+ def method_missing(name, *args, &block)
30
+ if instance.respond_to?(name)
31
+ instance.__send__(name, *args, &block)
32
+ else
33
+ super
34
+ end
25
35
  end
26
36
  end
27
-
28
- def method_missing(name, *args, &block)
29
- if instance.respond_to?(name)
30
- instance.__send__(name, *args, &block)
37
+ super
38
+ end
39
+ else
40
+ def included(klass)
41
+ __old_singleton_included__(klass)
42
+ (class << klass; self; end).class_eval do
43
+ if Object.method_defined?(:respond_to_missing?)
44
+ def respond_to_missing?(name, *args, **kwargs)
45
+ instance.respond_to?(name) || super
46
+ end
31
47
  else
32
- super
48
+ def respond_to?(name, *args, **kwargs)
49
+ instance.respond_to?(name) || super
50
+ end
51
+ end
52
+
53
+ def method_missing(name, *args, **kwargs, &block)
54
+ if instance.respond_to?(name)
55
+ instance.__send__(name, *args, **kwargs, &block)
56
+ else
57
+ super
58
+ end
33
59
  end
34
60
  end
61
+ super
35
62
  end
36
- super
37
63
  end
38
64
  end
39
65
  end
@@ -99,6 +99,10 @@ module Tins
99
99
  Version.new(self)
100
100
  end
101
101
  end
102
+
103
+ def self.StringVersion(string)
104
+ StringVersion::Version.new(string.to_str)
105
+ end
102
106
  end
103
107
 
104
108
  require 'tins/alias'
@@ -1,13 +1,9 @@
1
1
  module Tins
2
2
  module ThreadLocal
3
- @@mutex = Mutex.new
4
-
5
3
  @@cleanup = lambda do |my_object_id|
6
4
  my_id = "__thread_local_#{my_object_id}__"
7
- @@mutex.synchronize do
8
- for t in Thread.list
9
- t[my_id] = nil if t[my_id]
10
- end
5
+ for t in Thread.list
6
+ t[my_id] = nil if t[my_id]
11
7
  end
12
8
  end
13
9
 
@@ -35,13 +35,25 @@ module Tins
35
35
  end
36
36
  end
37
37
 
38
- def new(*a)
39
- if dummy
40
- dummy.dup
41
- elsif caller.first =~ /`now`/
42
- really_now
43
- else
44
- really_new(*a)
38
+ if RUBY_VERSION >= "3.0"
39
+ def new(*a, **kw)
40
+ if dummy
41
+ dummy.dup
42
+ elsif caller.first =~ /`now`/
43
+ really_now(**kw)
44
+ else
45
+ really_new(*a, **kw)
46
+ end
47
+ end
48
+ else
49
+ def new(*a)
50
+ if dummy
51
+ dummy.dup
52
+ elsif caller.first =~ /`now`/
53
+ really_now
54
+ else
55
+ really_new(*a)
56
+ end
45
57
  end
46
58
  end
47
59
 
@@ -0,0 +1,51 @@
1
+ class TimedCache
2
+ class Value < Struct.new(:value, :timestamp)
3
+ def self.json_create(hash)
4
+ new(*hash.values_at('value', 'timestamp'))
5
+ end
6
+
7
+ def as_json(*)
8
+ super | { JSON.create_id => self.class.name }
9
+ end
10
+ end
11
+
12
+ def initialize(name, ttl: 60, jitter: 1..5, &block)
13
+ @name = name
14
+ @ttl = ttl
15
+ @jitter = jitter
16
+ block or raise ArgumentError, 'block is required'
17
+ @block = block
18
+ @redis = Redis.new # RedisPool::Pool.connection(:timed_cache, configuration: :redis)
19
+ end
20
+
21
+ def namespaced(key)
22
+ "timed_cache:#{key}"
23
+ end
24
+
25
+ def value
26
+ now = Time.now
27
+ if stored = stored_value
28
+ if (now - @ttl).to_i >= stored.timestamp
29
+ Thread.new {
30
+ sleep @jitter
31
+ if stored_value.timestamp <= stored.timestamp
32
+ @redis.set namespaced(@name), new_value(now).to_json
33
+ end
34
+ }
35
+ end
36
+ stored.value
37
+ else
38
+ nv = new_value(now)
39
+ @redis.set namespaced(@name), nv.to_json
40
+ nv.value
41
+ end
42
+ end
43
+
44
+ def new_value(now)
45
+ Value.new(@block.(), now.to_i)
46
+ end
47
+
48
+ def stored_value
49
+ @redis.get(namespaced(@name)).full? { |s| ::JSON.parse(s, create_additions: true) rescue nil }
50
+ end
51
+ end
data/lib/tins/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.25.0'
3
+ VERSION = '1.32.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/lib/tins.rb CHANGED
@@ -57,5 +57,6 @@ module Tins
57
57
  require 'tins/expose'
58
58
  require 'tins/temp_io'
59
59
  require 'tins/temp_io_enum'
60
+ require 'tins/lru_cache'
60
61
  end
61
62
  require 'tins/alias'
@@ -32,7 +32,7 @@ module Tins
32
32
  attempt(attempts: 3, exception_class: MyException) { |c| c == 1 and raise MyException }
33
33
  end
34
34
 
35
- def test_reraise_exception
35
+ def test_reraise_exception_true
36
36
  tries = 0
37
37
  assert_raise(MyException) do
38
38
  attempt(attempts: 3, exception_class: MyException, reraise: true) do |c|
@@ -42,6 +42,28 @@ module Tins
42
42
  assert_equal 3, tries
43
43
  end
44
44
 
45
+ def test_reraise_exception_exception_class
46
+ other_exception = Exception
47
+ tries = 0
48
+ assert_raise(other_exception) do
49
+ attempt(attempts: 3, exception_class: MyException, reraise: other_exception) do |c|
50
+ tries = c; raise MyException
51
+ end
52
+ end
53
+ assert_equal 3, tries
54
+ end
55
+
56
+ def test_reraise_exception_proc
57
+ other_exception = Exception
58
+ tries = 0
59
+ assert_raise(other_exception, 'hi ho') do
60
+ attempt(attempts: 3, exception_class: MyException, reraise: -> e { raise other_exception, 'hi ho' }) do |c|
61
+ tries = c; raise MyException
62
+ end
63
+ end
64
+ assert_equal 3, tries
65
+ end
66
+
45
67
  def test_reraise_exception_with_positive_sleep
46
68
  tries = 0
47
69
  singleton_class.class_eval do
@@ -105,5 +127,17 @@ module Tins
105
127
  method_defined?(:sleep_duration) and remove_method :sleep_duration
106
128
  end
107
129
  end
130
+
131
+ def test_attempt_previous_exception_block_arg
132
+ last_e = nil
133
+ attempt(1) { |c, prev_e| last_e = prev_e }
134
+ assert_nil last_e
135
+ attempt(2) { |c, prev_e| last_e = prev_e; c == 1 and raise MyError }
136
+ assert_kind_of MyError, last_e
137
+ attempt(3) { |c, prev_e| last_e = prev_e; c == 1 and raise MyError }
138
+ assert_kind_of MyError, last_e
139
+ attempt(4) { |c, prev_e| last_e = prev_e; c == 1 and raise MyError; c == 2 and raise ArgumentError }
140
+ assert_kind_of ArgumentError, last_e
141
+ end
108
142
  end
109
143
  end
@@ -30,7 +30,7 @@ module Tins
30
30
  end
31
31
 
32
32
  def test_deep_const_get_with_const_missing
33
- assert_raise(ArgumentError) { deep_const_get '::Tins::DeepConstGetTest::A::D' }
33
+ assert_raise(ArgumentError) { deep_const_get '::Tins::DeepConstGetTest::A::NIXDA' }
34
34
  assert_equal Tins::DeepConstGetTest::C::NotB, deep_const_get('::Tins::DeepConstGetTest::C::B')
35
35
  end
36
36
  end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+ require 'tins'
3
+
4
+ module Tins
5
+ class LRUCacheTest < Test::Unit::TestCase
6
+ def setup
7
+ @cache = LRUCache.new(3)
8
+ end
9
+
10
+ def test_can_be_filled_to_capacity
11
+ assert_equal 0, @cache.size
12
+ @cache[1] = 1
13
+ assert_equal 1, @cache.size
14
+ @cache[2] = 2
15
+ assert_equal 2, @cache.size
16
+ @cache[3] = 3
17
+ assert_equal 3, @cache.size
18
+ @cache[4] = 4
19
+ assert_equal 3, @cache.size
20
+ assert_equal 4, @cache.first[0]
21
+ end
22
+
23
+ def test_reorders_based_on_recency
24
+ (1..3).each do |i|
25
+ @cache[i] = i
26
+ end
27
+ assert_equal 3, @cache.first[0]
28
+ @cache[1]
29
+ assert_equal 1, @cache.first[0]
30
+ end
31
+
32
+ def test_can_be_cleared
33
+ (1..3).each do |i|
34
+ @cache[i] = i
35
+ end
36
+ assert_equal 3, @cache.size
37
+ @cache.clear
38
+ assert_equal 0, @cache.size
39
+ end
40
+
41
+ def test_can_be_deleted_from
42
+ (1..3).each do |i|
43
+ @cache[i] = i
44
+ end
45
+ assert_equal 3, @cache.size
46
+ @cache.delete 2
47
+ assert_equal 2, @cache.size
48
+ assert_nil @cache[2]
49
+ end
50
+ end
51
+ end
data/tins.gemspec CHANGED
@@ -1,37 +1,45 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.25.0 ruby lib
2
+ # stub: tins 1.32.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.25.0"
6
+ s.version = "1.32.1"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2020-05-13"
11
+ s.date = "2022-11-21"
12
12
  s.description = "All the stuff that isn't good/big enough for a real library.".freeze
13
13
  s.email = "flori@ping.de".freeze
14
- s.extra_rdoc_files = ["README.md".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze]
15
- s.files = [".gitignore".freeze, ".travis.yml".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "TODO".freeze, "VERSION".freeze, "examples/add_one.png".freeze, "examples/add_one.stm".freeze, "examples/bb3.png".freeze, "examples/bb3.stm".freeze, "examples/concatenate_compare.mtm".freeze, "examples/concatenate_compare.png".freeze, "examples/length_difference.mtm".freeze, "examples/length_difference.png".freeze, "examples/let.rb".freeze, "examples/mail.rb".freeze, "examples/minsky.rb".freeze, "examples/multiply.reg".freeze, "examples/null_pattern.rb".freeze, "examples/ones_difference-mtm.png".freeze, "examples/ones_difference-stm.png".freeze, "examples/ones_difference.mtm".freeze, "examples/ones_difference.stm".freeze, "examples/prefix-equals-suffix-reversed-with-infix.png".freeze, "examples/prefix-equals-suffix-reversed-with-infix.stm".freeze, "examples/recipe.rb".freeze, "examples/recipe2.rb".freeze, "examples/recipe_common.rb".freeze, "examples/subtract.reg".freeze, "examples/turing-graph.rb".freeze, "examples/turing.rb".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze, "tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/test_helper.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze, "tins.gemspec".freeze]
14
+ s.extra_rdoc_files = ["README.md".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/lru_cache.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/timed_cache.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze]
15
+ s.files = ["COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "examples/add_one.png".freeze, "examples/add_one.stm".freeze, "examples/bb3.png".freeze, "examples/bb3.stm".freeze, "examples/concatenate_compare.mtm".freeze, "examples/concatenate_compare.png".freeze, "examples/length_difference.mtm".freeze, "examples/length_difference.png".freeze, "examples/let.rb".freeze, "examples/mail.rb".freeze, "examples/minsky.rb".freeze, "examples/multiply.reg".freeze, "examples/null_pattern.rb".freeze, "examples/ones_difference-mtm.png".freeze, "examples/ones_difference-stm.png".freeze, "examples/ones_difference.mtm".freeze, "examples/ones_difference.stm".freeze, "examples/prefix-equals-suffix-reversed-with-infix.png".freeze, "examples/prefix-equals-suffix-reversed-with-infix.stm".freeze, "examples/recipe.rb".freeze, "examples/recipe2.rb".freeze, "examples/recipe_common.rb".freeze, "examples/subtract.reg".freeze, "examples/turing-graph.rb".freeze, "examples/turing.rb".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/lru_cache.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/timed_cache.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze, "tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/lru_cache_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/test_helper.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze, "tins.gemspec".freeze]
16
16
  s.homepage = "https://github.com/flori/tins".freeze
17
17
  s.licenses = ["MIT".freeze]
18
18
  s.rdoc_options = ["--title".freeze, "Tins - Useful stuff.".freeze, "--main".freeze, "README.md".freeze]
19
19
  s.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze)
20
- s.rubygems_version = "3.1.2".freeze
20
+ s.rubygems_version = "3.3.17".freeze
21
21
  s.summary = "Useful stuff.".freeze
22
- s.test_files = ["tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/test_helper.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/find_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/null_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/token_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/p_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/to_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/unit_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/named_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/annotate_test.rb".freeze, "tests/go_test.rb".freeze]
22
+ s.test_files = ["tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/lru_cache_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/test_helper.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze, "tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/lru_cache_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze]
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  s.specification_version = 4
26
26
  end
27
27
 
28
28
  if s.respond_to? :add_runtime_dependency then
29
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
29
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
30
+ s.add_development_dependency(%q<utils>.freeze, [">= 0"])
31
+ s.add_development_dependency(%q<all_images>.freeze, [">= 0"])
32
+ s.add_development_dependency(%q<debug>.freeze, [">= 0"])
33
+ s.add_development_dependency(%q<term-ansicolor>.freeze, [">= 0"])
30
34
  s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.1"])
31
35
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
32
36
  s.add_runtime_dependency(%q<sync>.freeze, [">= 0"])
33
37
  else
34
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
38
+ s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
39
+ s.add_dependency(%q<utils>.freeze, [">= 0"])
40
+ s.add_dependency(%q<all_images>.freeze, [">= 0"])
41
+ s.add_dependency(%q<debug>.freeze, [">= 0"])
42
+ s.add_dependency(%q<term-ansicolor>.freeze, [">= 0"])
35
43
  s.add_dependency(%q<test-unit>.freeze, ["~> 3.1"])
36
44
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
37
45
  s.add_dependency(%q<sync>.freeze, [">= 0"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.25.0
4
+ version: 1.32.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-13 00:00:00.000000000 Z
11
+ date: 2022-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.11.0
19
+ version: 1.12.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.11.0
26
+ version: 1.12.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: utils
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: all_images
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: debug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: term-ansicolor
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
27
83
  - !ruby/object:Gem::Dependency
28
84
  name: test-unit
29
85
  requirement: !ruby/object:Gem::Requirement
@@ -104,6 +160,7 @@ extra_rdoc_files:
104
160
  - lib/tins/implement.rb
105
161
  - lib/tins/limited.rb
106
162
  - lib/tins/lines_file.rb
163
+ - lib/tins/lru_cache.rb
107
164
  - lib/tins/memoize.rb
108
165
  - lib/tins/method_description.rb
109
166
  - lib/tins/minimize.rb
@@ -130,6 +187,7 @@ extra_rdoc_files:
130
187
  - lib/tins/terminal.rb
131
188
  - lib/tins/thread_local.rb
132
189
  - lib/tins/time_dummy.rb
190
+ - lib/tins/timed_cache.rb
133
191
  - lib/tins/to.rb
134
192
  - lib/tins/to_proc.rb
135
193
  - lib/tins/token.rb
@@ -185,14 +243,10 @@ extra_rdoc_files:
185
243
  - lib/tins/xt/uniq_by.rb
186
244
  - lib/tins/xt/write.rb
187
245
  files:
188
- - ".gitignore"
189
- - ".travis.yml"
190
246
  - COPYING
191
247
  - Gemfile
192
248
  - README.md
193
249
  - Rakefile
194
- - TODO
195
- - VERSION
196
250
  - examples/add_one.png
197
251
  - examples/add_one.stm
198
252
  - examples/bb3.png
@@ -250,6 +304,7 @@ files:
250
304
  - lib/tins/implement.rb
251
305
  - lib/tins/limited.rb
252
306
  - lib/tins/lines_file.rb
307
+ - lib/tins/lru_cache.rb
253
308
  - lib/tins/memoize.rb
254
309
  - lib/tins/method_description.rb
255
310
  - lib/tins/minimize.rb
@@ -276,6 +331,7 @@ files:
276
331
  - lib/tins/terminal.rb
277
332
  - lib/tins/thread_local.rb
278
333
  - lib/tins/time_dummy.rb
334
+ - lib/tins/timed_cache.rb
279
335
  - lib/tins/to.rb
280
336
  - lib/tins/to_proc.rb
281
337
  - lib/tins/token.rb
@@ -359,6 +415,7 @@ files:
359
415
  - tests/implement_test.rb
360
416
  - tests/limited_test.rb
361
417
  - tests/lines_file_test.rb
418
+ - tests/lru_cache_test.rb
362
419
  - tests/memoize_test.rb
363
420
  - tests/method_description_test.rb
364
421
  - tests/minimize_test.rb
@@ -395,7 +452,7 @@ homepage: https://github.com/flori/tins
395
452
  licenses:
396
453
  - MIT
397
454
  metadata: {}
398
- post_install_message:
455
+ post_install_message:
399
456
  rdoc_options:
400
457
  - "--title"
401
458
  - Tins - Useful stuff.
@@ -414,8 +471,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
414
471
  - !ruby/object:Gem::Version
415
472
  version: '0'
416
473
  requirements: []
417
- rubygems_version: 3.1.2
418
- signing_key:
474
+ rubygems_version: 3.3.17
475
+ signing_key:
419
476
  specification_version: 4
420
477
  summary: Useful stuff.
421
478
  test_files:
@@ -448,6 +505,7 @@ test_files:
448
505
  - tests/implement_test.rb
449
506
  - tests/limited_test.rb
450
507
  - tests/lines_file_test.rb
508
+ - tests/lru_cache_test.rb
451
509
  - tests/memoize_test.rb
452
510
  - tests/method_description_test.rb
453
511
  - tests/minimize_test.rb
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- .*.sw[pon]
2
- .AppleDouble
3
- .DS_Store
4
- .bundle
5
- .byebug_history
6
- .rbx
7
- .rvmrc
8
- Gemfile.lock
9
- coverage
10
- pkg
11
- tags
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- rvm:
2
- - 2.0
3
- - 2.1
4
- - 2.2
5
- - 2.3
6
- - 2.4
7
- - 2.5
8
- - 2.6
9
- - 2.7
10
- - ruby-head
11
- matrix:
12
- allow_failures:
13
- - rvm: ruby-head
14
- sudo: false
data/TODO DELETED
@@ -1,3 +0,0 @@
1
- # TODO
2
-
3
- - Add Tins::Duration.parse(string) method.
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.25.0