This repository has been archived by the owner on Jan 24, 2023. It is now read-only.
forked from evolve75/RubyTree
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrubytree.gemspec
107 lines (80 loc) · 3.93 KB
/
rubytree.gemspec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#
# gemspec for the rubytree gem.
#
# Author:: Anupam Sengupta ([email protected])
#
# Copyright (c) 2012-2022 Anupam Sengupta. All rights reserved.
#
# frozen_string_literal: true
require File.join(__dir__, '/lib/tree/version')
Gem::Specification.new do |s|
s.name = 'rubytree'
s.version = Tree::VERSION
s.license = 'BSD-3-Clause-Clear'
# NOTE: s.date should NOT be assigned. It is automatically set to pkg date.
s.platform = Gem::Platform::RUBY
s.author = 'Anupam Sengupta'
s.email = '[email protected]'
s.homepage = 'http://rubytree.anupamsg.me'
s.required_ruby_version = '>=2.6'
s.summary = 'A generic tree data structure for Ruby.'
s.description = <<-END_DESC
RubyTree is a Ruby implementation of the generic tree data structure. It
provides simple APIs to store named nodes, and to access, modify, and
traverse the tree.
The data model is node-centric, where nodes in the tree are the primary
structural elements. It supports all common tree-traversal methods (pre-order,
post-order, and breadth first).
RubyTree mixes in the Enumerable and Comparable modules and behaves like a
standard Ruby collection (iteration, comparison, etc.).
RubyTree also includes a binary tree implementation, which provides in-order
node traversal besides the other methods.
RubyTree can import from and export to JSON, and supports Ruby’s object
marshaling.
END_DESC
s.metadata = {
'rubygems_mfa_required' => 'true'
}
s.files = Dir['lib/**/*.rb'] # The actual code
s.files += Dir['[A-Z]*'] # Various documentation files
s.files += Dir['test/**/*.rb'] # Test cases
s.files += Dir['spec/**/*.rb'] # Rspec Test cases
s.files += Dir['examples/**/*.rb'] # Examples
# @todo: Check if this is really needed.
s.files += ['.gemtest'] # Support for gem-test
s.require_paths = ['lib']
s.extra_rdoc_files = %w[README.md LICENSE.md API-CHANGES.md History.md]
s.rdoc_options = ['--title', "Rubytree Documentation: #{s.name}-#{s.version}",
'--main', 'README.md',
'--quiet']
s.add_runtime_dependency 'json', '~> 2.0', '> 2.3.1'
# NOTE: Rake is added as a development and test dependency in the Gemfile.
s.add_development_dependency 'bundler', '~> 2.3'
s.add_development_dependency 'rake', '~> 13.0'
s.add_development_dependency 'rdoc', '~> 6.0'
s.add_development_dependency 'rspec', '~> 3.0', '> 3.10'
s.add_development_dependency 'rtagstask', '~> 0.0.4'
s.add_development_dependency 'rubocop', '~> 1.0'
s.add_development_dependency 'rubocop-rake', '~> 0.0'
s.add_development_dependency 'rubocop-rspec', '~> 2.0'
s.add_development_dependency 'simplecov', '~> 0.21'
s.add_development_dependency 'simplecov-lcov', '~> 0.8'
s.add_development_dependency 'test-unit', '~> 3.0'
s.add_development_dependency 'yard', '~> 0.0', '>= 0.9.20'
s.post_install_message = <<-END_MESSAGE
========================================================================
Thank you for installing RubyTree.
Note::
- 2.0.0 is a major release with BREAKING API changes.
See `API-CHANGES.md` for details.
- `Tree::TreeNode#depth` method has been removed (it was broken).
- Support for `CamelCase` methods names has bee removed.
- The predicate methods no longer have `is_` or `has_` prefixes. However,
aliases with these prefixes exist to support existing client code.
- Use of integers as node names does not require the optional
`num_as_name` flag.
- `structured_warnings` is no longer a dependency.
- Explicit support for rbx Ruby has been removed.
========================================================================
END_MESSAGE
end