punkme 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e1b9fba89223cebbc829b8bb6f777edbf9a50faa1276056471657628a7db38cc
4
+ data.tar.gz: 5b032dc479f636c7ec60564f3e03bb51e0e05666efe61c42b8c8c376917c945c
5
+ SHA512:
6
+ metadata.gz: ca65a2c5643cf742f1b13fac0bde5cc8416b26f0660df41fbdc60afcd4bce210232ff3b80b98310928d601f113861044b33f91a53c2c9d30307d6a83be79ea5f
7
+ data.tar.gz: bd03510f41399268329ca86cc3389ed662c3134422ffa16c7344ee7f85f2164b4f74722c240ec23191ae82c93c79718d5ea5bcee613cea984ef79c22245ac39e
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ### 0.0.1 / 2023-08-27
2
+
3
+ * Everything is new. First release
data/Manifest.txt ADDED
@@ -0,0 +1,6 @@
1
+ CHANGELOG.md
2
+ Manifest.txt
3
+ README.md
4
+ Rakefile
5
+ lib/punkme.rb
6
+ lib/punkme/version.rb
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # punk me
2
+
3
+ punkme gem - generate your own (pixel) punk characters / heads - using your own skintone, eye color, hair & hair color, and much more
4
+
5
+
6
+ * home :: [github.com/cryptopunksnotdead/punkart.sandbox](https://github.com/cryptopunksnotdead/punkart.sandbox)
7
+ * bugs :: [github.com/cryptopunksnotdead/punkart.sandbox/issues](https://github.com/cryptopunksnotdead/punkart.sandbox/issues)
8
+ * gem :: [rubygems.org/gems/punkme](https://rubygems.org/gems/punkme)
9
+ * rdoc :: [rubydoc.info/gems/punkme](http://rubydoc.info/gems/punkme)
10
+
11
+
12
+
13
+ ## Usage
14
+
15
+
16
+ to be done
17
+
18
+
19
+
20
+
21
+ ## License
22
+
23
+ The scripts are dedicated to the public domain.
24
+ Use it as you please with no restrictions whatsoever.
25
+
26
+
27
+ ## Questions? Comments?
28
+
29
+ Join us in the [Punk Art discord (chat server)](https://discord.gg/FE3HeXNKRa). Yes you can.
30
+ Your questions and commentary welcome.
31
+
32
+ Or post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks.
33
+
34
+
data/Rakefile ADDED
@@ -0,0 +1,42 @@
1
+ require 'hoe'
2
+ require './lib/punkme/version.rb'
3
+
4
+
5
+ ###
6
+ # hack/ quick fix for broken intuit_values - overwrite with dummy
7
+ # class Hoe
8
+ # def intuit_values( input ); end
9
+ # end
10
+
11
+
12
+ Hoe.spec 'punkme' do
13
+
14
+ self.version = Pixelart::Module::Punkme::VERSION
15
+
16
+ self.summary = 'punkme gem - generate your own (pixel) punk characters / heads - using your own skintone, eye color, hair & hair color, and much more'
17
+ self.description = summary
18
+
19
+ self.urls = { home: 'https://github.com/cryptopunksnotdead/punkart.sandbox' }
20
+
21
+ self.author = 'Gerald Bauer'
22
+ self.email = 'gerald.bauer@gmail.com'
23
+
24
+ # switch extension to .markdown for gihub formatting
25
+ self.readme_file = 'README.md'
26
+ self.history_file = 'CHANGELOG.md'
27
+
28
+ self.extra_deps = [
29
+ ['punkmaker'],
30
+ ['barbershop'],
31
+ ['hairsalon'],
32
+ ['punks'],
33
+ ]
34
+
35
+ self.licenses = ['Public Domain']
36
+
37
+ self.spec_extras = {
38
+ required_ruby_version: '>= 2.3'
39
+ }
40
+
41
+ end
42
+
@@ -0,0 +1,25 @@
1
+
2
+ module Pixelart
3
+ module Module
4
+ module Punkme
5
+
6
+ MAJOR = 0
7
+ MINOR = 0
8
+ PATCH = 1
9
+ VERSION = [MAJOR,MINOR,PATCH].join('.')
10
+
11
+ def self.version
12
+ VERSION
13
+ end
14
+
15
+ def self.banner
16
+ "punkme/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
17
+ end
18
+
19
+ def self.root
20
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
21
+ end
22
+
23
+ end # module Punkme
24
+ end # module Module
25
+ end # module Pixelart
data/lib/punkme.rb ADDED
@@ -0,0 +1,84 @@
1
+ ## 3rd party
2
+ require 'punkmaker'
3
+ require 'barbershop' ## men's hair styles & more
4
+ require 'hairsalon' ## women's hair styles & more
5
+
6
+ require 'punks' ## more accessories
7
+
8
+
9
+
10
+ ## our own code
11
+ require_relative 'punkme/version' # note: let version always go first
12
+
13
+
14
+
15
+ module Punkme
16
+
17
+ SKINTONE_DARK = 0x713f1dff
18
+
19
+
20
+ class Image < Pixelart::Image
21
+
22
+
23
+ ## change/rename generate to make - why? why not?
24
+ ## or add/use alias - why? why not?
25
+ ##
26
+ ## names (attributes) MUST go first -
27
+ ## check if possible after keyword args ???
28
+ def self.generate(
29
+ skintone: SKINTONE_DARK,
30
+ gender: 'm' )
31
+
32
+ skintone = Color.parse( skintone ) unless skintone.is_a?( Integer )
33
+
34
+ punk = if gender == 'm'
35
+ Punk::Human.make( skintone, gender: 'm' )
36
+ else ## assume f/female
37
+ Punk::Human.make( skintone, gender: 'f' )
38
+ end
39
+ ## wrap as Punkme image (keeps metadata) - why? why not?
40
+ new( punk.image, gender: gender,
41
+ skintone: skintone )
42
+ end # method self.generate
43
+
44
+
45
+ attr_reader :gender,
46
+ :skintone,
47
+ :accessories
48
+
49
+ def initialize( img, gender:,
50
+ skintone: nil )
51
+ @gender = gender
52
+ @skintone = skintone
53
+ @accessories = []
54
+ super( nil, nil, img ) ### fix Image#initialze to accept "raw" image only
55
+ end
56
+
57
+ def add( *names )
58
+ punk = Image.new( Pixelart::Image.new( width, height ).image,
59
+ gender: @gender,
60
+ skintone: @skintone )
61
+ punk.compose!( self ) ## add ourselves (that is, base punk) here
62
+
63
+ ## add (optional) attributes
64
+ names.each do |name|
65
+ img = if gender == 'm'
66
+ Punk::Sheet.find_by( name: name, gender: 'm', size: 'l' )
67
+ else
68
+ Punk::Sheet.find_by( name: name, gender: 'f', size: 's' )
69
+ end
70
+ punk.compose!( img )
71
+ @accessories << name
72
+ end
73
+ punk
74
+ end
75
+ end # class Image
76
+ end # module Punkme
77
+
78
+
79
+ ###
80
+ # add some convience shortcuts / alternate spelling variants
81
+ PunkMe = Punkme
82
+
83
+
84
+ puts Pixelart::Module::Punkme.banner # say hello
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: punkme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Gerald Bauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-08-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: punkmaker
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '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'
27
+ - !ruby/object:Gem::Dependency
28
+ name: barbershop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
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: hairsalon
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
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: punks
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
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: rdoc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '7'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '4.0'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '7'
89
+ - !ruby/object:Gem::Dependency
90
+ name: hoe
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '4.0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '4.0'
103
+ description: punkme gem - generate your own (pixel) punk characters / heads - using
104
+ your own skintone, eye color, hair & hair color, and much more
105
+ email: gerald.bauer@gmail.com
106
+ executables: []
107
+ extensions: []
108
+ extra_rdoc_files:
109
+ - CHANGELOG.md
110
+ - Manifest.txt
111
+ - README.md
112
+ files:
113
+ - CHANGELOG.md
114
+ - Manifest.txt
115
+ - README.md
116
+ - Rakefile
117
+ - lib/punkme.rb
118
+ - lib/punkme/version.rb
119
+ homepage: https://github.com/cryptopunksnotdead/punkart.sandbox
120
+ licenses:
121
+ - Public Domain
122
+ metadata: {}
123
+ post_install_message:
124
+ rdoc_options:
125
+ - "--main"
126
+ - README.md
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '2.3'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ requirements: []
140
+ rubygems_version: 3.4.10
141
+ signing_key:
142
+ specification_version: 4
143
+ summary: punkme gem - generate your own (pixel) punk characters / heads - using your
144
+ own skintone, eye color, hair & hair color, and much more
145
+ test_files: []