shibainus 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []