primitive_wrapper 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +491 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/primitive_wrapper.rb +610 -0
- data/lib/primitive_wrapper/version.rb +3 -0
- data/primitive_wrapper.gemspec +38 -0
- metadata +144 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'primitive_wrapper/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "primitive_wrapper"
|
8
|
+
spec.version = PrimitiveWrapper::VERSION
|
9
|
+
spec.authors = ["Bryan Colvin"]
|
10
|
+
spec.email = ["bryan@bdlsys.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Thin wrapper for primitive literals}
|
13
|
+
spec.description = %q{This gem creates a thin shell to encapsulate primitive literal types such as integers, floats and symbols.
|
14
|
+
There are a family of wrappers which mimic the behavior of what they contain.
|
15
|
+
Primitive types have several drawbacks: no constructor to call, can't create instance variables, and can't create singleton methods.
|
16
|
+
There is some utility in wrapping a primitive type. You can simulate a call by reference for example.
|
17
|
+
You can also simulate mutability, and pointers.
|
18
|
+
Some wrappers are dedicated to holding a single type while others may hold a family of types such as the `Number` wrapper.
|
19
|
+
What is interesting to note is Number objects do not derive from `Numeric`, but instead derive from `Value` (the wrapper base class);
|
20
|
+
but at the same time, `Number` objects mimic the methods of `Fixnum`, `Complex`, `Float`, etc.
|
21
|
+
Many of the wrappers can be used in an expression without having to call an access method.
|
22
|
+
There are also new types: `Bool` which wraps `true,false` and `Property` which wraps `Hash` types.
|
23
|
+
The `Property` object auto-methodizes the key names of the Hash.}
|
24
|
+
|
25
|
+
spec.license = "MIT"
|
26
|
+
|
27
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_runtime_dependency 'blockify', '>= 0.1.0'
|
33
|
+
|
34
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
35
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
36
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
37
|
+
spec.add_development_dependency 'byebug', '~> 5.0', '>= 5.0.0'
|
38
|
+
end
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: primitive_wrapper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bryan Colvin
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-12-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: blockify
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.11'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '5.0'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 5.0.0
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '5.0'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 5.0.0
|
89
|
+
description: |-
|
90
|
+
This gem creates a thin shell to encapsulate primitive literal types such as integers, floats and symbols.
|
91
|
+
There are a family of wrappers which mimic the behavior of what they contain.
|
92
|
+
Primitive types have several drawbacks: no constructor to call, can't create instance variables, and can't create singleton methods.
|
93
|
+
There is some utility in wrapping a primitive type. You can simulate a call by reference for example.
|
94
|
+
You can also simulate mutability, and pointers.
|
95
|
+
Some wrappers are dedicated to holding a single type while others may hold a family of types such as the `Number` wrapper.
|
96
|
+
What is interesting to note is Number objects do not derive from `Numeric`, but instead derive from `Value` (the wrapper base class);
|
97
|
+
but at the same time, `Number` objects mimic the methods of `Fixnum`, `Complex`, `Float`, etc.
|
98
|
+
Many of the wrappers can be used in an expression without having to call an access method.
|
99
|
+
There are also new types: `Bool` which wraps `true,false` and `Property` which wraps `Hash` types.
|
100
|
+
The `Property` object auto-methodizes the key names of the Hash.
|
101
|
+
email:
|
102
|
+
- bryan@bdlsys.com
|
103
|
+
executables: []
|
104
|
+
extensions: []
|
105
|
+
extra_rdoc_files: []
|
106
|
+
files:
|
107
|
+
- ".gitignore"
|
108
|
+
- ".rspec"
|
109
|
+
- ".travis.yml"
|
110
|
+
- CODE_OF_CONDUCT.md
|
111
|
+
- Gemfile
|
112
|
+
- LICENSE.txt
|
113
|
+
- README.md
|
114
|
+
- Rakefile
|
115
|
+
- bin/console
|
116
|
+
- bin/setup
|
117
|
+
- lib/primitive_wrapper.rb
|
118
|
+
- lib/primitive_wrapper/version.rb
|
119
|
+
- primitive_wrapper.gemspec
|
120
|
+
homepage:
|
121
|
+
licenses:
|
122
|
+
- MIT
|
123
|
+
metadata: {}
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
requirements: []
|
139
|
+
rubyforge_project:
|
140
|
+
rubygems_version: 2.5.1
|
141
|
+
signing_key:
|
142
|
+
specification_version: 4
|
143
|
+
summary: Thin wrapper for primitive literals
|
144
|
+
test_files: []
|