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.
@@ -0,0 +1,3 @@
1
+ module PrimitiveWrapper
2
+ VERSION = "0.1.0"
3
+ end
@@ -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: []