cryptopunks-gui 0.0.6 → 0.0.7

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