originals 0.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0dc0b708faa79c717f62c1662f04ca5b3a92ae3af34b2b186917c06e0c671cce
4
- data.tar.gz: 588504c3aeafda0c47c24c34fdbe2a9fefb241c1ac581c31af42ea698c121570
3
+ metadata.gz: c3867e1b818cebd7b9c563808bff7318af27fd681cefde7d52ed39af67ff43ff
4
+ data.tar.gz: e70ff427357f892df830dc343398c34db7640f57eede9951aaf4c8f6bfefc798
5
5
  SHA512:
6
- metadata.gz: 93401936c4cf2bd2a6771e2da58d1db3cd869d1fb9dcd0dc7174525f0ad522e09b49976e432b3dbf9ef44ab3ff1f11894ba1c840093cadb0252efb5871c1269c
7
- data.tar.gz: 99ee16f20effb783d9501202361a85737872f782e75ec96aabdfe36727f58c2b4ac174dc007a48c5a59f16317da340701e6cc81c55953efd29dcd023ca72ae14
6
+ metadata.gz: 9f34ca1a5baa49c374bb4022d8d2c83ee8e2ea78543bca1c050f1fb9252804fed021983427310de65b9dff288a1824aec8ed985f6c4ccaaa6ade0bcda687a2ce
7
+ data.tar.gz: 1be3dd507e1b33b36f1b7b597892f1cd9638038aeeb8a5af69247ae3156a6cf1fef3467b560f4ad8ca1e853001052cbd186b5dfc1ff43358e0478ec7443e5739
data/Manifest.txt CHANGED
@@ -3,5 +3,8 @@ LICENSE.md
3
3
  Manifest.txt
4
4
  README.md
5
5
  Rakefile
6
+ bin/fab
7
+ bin/fabricate
6
8
  lib/originals.rb
9
+ lib/originals/tool.rb
7
10
  lib/originals/version.rb
data/README.md CHANGED
@@ -1,18 +1,252 @@
1
- # Factory of Modern Originals (FOMO)
1
+ # Factory of Modern Originals (FOMO)
2
2
 
3
- Do-It-Yourself (DIY) Yes, You Can! Fab(criate) Your Own Unique (Pixel) Artworks w/ Text Attributes (Via Built-In Spritesheets) Incl. 2X/4X/8X Zoom for Bigger Sizes And More
3
+ originals - do-it-yourself (DIY) - yes, you can! - fab(criate) your own unique (pixel) artworks w/ text attributes (via built-in spritesheets) incl. 2x/4x/8x zoom for bigger sizes and more
4
4
 
5
5
 
6
+ * home :: [github.com/pixelartexchange/originals](https://github.com/pixelartexchange/originals)
7
+ * bugs :: [github.com/pixelartexchange/originals/issues](https://github.com/pixelartexchange/originals/issues)
8
+ * gem :: [rubygems.org/gems/originals](https://rubygems.org/gems/originals)
9
+ * rdoc :: [rubydoc.info/gems/originals](http://rubydoc.info/gems/originals)
6
10
 
7
11
 
8
12
 
9
13
 
14
+ ## Command-Line Usage
10
15
 
11
16
 
17
+ Use the `fab` (or `fabricate`) command line tool. Try:
12
18
 
19
+ ```
20
+ $ fab -h
21
+ ```
13
22
 
23
+ resulting in:
14
24
 
25
+ ```
26
+ Usage: fab [options] name [attribute] ...
27
+ -z, --zoom NUM Zoom factor x2, x4, x8, etc. (default: 1)
28
+ -b, --background, --bg STRING Background (default: transparent)
29
+ -i, --id NUM Unique identifier (default: none)
15
30
 
31
+ -h, --help Prints this help
32
+ ```
16
33
 
17
34
 
18
35
 
36
+ ### Punks (24x24)
37
+
38
+ _Fabricate punk character pixel art originals from text attributes (from scratch / zero) via builtin spritesheet_
39
+
40
+
41
+ Let's try:
42
+
43
+ ```
44
+ $ fab punk alien headband
45
+ ```
46
+
47
+ resulting in:
48
+
49
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk0.png)
50
+
51
+ Let's try the `-z/--zoom` factor 2x, 4x, 8x, etc.:
52
+
53
+ ```
54
+ $ fab --zoom=4 punk alien headband
55
+ # -or-
56
+ $ fab -z4 punk alien headband
57
+ ```
58
+
59
+ resulting in:
60
+
61
+ 4x ![](https://github.com/pixelartexchange/originals/raw/master/i/punk0@4x.png)
62
+
63
+
64
+ Let's try some more:
65
+
66
+ ```
67
+ $ fab punk male3 peak_spike goat horned_rim_glasses
68
+ $ fab punk demon heart_shades
69
+ ```
70
+
71
+ resulting in:
72
+
73
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.png)
74
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk2.png)
75
+
76
+ 4x (using the `--zoom=4`/`-z4` option)
77
+
78
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1@4x.png)
79
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk2@4x.png)
80
+
81
+
82
+
83
+ Let's try the `-b/--background` option with two solid colors
84
+ (e.g. `#638596` and `#ffbf00`) and with the built-in ukraine and pride (rainbow) flag:
85
+
86
+
87
+ ```
88
+ $ fab --background=638596 punk male3 peak_spike goat horned_rim_glasses
89
+ # -or-
90
+ $ fab -b638596 punk male3 peak_spike goat horned_rim_glasses
91
+
92
+ $ fab --background=ffbf00 punk male3 peak_spike goat horned_rim_glasses
93
+ $ fab --background=ukraine punk male3 peak_spike goat horned_rim_glasses
94
+ $ fab --background=pride punk male3 peak_spike goat horned_rim_glasses
95
+ ```
96
+
97
+ resulting in:
98
+
99
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.1.png)
100
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.2.png)
101
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.3.png)
102
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.4.png)
103
+
104
+ 4x (using the `--zoom=4`/`-z4` option)
105
+
106
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.1@4x.png)
107
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.2@4x.png)
108
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.3@4x.png)
109
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/punk1.4@4x.png)
110
+
111
+
112
+
113
+ ### Phunks (24x24)
114
+
115
+ Let's try some left-looking punks also known as Phunks - "hand-phlipped" by Philip the Intern
116
+
117
+ ```
118
+ $ fab phunk male2 spots hoodie
119
+ ```
120
+
121
+ resulting in:
122
+
123
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/phunk0.png)
124
+
125
+ 4x (using the `--zoom=4`/`-z4` option)
126
+
127
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/phunk0@4x.png)
128
+
129
+
130
+
131
+ ### Philips (24x24)
132
+
133
+ Let's try some left-looking philips (pre-configured phunk
134
+ with the built-in attributes: Male 3):
135
+
136
+ ```
137
+ $ fab philip
138
+ $ fab philip jester_hat smile
139
+ ```
140
+
141
+ resulting in:
142
+
143
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/philip0.png)
144
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/philip1.png)
145
+
146
+ 4x (using the `--zoom=4`/`-z4` option)
147
+
148
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/philip0@4x.png)
149
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/philip1@4x.png)
150
+
151
+
152
+
153
+ ### Marilyns (24x24)
154
+
155
+ Let's try some left-looking marilyns (pre-configured phunk
156
+ with the built-in attributes: Female 3, Wild Blonde, Mole, Blue Eye Shadow):
157
+
158
+ ```
159
+ $ fab marilyn
160
+ $ fab marilyn 3d_glasses
161
+ $ fab marilyn flowers earring smile
162
+ $ fab marilyn hot_lipstick big_shades
163
+
164
+ # or with some backgrounds
165
+ $ fab --background=638596 marilyn hot_lipstick big_shades
166
+ $ fab --background=ffbf00 marilyn hot_lipstick big_shades
167
+ $ fab --background=ukraine marilyn hot_lipstick big_shades
168
+ $ fab --background=pride marilyn hot_lipstick big_shades
169
+ ```
170
+
171
+ resulting in:
172
+
173
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn0.png)
174
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn1.png)
175
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn3.png)
176
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.png)
177
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.1.png)
178
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.2.png)
179
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.3.png)
180
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.4.png)
181
+
182
+ 4x (using the `--zoom=4`/`-z4` option)
183
+
184
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn0@4x.png)
185
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn1@4x.png)
186
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn3@4x.png)
187
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.1@4x.png)
188
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.2@4x.png)
189
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.3@4x.png)
190
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/marilyn2.4@4x.png)
191
+
192
+
193
+ ### Shiba Inu Doge (24x24)
194
+
195
+
196
+ Let's try some shiba inu doge - much wow:
197
+
198
+
199
+ ```
200
+ $ fab doge alien headband
201
+ $ fab doge dark tiara big_shades
202
+
203
+ # -or- with some backgrounds
204
+ $ fab --background=638596 doge dark tiara big_shades
205
+ $ fab --background=ffbf00 doge dark tiara big_shades
206
+ $ fab --background=ukraine doge dark tiara big_shades
207
+ $ fab --background=pride doge dark tiara big_shades
208
+ ```
209
+
210
+ resulting in:
211
+
212
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge0.png)
213
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.png)
214
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.1.png)
215
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.2.png)
216
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.3.png)
217
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.4.png)
218
+
219
+ 4x (using the `--zoom=4`/`-z4` option)
220
+
221
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge0@4x.png)
222
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1@4x.png)
223
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.1@4x.png)
224
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.2@4x.png)
225
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.3@4x.png)
226
+ ![](https://github.com/pixelartexchange/originals/raw/master/i/doge1.4@4x.png)
227
+
228
+
229
+
230
+ And so on. Stay tuned for more original artwork series!
231
+
232
+
233
+
234
+
235
+ ## Install
236
+
237
+ Just install the gem:
238
+
239
+ $ gem install originals
240
+
241
+
242
+
243
+ ## License
244
+
245
+ The scripts are dedicated to the public domain.
246
+ Use it as you please with no restrictions whatsoever.
247
+
248
+
249
+ ## Questions? Comments?
250
+
251
+ Post them on the [CryptoPunksDev reddit](https://old.reddit.com/r/CryptoPunksDev). Thanks.
252
+
data/Rakefile CHANGED
@@ -27,6 +27,7 @@ Hoe.spec 'originals' do
27
27
 
28
28
  self.extra_deps = [
29
29
  ['cryptopunks'],
30
+ ['shibainus'],
30
31
  ]
31
32
 
32
33
  self.licenses = ['Public Domain']
data/bin/fab ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ###################
4
+ # == DEV TIPS:
5
+ #
6
+ # For local testing run like:
7
+ #
8
+ # ruby -Ilib bin/fab
9
+ #
10
+ # Set the executable bit in Linux. Example:
11
+ #
12
+ # % chmod a+x bin/fab
13
+ #
14
+
15
+ require 'originals'
16
+
17
+ Originals::Tool.main
data/bin/fabricate ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ###################
4
+ # == DEV TIPS:
5
+ #
6
+ # For local testing run like:
7
+ #
8
+ # ruby -Ilib bin/fabricate
9
+ #
10
+ # Set the executable bit in Linux. Example:
11
+ #
12
+ # % chmod a+x bin/fabricate
13
+ #
14
+
15
+ require 'originals'
16
+
17
+ Originals::Tool.main
@@ -0,0 +1,74 @@
1
+ module Originals
2
+ class Tool
3
+
4
+ def self.main( args=ARGV )
5
+ puts "==> welcome to the fab(ricate) tool with args:"
6
+ pp args
7
+
8
+ options = { }
9
+ parser = OptionParser.new do |opts|
10
+
11
+ opts.on("--zoom NUM", "-z", Integer,
12
+ "Zoom factor x2, x4, x8, etc. (default: 1)") do |num|
13
+ options[ :zoom] = num
14
+ end
15
+
16
+ opts.on("--background STRING", "--bg STRING", "-b", String,
17
+ "Background (default: transparent)") do |str|
18
+ options[ :background] = str
19
+ end
20
+
21
+ opts.on("--id NUM", "-i", Integer,
22
+ "Unique identifier (default: none)") do |str|
23
+ options[ :id] = str
24
+ end
25
+
26
+ opts.on("-h", "--help", "Prints this help") do
27
+ puts opts
28
+ exit
29
+ end
30
+ end
31
+
32
+ parser.parse!( args )
33
+ puts "options:"
34
+ pp options
35
+
36
+ puts "args:"
37
+ pp args
38
+
39
+ if args.size < 1
40
+ puts "!! ERROR - no art series name found - use <name> <attribute>..."
41
+ puts ""
42
+ exit
43
+ end
44
+
45
+ name = args[0] ## todo/check - use collection_name/slug or such?
46
+ attributes = args[1..-1]
47
+
48
+ ## normalize name of series
49
+ ## e.g. Shiba Inu => shibainu etc.
50
+ key = name.downcase.gsub( '[ ()_-]', '' )
51
+
52
+ img = Original::Image.fabricate( key, *attributes,
53
+ background: options[ :background] )
54
+
55
+
56
+ basename = "#{key}#{options[:id]}"
57
+
58
+ path = if options[:zoom]
59
+ img = img.zoom( options[:zoom] )
60
+ "./#{basename}@#{options[:zoom]}x.png"
61
+ else
62
+ "./#{basename}.png"
63
+ end
64
+
65
+ puts " saving original #{name} (#{img.width}x#{img.height}) to >#{path}<..."
66
+ img.save( path )
67
+
68
+ puts "bye"
69
+ end
70
+ end # class Tool
71
+
72
+ end # module Originals
73
+
74
+
@@ -3,8 +3,8 @@
3
3
  module Originals
4
4
 
5
5
  MAJOR = 0
6
- MINOR = 0
7
- PATCH = 1
6
+ MINOR = 1
7
+ PATCH = 0
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
data/lib/originals.rb CHANGED
@@ -1,8 +1,166 @@
1
1
  ## 3rd party libs
2
+ require 'cryptopunks'
3
+ require 'shibainus'
4
+
5
+
2
6
 
3
7
  ## our own code
4
8
  require 'originals/version' # note: let version always go first
5
9
 
6
10
 
11
+ ## forward define superclass for image
12
+ module Originals
13
+ class Image < Pixelart::Image; end
14
+ end
15
+
16
+
17
+ module Originals
18
+
19
+ def self.factory ## "shared" single (default) instance
20
+ @factory ||= Factory.new
21
+ end
22
+
23
+
24
+
25
+ ##
26
+ # "wrap" fabricate inside Image - why? why not?
27
+ class Image
28
+ def self.fabricate( name, *attributes, background: nil ) ## add fac alias - why? why not?
29
+ ## normalize name of series
30
+ ## e.g. Shiba Inu => shibainu etc.
31
+ key = name.downcase.gsub( '[ ()_-]', '' )
32
+
33
+ img = if ['punk', 'punks',
34
+ 'cryptopunk', 'cryptopunks'].include?( key )
35
+ Originals.factory.punk( *attributes, background: background )
36
+ elsif ['phunk', 'phunks',
37
+ 'cryptophunk', 'cryptophunks'].include?( key )
38
+ Originals.factory.phunk( *attributes, background: background )
39
+ elsif ['marilyn', 'marilyns' ].include?( key )
40
+ Originals.factory.marilyn( *attributes, background: background )
41
+ elsif ['philip', 'philips',
42
+ 'philipp', 'philipps' ].include?( key )
43
+ Originals.factory.philip( *attributes, background: background )
44
+ elsif ['doge', 'doges',
45
+ 'shiba', 'shibas',
46
+ 'shibainu', 'shibainus'].include?( key )
47
+ Originals.factory.shiba( *attributes, background: background )
48
+ else
49
+ puts "!! ERROR; don't know how to fabricate >#{name}<; sorry"
50
+ exit 1
51
+ end
52
+ img
53
+ end
54
+ class << self
55
+ alias_method :fab, :fabricate
56
+ end
57
+ end # class Image
58
+
59
+
60
+
61
+
62
+
63
+ class Factory ## add Fabricator/Artist/Artfactory/? alias or such - why? why not?
64
+
65
+ def punk( *attributes, mirror: false, background: nil )
66
+ ## note: if no attributes passed in
67
+ ## default to ['Male 2']
68
+ attributes = ['Male 2'] if attributes.size == 0
69
+
70
+ _generate_punk( *attributes,
71
+ mirror: mirror,
72
+ background: background )
73
+ end
74
+
75
+ def phunk( *attributes, background: nil )
76
+ punk( *attributes,
77
+ mirror: true,
78
+ background: background )
79
+ end
80
+
81
+
82
+ MARILYN_ATTRIBUTES = ['Female 3', 'Wild Blonde', 'Mole',
83
+ 'Blue Eye Shadow']
84
+
85
+ def marilyn( *attributes, background: nil )
86
+ _generate_punk( *MARILYN_ATTRIBUTES,
87
+ *attributes,
88
+ mirror: true,
89
+ background: background )
90
+ end
91
+
92
+
93
+ PHILIP_ATTRIBUTES = ['Male 3']
94
+ def philip( *attributes, background: nil )
95
+ _generate_punk( *PHILIP_ATTRIBUTES,
96
+ *attributes,
97
+ mirror: true,
98
+ background: background )
99
+ end
100
+
101
+
102
+
103
+ def shiba( *attributes, background: nil )
104
+ ## note: if no attributes passed in
105
+ ## default to ['Classic']
106
+ attributes = ['Classic'] if attributes.size == 0
107
+
108
+ doge = Shiba::Image.generate( *attributes )
109
+ doge = _background( doge, background ) if background
110
+ doge
111
+ end
112
+
113
+
114
+ ###
115
+ # helpers
116
+
117
+ def _generate_punk( *attributes,
118
+ mirror: false,
119
+ background: nil )
120
+ punk = Cryptopunks::Image.generate( *attributes )
121
+
122
+ punk = punk.mirror if mirror
123
+ ## note: add background as LAST step (after mirror operation)
124
+ ## that is, if mirror=true background will NOT get mirrored
125
+ punk = _background( punk, background ) if background
126
+ punk
127
+ end
128
+
129
+
130
+ def _background( base, background )
131
+ width, height = base.width, base.height
132
+
133
+ img = if background.is_a?( String ) && ['ua', 'ukraine'].include?( background.downcase )
134
+ Image.new( width, height ).ukraine
135
+ elsif background.is_a?( String ) && ['rainbow', 'pride'].include?( background.downcase )
136
+ Image.new( width, height ).pride
137
+ else
138
+ Image.new( width, width, background )
139
+ end
140
+
141
+ img2 = Image.new( width, width )
142
+ img2.compose!( img )
143
+ img2.compose!( base )
144
+ img2
145
+ end
146
+
147
+ end # class Factory
148
+
149
+
150
+ end # module Originals
151
+
152
+
153
+
154
+
155
+ require 'originals/tool'
156
+
157
+
158
+
159
+ ####
160
+ # convenience aliases / shortcuts / alternate spellings
161
+ Original = Originals
162
+
163
+
164
+
7
165
 
8
166
  puts Originals.banner # say hello
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: originals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-29 00:00:00.000000000 Z
11
+ date: 2022-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cryptopunks
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: shibainus
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'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rdoc
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +76,9 @@ description: originals - Do-It-Yourself (DIY) Yes, You Can! - Factory of Modern
62
76
  (FOMO) - Fab(criate) Your Own Unique (Pixel) Artworks w/ Text Attributes (Via Built-In
63
77
  Spritesheets) Incl. 2X/4X/8X Zoom for Bigger Sizes And More
64
78
  email: wwwmake@googlegroups.com
65
- executables: []
79
+ executables:
80
+ - fab
81
+ - fabricate
66
82
  extensions: []
67
83
  extra_rdoc_files:
68
84
  - CHANGELOG.md
@@ -75,7 +91,10 @@ files:
75
91
  - Manifest.txt
76
92
  - README.md
77
93
  - Rakefile
94
+ - bin/fab
95
+ - bin/fabricate
78
96
  - lib/originals.rb
97
+ - lib/originals/tool.rb
79
98
  - lib/originals/version.rb
80
99
  homepage: https://github.com/pixelartexchange/originals
81
100
  licenses: