cryptopunks-gui 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41332d4eb8f4427149280fd075b456ace5f882ec6acd9d794a052d66747b5ab4
4
- data.tar.gz: b52e82c7789dd198ee4925db7b1f59cfc99fae0e11b7d1d577ffa1e7190ddd6c
3
+ metadata.gz: 697c564d1fcf6db201efa8144a72df008861afc9cb0dad432b6554610acf7a41
4
+ data.tar.gz: b500b6957a6f03f5cf0d82acb3354ceeb8bdce676283431d3803b8f6a4cbe79b
5
5
  SHA512:
6
- metadata.gz: 50ead25c82393bfb068c411b17edd7a64bf5eb943fae3f74094ae25766e5600d07949f85f283c4869777645a2b05bc85efce4a3d3e0eb241c218e5d063cc0341
7
- data.tar.gz: 4f18e99c50b31cb823ea68e8239c78a30d0ed6428b9199aa8300eaf747a503499a2c321dd552ff3d0f039c525babb6d9b832066da5ff200774160b65f8f742ef
6
+ metadata.gz: 88ae74464c874aac202584de37a467082bc2c32c98a503abf84ee34ed53f75a1ef337f97588bf04cfa7ccbc4bfa00fcd49881fe1d64a64525c4ce2f3bebf0146
7
+ data.tar.gz: adfcd69acbcd13814d9102038781b8550cf8488a5f9f8f009ec466e48274d154dcbfc75bc7946ddc41e3c8c109ea8bed6a655aaa703d2a86d9e2c80caab58944
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.0.7
4
+
5
+ - Multiple Punk Collections (https://github.com/cryptopunksnotdead/awesome-24px)
6
+
3
7
  ## 0.0.6
4
8
 
5
9
  - Provide option to change output location
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
- # <img src="https://raw.githubusercontent.com/AndyObtiva/cryptopunks-gui/master/icons/cryptopunks-gui.png" height=85 /> CryptoPunks GUI 0.0.6
1
+ # <img src="https://raw.githubusercontent.com/AndyObtiva/cryptopunks-gui/master/icons/cryptopunks-gui.png" height=85 /> CryptoPunks GUI 0.0.7
2
2
  ## Simplified Minting
3
3
  [![Gem Version](https://badge.fury.io/rb/cryptopunks-gui.svg)](http://badge.fury.io/rb/cryptopunks-gui)
4
4
 
5
5
  This is a Graphical User Interface for the famous [cryptopunks Ruby gem](https://github.com/cryptopunksnotdead/cryptopunks/tree/master/cryptopunks).
6
6
 
7
- It automatically downloads `punks.png` from https://github.com/larvalabs/cryptopunks on first use.
7
+ It automatically downloads image collection sprites on first use (e.g. `punks.png` from https://github.com/larvalabs/cryptopunks).
8
8
 
9
- Minted cryptopunks are stored at `~/.cryptopunks/`.
9
+ Minted cryptopunks are stored at `~/cryptopunks/` by default ([output location can be changed](#output-location)).
10
10
 
11
11
  ![Screenshot](/screenshots/cryptopunks-gui-screenshot.png)
12
12
 
@@ -25,7 +25,7 @@ You can use CryptoPunks GUI via gem or via cloning repository.
25
25
  Run:
26
26
 
27
27
  ```
28
- gem install cryptopunks-gui -v0.0.6
28
+ gem install cryptopunks-gui -v0.0.7
29
29
  ```
30
30
 
31
31
  Afterwards, run app via:
@@ -69,9 +69,61 @@ ruby app/cryptopunks_gui.rb
69
69
 
70
70
  ## Instructions
71
71
 
72
- ### Punk Index
73
-
74
- Change punk index to pick a different punk.
72
+ ### Collection
73
+
74
+ Change collection to pick a different collection of images.
75
+
76
+ There are currently 73 available collections (from https://github.com/cryptopunksnotdead/awesome-24px):
77
+ - Punks
78
+ - Mohawks
79
+ - Blondies
80
+ - Zombies
81
+ - Apes
82
+ - Aliens
83
+ - Golden Punks
84
+ - Halloween Punks
85
+ - Front Punks
86
+ - More Punks
87
+ - Expansion Punks
88
+ - Avalanche Punks
89
+ - Intl Punks
90
+ - Ape Punks
91
+ - Alien Clan
92
+ - Bored Apes Blue
93
+ - Bored Apes Red
94
+ - Bored Apes Neon Glow
95
+ - Bored Apes Stars and Stripes
96
+ - Bored Apes Acid
97
+ - Cool Cats
98
+ - Cool Cats Mohawks
99
+ - Cool Cats Ninjas
100
+ - Cool Cats TV Heads
101
+ - Cool Cats Pirates
102
+ - Cool Cats Unicorns
103
+ - Cool Cats Dragons
104
+ - Cool Cats Frogs
105
+ - Pudgy Penguins
106
+ - Dodge
107
+ - Rocks
108
+ - Punk Rocks
109
+ - Tulips
110
+
111
+
112
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-zombies.png)
113
+
114
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-apes.png)
115
+
116
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-alien-clasn.png)
117
+
118
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-bored-apes-stars-and-stripes.png)
119
+
120
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-cool-cats-ninjas.png)
121
+
122
+ ![Screenshot](/screenshots/cryptopunks-gui-screenshot-collection-dodge.png)
123
+
124
+ ### Image Index
125
+
126
+ Change image index to pick a different image.
75
127
 
76
128
  ![Screenshot](/screenshots/cryptopunks-gui-screenshot-different-punk-index.png)
77
129
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
@@ -13,19 +13,59 @@ class CryptopunksGui
13
13
 
14
14
  PALETTES = ['Standard'] + (Palette8bit.constants).map(&:name).map {|palette| palette.split('_').map(&:capitalize).join(' ')}.reject { |palette| palette.include?(' ') }.sort
15
15
  STYLES = ['Normal', 'Led', 'Sketch']
16
+ COLLECTION_URL_MAP = {
17
+ 'Punks' => 'https://raw.githubusercontent.com/larvalabs/cryptopunks/master/punks.png',
18
+ 'Mohawks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/mohawks.png',
19
+ 'Blondies' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/blondies.png',
20
+ 'Zombies' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/zombies.png',
21
+ 'Apes' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/apes.png',
22
+ 'Aliens' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/aliens.png',
23
+ 'Golden Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/goldenpunks.png',
24
+ 'Halloween Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/halloweenpunks.png',
25
+ 'Front Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/frontpunks.png',
26
+ 'More Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/morepunks.png',
27
+ 'Expansion Punks' => 'https://expansionpunks.com/provenance/expansionpunks.png',
28
+ 'Avalanche Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/avalanchepunks.png',
29
+ 'Intl Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/intlpunks.png',
30
+ 'Ape Punks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/apepunks.png',
31
+ 'Alien Clan' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/alienclan.png',
32
+ 'Bored Apes Blue' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_blue.png',
33
+ 'Bored Apes Red' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_red.png',
34
+ 'Bored Apes Neon Glow' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_neon_glow.png',
35
+ 'Bored Apes Stars and Stripes' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_stars_and_stripes.png',
36
+ 'Bored Apes Acid' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/boredapes_acid.png',
37
+ 'Cool Cats' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats.png',
38
+ 'Cool Cats Mohawks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_mohawks.png',
39
+ 'Cool Cats Ninjas' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_ninjas.png',
40
+ 'Cool Cats TV Heads' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_tvheads.png',
41
+ 'Cool Cats Pirates' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_pirates.png',
42
+ 'Cool Cats Unicorns' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_unicorns.png',
43
+ 'Cool Cats Dragons' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_dragons.png',
44
+ 'Cool Cats Frogs' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/coolcats_frogs.png',
45
+ 'Pudgy Penguins' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/pudgypenguins.png',
46
+ 'Dodge' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/dodge.png',
47
+ 'Rocks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/rocks.png',
48
+ 'Punk Rocks' => 'https://raw.githubusercontent.com/cryptopunksnotdead/programming-cryptopunks/master/i/punkrocks.png',
49
+ 'Tulips' => 'https://raw.githubusercontent.com/cryptopunksnotdead/awesome-24px/master/collection/tulips.png',
50
+ }
16
51
 
17
- attr_accessor :punk_index, :zoom, :palette, :style, :led_spacing, :led_round_corner, :sketch_line, :flip, :mirror
52
+ attr_accessor :collection, :image_index, :zoom, :palette, :style, :led_spacing, :led_round_corner, :sketch_line, :flip, :mirror
18
53
 
19
54
  def initialize
20
- initialize_punks
55
+ initialize_punk_directory
56
+ initialize_collection
21
57
  load_config
22
58
  initialize_defaults
23
59
  observe_image_attribute_changes
24
60
  create_gui
25
- self.punk_index = 0
61
+ self.image_index = 0
26
62
  @root.open
27
63
  end
28
64
 
65
+ def collection_options
66
+ COLLECTION_URL_MAP.keys
67
+ end
68
+
29
69
  def palette_options
30
70
  PALETTES
31
71
  end
@@ -34,16 +74,26 @@ class CryptopunksGui
34
74
  STYLES
35
75
  end
36
76
 
37
- def initialize_punks
38
- @punk_directory = File.join(Dir.home, 'cryptopunks')
77
+ def initialize_punk_directory
78
+ @punk_directory = @punk_config_directory = File.join(Dir.home, 'cryptopunks')
39
79
  FileUtils.mkdir_p(@punk_directory)
40
- @punk_file = File.join(@punk_directory, 'punks.png')
41
- File.write(@punk_file, Net::HTTP.get(URI('https://raw.githubusercontent.com/larvalabs/cryptopunks/master/punks.png'))) unless File.exist?(@punk_file)
42
- @punks = Punks::Image::Composite.read(@punk_file)
80
+ end
81
+
82
+ def initialize_collection
83
+ return if @collection && @collection == @last_collection
84
+ @collection ||= COLLECTION_URL_MAP.keys.first
85
+ url = COLLECTION_URL_MAP[@collection]
86
+ @punk_file = File.join(@punk_config_directory, File.basename(url, '.png'))
87
+ File.write(@punk_file, Net::HTTP.get(URI(url))) unless File.exist?(@punk_file)
88
+ @images ||= {}
89
+ @images[@collection] ||= Punks::Image::Composite.read(@punk_file)
90
+ @last_collection = @collection
91
+ self.image_index = 0
92
+ @image_index_spinbox.to = @images[@collection].size - 1 if @image_index_spinbox
43
93
  end
44
94
 
45
95
  def load_config
46
- @punk_config_file = File.join(@punk_directory, 'cryptopunks.yml')
96
+ @punk_config_file = File.join(@punk_config_directory, 'cryptopunks.yml')
47
97
  FileUtils.touch(@punk_config_file)
48
98
  @punk_config = YAML.load(File.read(@punk_config_file)) || {punk_directory: @punk_directory}
49
99
  @punk_directory = @punk_config[:punk_directory]
@@ -54,6 +104,7 @@ class CryptopunksGui
54
104
  end
55
105
 
56
106
  def initialize_defaults
107
+ @collection = COLLECTION_URL_MAP.keys.first
57
108
  @zoom = 12
58
109
  @palette = PALETTES.first
59
110
  @style = STYLES.first
@@ -66,7 +117,8 @@ class CryptopunksGui
66
117
 
67
118
  def observe_image_attribute_changes
68
119
  observer = Glimmer::DataBinding::Observer.proc { generate_image }
69
- observer.observe(self, :punk_index)
120
+ observer.observe(self, :collection)
121
+ observer.observe(self, :image_index)
70
122
  observer.observe(self, :zoom)
71
123
  observer.observe(self, :palette)
72
124
  observer.observe(self, :style)
@@ -78,10 +130,11 @@ class CryptopunksGui
78
130
  end
79
131
 
80
132
  def generate_image
81
- return if @punk_index.to_i > @punks.size
82
- image_location = File.join(@punk_directory, "punk-#{@punk_index}#{"x#{@zoom}" if @zoom.to_i > 1}#{"-#{@palette.underscore}" if @palette != PALETTES.first}#{"-#{@style.underscore}" if @style != STYLES.first}.png")
133
+ initialize_collection
134
+ return if @image_index.to_i > @images[@collection].size
135
+ image_location = File.join(@punk_directory, "#{@collection.gsub(' ', '').downcase}-#{@image_index}#{"x#{@zoom}" if @zoom.to_i > 1}#{"-#{@palette.underscore}" if @palette != PALETTES.first}#{"-#{@style.underscore}" if @style != STYLES.first}.png")
83
136
  puts "Writing punk image to #{image_location}"
84
- selected_punk = @punks[@punk_index.to_i]
137
+ selected_punk = @images[@collection][@image_index.to_i]
85
138
  selected_punk = selected_punk.change_palette8bit(Palette8bit.const_get(@palette.gsub(' ', '_').upcase.to_sym)) if @palette != PALETTES.first
86
139
  @original_zoom = @zoom
87
140
  if @style != STYLES.first
@@ -112,12 +165,20 @@ class CryptopunksGui
112
165
 
113
166
  frame {
114
167
  label {
115
- text 'Punk Index:'
168
+ text 'Collection:'
116
169
  }
117
- spinbox {
170
+ combobox {
171
+ readonly true
172
+ text <=> [self, :collection]
173
+ }
174
+
175
+ label {
176
+ text 'Image Index:'
177
+ }
178
+ @image_index_spinbox = spinbox {
118
179
  from 0
119
- to @punks.size - 1
120
- text <=> [self, :punk_index]
180
+ to @images[@collection].size - 1
181
+ text <=> [self, :image_index]
121
182
  }
122
183
 
123
184
  label {
@@ -188,7 +249,7 @@ class CryptopunksGui
188
249
  @output_location_entry = entry {
189
250
  grid row: 0, column: 0
190
251
  readonly true
191
- width 35
252
+ width 47
192
253
  }
193
254
  button {
194
255
  grid row: 0, column: 1
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: cryptopunks-gui 0.0.6 ruby app
5
+ # stub: cryptopunks-gui 0.0.7 ruby app
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "cryptopunks-gui".freeze
9
- s.version = "0.0.6"
9
+ s.version = "0.0.7"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["app".freeze]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptopunks-gui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh