shibainus 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 770d6505218c085495ce8ba842b0ecd9cf5b75d92b9557fb1b4e9978af816cef
4
+ data.tar.gz: 49c8f55c903649b369ec01d9039cb2480a96b4ac8b823a288fa17aa36a77bcb8
5
+ SHA512:
6
+ metadata.gz: 39651aeda7aa240b1884494170c9b477c4f2ffcd9bc003564563a993419e8be6676a08652a03485fbf22d6709de527ffa369bd77115c744afa05cf10098d773b
7
+ data.tar.gz: cf639cd9ad45826e01a69b3b3681a54032e85caad9dc415a52a6911f5233952b3362c477af158bcc9e849286a64ce1738dd0d6e8adfacf181017beab9ecb1b6b
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ### 0.0.1 / 2021-05-28
2
+
3
+ * Everything is new. First release
data/Manifest.txt ADDED
@@ -0,0 +1,8 @@
1
+ CHANGELOG.md
2
+ Manifest.txt
3
+ README.md
4
+ Rakefile
5
+ config/spritesheet.csv
6
+ config/spritesheet.png
7
+ lib/shibainus.rb
8
+ lib/shibainus/version.rb
data/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # Shiba Inus (Pixel Doge)
2
+
3
+ shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more
4
+
5
+
6
+ * home :: [github.com/pixelartexchange/pixelart](https://github.com/pixelartexchange/pixelart)
7
+ * bugs :: [github.com/pixelartexchange/pixelart/issues](https://github.com/pixelartexchange/pixelart/issues)
8
+ * gem :: [rubygems.org/gems/shibainus](https://rubygems.org/gems/shibainus)
9
+ * rdoc :: [rubydoc.info/gems/shibainus](http://rubydoc.info/gems/shibainus)
10
+
11
+
12
+
13
+
14
+ ## Usage
15
+
16
+ Let's generate some super-rare never-before-seen
17
+ shiba inu (pixel doge):
18
+
19
+ ```ruby
20
+ require 'shibainus'
21
+
22
+ doge = Shiba::Image.generate( 'Classic', '3D Glasses' )
23
+ doge.save( "doge1.png")
24
+ doge.zoom(4).save( "doge1@4x.png" )
25
+
26
+ doge = Shiba::Image.generate( 'Dark', 'Tiara', 'Big Shades' )
27
+ doge.save( "doge2.png")
28
+ doge.zoom(4).save( "doge2@4x.png" )
29
+
30
+ doge = Shiba::Image.generate( 'Zombie', 'Crazy Hair' )
31
+ doge.save( "doge3.png")
32
+ doge.zoom(4).save( "doge3@4x.png" )
33
+
34
+ doge = Shiba::Image.generate( 'Alien', 'Headband' )
35
+ doge.save( "doge4.png")
36
+ doge.zoom(4).save( "doge4@4x.png" )
37
+ ```
38
+
39
+ Voila!
40
+
41
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge1.png)
42
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge2.png)
43
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge3.png)
44
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge4.png)
45
+
46
+ In 4x:
47
+
48
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge1@4x.png)
49
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge2@4x.png)
50
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge3@4x.png)
51
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/doge4@4x.png)
52
+
53
+
54
+ And so on.
55
+
56
+ ### Bonus - Look-Up Attributes (Via Built-In Spritesheet)
57
+
58
+
59
+ Let's look-up some attributes:
60
+
61
+ ```ruby
62
+ classic = Shiba::Sheet.find_by( name: 'Classic' )
63
+ crazy_hair = Shiba::Sheet.find_by( name: 'Crazy Hair' )
64
+ beanie = Shiba::Sheet.find_by( name: 'Beanie' )
65
+ big_shades = Shiba::Sheet.find_by( name: 'Big Shades' )
66
+
67
+ classic.save( "classic.png" )
68
+ crazy_hair.save( "crazy_hair.png" )
69
+ beanie.save( "beanie.png" )
70
+ big_shades.save( "big_shades.png" )
71
+
72
+ classic.zoom( 4 ).save( "classic@4x.png" )
73
+ crazy_hair.zoom( 4 ).save( "crazy_hair@4x.png" )
74
+ beanie.zoom( 4 ).save( "beanie@4x.png" )
75
+ big_shades.zoom( 4 ).save( "big_shades@4x.png" )
76
+ ```
77
+
78
+ Voila!
79
+
80
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/classic.png)
81
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/crazy_hair.png)
82
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/beanie.png)
83
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/big_shades.png)
84
+
85
+ In 4x:
86
+
87
+
88
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/classic@4x.png)
89
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/crazy_hair@4x.png)
90
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/beanie@4x.png)
91
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/i/big_shades@4x.png)
92
+
93
+ And so on.
94
+
95
+
96
+
97
+ ## Appendix - All Built-In Spritesheet Attributes (24x24px)
98
+
99
+ See the [**spritesheet.csv**](https://github.com/pixelartexchange/pixelart/blob/master/shibainus/config/spritesheet.csv) dataset for all attribute names (w/ categories).
100
+
101
+ ![](https://github.com/pixelartexchange/pixelart/raw/master/shibainus/config/spritesheet.png)
102
+
103
+ (Source: [**shibainus/spritesheet.png**](https://github.com/pixelartexchange/pixelart/blob/master/shibainus/config/spritesheet.png))
104
+
105
+
106
+
107
+
108
+
109
+ ## Questions? Comments?
110
+
111
+ Post them on the [CryptoPunksDev reddit](https://old.reddit.com/r/CryptoPunksDev). Thanks.
data/Rakefile ADDED
@@ -0,0 +1,38 @@
1
+ require 'hoe'
2
+ require './lib/shibainus/version.rb'
3
+
4
+ ###
5
+ # hack/ quick fix for broken intuit_values - overwrite with dummy
6
+ class Hoe
7
+ def intuit_values( input ); end
8
+ end
9
+
10
+
11
+
12
+ Hoe.spec 'shibainus' do
13
+
14
+ self.version = Shibainus::VERSION
15
+
16
+ self.summary = "shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more"
17
+ self.description = summary
18
+
19
+ self.urls = { home: 'https://github.com/pixelartexchange/pixelart' }
20
+
21
+ self.author = 'Gerald Bauer'
22
+ self.email = 'wwwmake@googlegroups.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
+ ['pixelart', '>= 1.3.2'],
30
+ ]
31
+
32
+ self.licenses = ['Public Domain']
33
+
34
+ self.spec_extras = {
35
+ required_ruby_version: '>= 2.3'
36
+ }
37
+
38
+ end
@@ -0,0 +1,23 @@
1
+ id, category, name, more_names
2
+ 0, , classic,
3
+ 1, , dark,
4
+ 2, , zombie,
5
+ 3, , alien,
6
+ 4, , crazyhair,
7
+ 5, , beanie,
8
+ 6, , cap,
9
+ 7, , capforward,
10
+ 8, , cowboyhat,
11
+ 9, , fedora,
12
+ 10, , knittedcap,
13
+ 11, , tophat,
14
+ 12, , bandana,
15
+ 13, , headband,
16
+ 14, , tiara,
17
+ 15, , 3dglasses,
18
+ 16, , bigshades,
19
+ 17, , classicshades,
20
+ 18, , regularshades,
21
+ 19, , smallshades,
22
+ 20, , nerdglasses,
23
+ 21, , eyepatch,
Binary file
@@ -0,0 +1,23 @@
1
+
2
+
3
+ module Shibainus
4
+
5
+ MAJOR = 0
6
+ MINOR = 1
7
+ PATCH = 0
8
+ VERSION = [MAJOR,MINOR,PATCH].join('.')
9
+
10
+ def self.version
11
+ VERSION
12
+ end
13
+
14
+ def self.banner
15
+ "shibainus/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
16
+ end
17
+
18
+ def self.root
19
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
20
+ end
21
+
22
+ end # module Shibainus
23
+
data/lib/shibainus.rb ADDED
@@ -0,0 +1,96 @@
1
+ ## 3rd party
2
+ require 'pixelart/base'
3
+
4
+
5
+
6
+ ## our own code
7
+ require 'shibainus/version' # note: let version always go first
8
+
9
+
10
+ ## forward define superclass for image
11
+ module Shibainus
12
+ class Image < Pixelart::Image; end
13
+ end
14
+
15
+ ###
16
+ ## add convenience pre-configurated generatored with build-in spritesheet (see config)
17
+
18
+ module Shibainus
19
+
20
+ def self.generator
21
+ @generator ||= Pixelart::Generator.new( "#{root}/config/spritesheet.png",
22
+ "#{root}/config/spritesheet.csv",
23
+ width: 24,
24
+ height: 24 )
25
+ end
26
+
27
+
28
+
29
+ class Image
30
+ ## before callback/patch for hats
31
+ BEFORE_PATCH = ->(img, meta) {
32
+ ## hack for doge hats - cut off / clean top (ears)
33
+ if ['beanie',
34
+ 'cap',
35
+ 'capforward',
36
+ 'cowboyhat',
37
+ 'fedora',
38
+ 'bandana',
39
+ 'tophat',
40
+ 'knittedcap'].include?( meta.name )
41
+ puts " apply doge headwear (for hats & more) hack before '#{meta.name}' - wipe-out pixel lines 3,4,5 (top e.g. doge ears)..."
42
+
43
+ ## "wipe-out" pixel lines 3,4,5 (top)
44
+ [3,4,5].each do |y|
45
+ img.width.times do |x|
46
+ img[ x, y ] = 0 # transparent color
47
+ end
48
+ end
49
+ end
50
+ }
51
+
52
+
53
+ def self.generate( *values, background: nil )
54
+
55
+ img = Shibainus.generator.generate( *values,
56
+ background: background,
57
+ before: BEFORE_PATCH )
58
+ ## note: unwrap inner image before passing on to c'tor (requires ChunkyPNG image for now)
59
+ new( 24, 24, img.image )
60
+ end # method Image.generate
61
+ end # class Image
62
+
63
+
64
+ class Spritesheet
65
+ ## note: for now class used for "namespace" only
66
+ def self.find_by( name: ) ## return archetype/attribute image by name
67
+ # note: pass along name as q (query string)
68
+ Shibainus.generator.find( name )
69
+ end
70
+ end # class Spritesheet
71
+ ## add convenience (alternate spelling) alias - why? why not?
72
+ SpriteSheet = Spritesheet
73
+ Sheet = Spritesheet
74
+ Sprite = Spritesheet
75
+ end # module Coolcats
76
+
77
+
78
+ ### add some convenience shortcuts
79
+ ShibaInus = Shibainus
80
+ ## add singular too -why? why not?
81
+ ShibaInu = Shibainus
82
+ Shibainu = Shibainus
83
+ Shiba = Shibainus
84
+ Shib = Shibainus
85
+
86
+ ## add doge alias/shortcut too - why? why not?
87
+ Doge = Shibainus
88
+
89
+
90
+ ###
91
+ # note: for convenience auto include Pixelart namespace!!! - why? why not?
92
+ include Pixelart
93
+
94
+
95
+
96
+ puts Shibainus.banner # say hello
metadata ADDED
@@ -0,0 +1,107 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shibainus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Gerald Bauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-05-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pixelart
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '4.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '7'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '4.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '7'
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.23'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.23'
61
+ description: shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images
62
+ (off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom
63
+ for bigger sizes and more
64
+ email: wwwmake@googlegroups.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files:
68
+ - CHANGELOG.md
69
+ - Manifest.txt
70
+ - README.md
71
+ files:
72
+ - CHANGELOG.md
73
+ - Manifest.txt
74
+ - README.md
75
+ - Rakefile
76
+ - config/spritesheet.csv
77
+ - config/spritesheet.png
78
+ - lib/shibainus.rb
79
+ - lib/shibainus/version.rb
80
+ homepage: https://github.com/pixelartexchange/pixelart
81
+ licenses:
82
+ - Public Domain
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options:
86
+ - "--main"
87
+ - README.md
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '2.3'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubygems_version: 3.3.7
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off
105
+ chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for
106
+ bigger sizes and more
107
+ test_files: []