klear 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +44 -0
- data/Guardfile +8 -0
- data/Rakefile +2 -0
- data/bin/klear.rb +60 -0
- data/klear.gemspec +41 -0
- data/lib/klear.rb +7 -0
- data/lib/klear/file_generator.rb +160 -0
- data/lib/klear/version.rb +4 -0
- data/spec/fixtures/black_to_white_linear.kle +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00129.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00130.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00131.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00132.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00133.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00134.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00135.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00136.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00137.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00138.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00139.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00140.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00141.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00142.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00143.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00144.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00145.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00146.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00147.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00148.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00149.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00150.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00151.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00152.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00153.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00154.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00155.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00156.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00157.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00158.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00159.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00160.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00161.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00162.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00163.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00164.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00165.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00166.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00167.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00168.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00169.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00170.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00171.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00172.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00173.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00174.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00175.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00176.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00177.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00178.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00179.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00180.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00181.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00182.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00183.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00184.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00185.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00186.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00187.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00188.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00189.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00190.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00191.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00192.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00193.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00194.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00195.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00196.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00197.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00198.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00199.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00200.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00201.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00202.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00203.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00204.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00205.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00206.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00207.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00208.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00209.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00210.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00211.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00212.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00213.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00214.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00215.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00216.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00217.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00218.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00219.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00220.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00221.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00222.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00223.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00224.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00225.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00226.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00227.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00228.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00229.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00230.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00231.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00232.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00233.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00234.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00235.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00236.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00237.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00238.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00239.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00240.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00241.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00242.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00243.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00244.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00245.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00246.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00247.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00248.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00249.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00250.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00251.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00252.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00253.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00254.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00255.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00256.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00257.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00258.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00259.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00260.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00261.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00262.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00263.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00264.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00265.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00266.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00267.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00268.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00269.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00270.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00271.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00272.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00273.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00274.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00275.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00276.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00277.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00278.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00279.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00280.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00281.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00282.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00283.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00284.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00285.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00286.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00287.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00288.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00289.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00290.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00291.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00292.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00293.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00294.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00295.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00296.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00297.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00298.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00299.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00300.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00301.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00302.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00303.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00304.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00305.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00306.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00307.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00308.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00309.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00310.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00311.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00312.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00313.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00314.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00315.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00316.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00317.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00318.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00319.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00320.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00321.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00322.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00323.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00324.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00325.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00326.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00327.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00328.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00329.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00330.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00331.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00332.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00333.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00334.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00335.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00336.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00337.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00338.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00339.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00340.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00341.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00342.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00343.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00344.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00345.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00346.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00347.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00348.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00349.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00350.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00351.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00352.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00353.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00354.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00355.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00356.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00357.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00358.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00359.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00360.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00361.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00362.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00363.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00364.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00365.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00366.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00367.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00368.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00369.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00370.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00371.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00372.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00373.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00374.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00375.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00376.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00377.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00378.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00379.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00380.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00381.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00382.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00383.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00384.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00385.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00386.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00387.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00388.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00389.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00390.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00391.png +0 -0
- data/spec/fixtures/kle_generate/Waves/Waves_00392.png +0 -0
- data/spec/fixtures/kle_generate/simple_Waves/Waves_00129.png +0 -0
- data/spec/fixtures/kle_generate/simple_Waves/Waves_00130.png +0 -0
- data/spec/fixtures/kle_generate/test/1.png +0 -0
- data/spec/fixtures/test.kle +0 -0
- data/spec/fixtures/test_without_gamma_and_fps.kle +0 -0
- data/spec/fixtures/wave.kle +0 -0
- data/spec/lib/klear/file_generator_spec.rb +81 -0
- data/spec/spec_helper.rb +19 -0
- metadata +715 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
klear (0.0.1)
|
5
|
+
applix
|
6
|
+
bindata
|
7
|
+
rubyzip
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
applix (0.4.10)
|
13
|
+
daemons
|
14
|
+
bindata (1.5.0)
|
15
|
+
daemons (1.1.9)
|
16
|
+
diff-lcs (1.1.3)
|
17
|
+
guard (1.3.2)
|
18
|
+
listen (>= 0.4.2)
|
19
|
+
thor (>= 0.14.6)
|
20
|
+
guard-rspec (1.2.1)
|
21
|
+
guard (>= 1.1)
|
22
|
+
listen (0.5.0)
|
23
|
+
rb-fsevent (0.9.3)
|
24
|
+
rspec (2.11.0)
|
25
|
+
rspec-core (~> 2.11.0)
|
26
|
+
rspec-expectations (~> 2.11.0)
|
27
|
+
rspec-mocks (~> 2.11.0)
|
28
|
+
rspec-core (2.11.1)
|
29
|
+
rspec-expectations (2.11.3)
|
30
|
+
diff-lcs (~> 1.1.3)
|
31
|
+
rspec-mocks (2.11.2)
|
32
|
+
rubyzip (0.9.9)
|
33
|
+
thor (0.16.0)
|
34
|
+
|
35
|
+
PLATFORMS
|
36
|
+
java
|
37
|
+
ruby
|
38
|
+
|
39
|
+
DEPENDENCIES
|
40
|
+
guard
|
41
|
+
guard-rspec
|
42
|
+
klear!
|
43
|
+
rb-fsevent (~> 0.9.1)
|
44
|
+
rspec
|
data/Guardfile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Guardfile info at: https://github.com/guard/guard#readme
|
2
|
+
|
3
|
+
guard 'rspec', all_on_start: true, cli: '--format nested --color' do
|
4
|
+
watch(%r{^spec/.+_spec\.rb$})
|
5
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
6
|
+
watch('spec/spec_helper.rb') { "spec" }
|
7
|
+
watch('lib/klear.rb') { "spec" }
|
8
|
+
end
|
data/Rakefile
ADDED
data/bin/klear.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'applix'
|
6
|
+
|
7
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
8
|
+
require 'klear'
|
9
|
+
|
10
|
+
def usage
|
11
|
+
puts <<HELP
|
12
|
+
klear usage
|
13
|
+
|
14
|
+
klear --help
|
15
|
+
* this help
|
16
|
+
klear [OPTIONS] generate <path_to_png_folder> <kle-file>
|
17
|
+
* Generates kle file from png_folder
|
18
|
+
klear [OPTIONS] regenerate <kle-file>
|
19
|
+
* Regenerates kle file's cache
|
20
|
+
klear info <kle-file>
|
21
|
+
* Produces report on a kle file.
|
22
|
+
|
23
|
+
OPTIONS
|
24
|
+
-- silent:[true/false] - default false
|
25
|
+
HELP
|
26
|
+
#'
|
27
|
+
|
28
|
+
exit
|
29
|
+
end
|
30
|
+
|
31
|
+
Defaults = {
|
32
|
+
silent: false,
|
33
|
+
fps: 25,
|
34
|
+
gamma: 1.0
|
35
|
+
}
|
36
|
+
|
37
|
+
Applix.main(ARGV, Defaults) do
|
38
|
+
prolog do |_, opts|
|
39
|
+
opts[:help] and usage
|
40
|
+
@app = Klear::FileGenerator.new(opts)
|
41
|
+
end
|
42
|
+
|
43
|
+
handle(:generate) do |*args, opts|
|
44
|
+
(1 < args.size) or usage
|
45
|
+
@app.generate(*args)
|
46
|
+
end
|
47
|
+
|
48
|
+
handle(:regenerate) do |*args, opts|
|
49
|
+
(0 < args.size) or usage
|
50
|
+
@app.regenerate(*args)
|
51
|
+
end
|
52
|
+
|
53
|
+
# handle(:info) do |*args, opts|
|
54
|
+
# (0 < args.size) or usage
|
55
|
+
# choreograhpy = Klear::Choreography.load args[0]
|
56
|
+
# puts choreograhpy.info
|
57
|
+
# end
|
58
|
+
|
59
|
+
handle(:any) {|_, _| usage}
|
60
|
+
end
|
data/klear.gemspec
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require 'klear/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'klear'
|
7
|
+
s.version = Klear::VERSION
|
8
|
+
s.date = Klear::DATE
|
9
|
+
s.authors = ['art+com/dirk luesebrink']
|
10
|
+
s.email = ['dirk.luesebrink@artcom.de']
|
11
|
+
s.homepage = 'http://www.artcom.de/en/projects/project/detail/manta-rhei/'
|
12
|
+
s.summary = 'create, manage and play choreographies and atrificial light patterns on the Manta Rhei'
|
13
|
+
s.description = %q{
|
14
|
+
kinetic light engine by art+com. Create, manage and play choreographies and
|
15
|
+
artificial light patterns on the Manta Rhei
|
16
|
+
}
|
17
|
+
s.add_dependency 'applix'
|
18
|
+
s.add_dependency 'rubyzip'
|
19
|
+
s.add_dependency 'bindata'
|
20
|
+
|
21
|
+
s.add_development_dependency 'rspec'
|
22
|
+
#s.add_development_dependency 'rspec-mocks'
|
23
|
+
s.add_development_dependency 'guard'
|
24
|
+
s.add_development_dependency 'guard-rspec'
|
25
|
+
#s.add_development_dependency 'growl'
|
26
|
+
#s.add_development_dependency 'ruby-prof'
|
27
|
+
s.add_development_dependency 'rb-fsevent', '~>0.9.1'
|
28
|
+
|
29
|
+
if RUBY_PLATFORM.match /java/i
|
30
|
+
#s.add_development_dependency 'ruby-debug'
|
31
|
+
else
|
32
|
+
s.add_development_dependency 'debugger'
|
33
|
+
end
|
34
|
+
|
35
|
+
s.files = `git ls-files`.split("\n")
|
36
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
37
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map do |f|
|
38
|
+
File.basename(f)
|
39
|
+
end
|
40
|
+
s.require_paths = ["lib"]
|
41
|
+
end
|
data/lib/klear.rb
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
# TODO maybe use Zip::ZipOutputStream for generating the zip first in-memory?
|
2
|
+
# TODO extract java/jruby specific stuff
|
3
|
+
|
4
|
+
class Klear::FileGenerator
|
5
|
+
|
6
|
+
def initialize options = {}
|
7
|
+
@png_path = nil
|
8
|
+
@kle_path = nil
|
9
|
+
@fps = 25
|
10
|
+
if options.has_key? :fps
|
11
|
+
@fps = options[:fps]
|
12
|
+
end
|
13
|
+
@gamma = 1.0
|
14
|
+
if options.has_key? :gamma
|
15
|
+
@gamma = options[:gamma]
|
16
|
+
end
|
17
|
+
@geometry = nil
|
18
|
+
@raw_frame_values = []
|
19
|
+
@kle_file = nil
|
20
|
+
@silent = true
|
21
|
+
if options.has_key? :silent
|
22
|
+
@silent = !!options[:silent]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def load
|
27
|
+
Zip::ZipFile.open(@kle_path) { |kle|
|
28
|
+
@kle_file = kle
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
def write
|
33
|
+
Zip::ZipFile.open(@kle_path, Zip::ZipFile::CREATE) { |kle|
|
34
|
+
@kle_file = kle
|
35
|
+
add_pngs
|
36
|
+
regenerate_cache
|
37
|
+
|
38
|
+
# Meta
|
39
|
+
kle.mkdir('META-INF')
|
40
|
+
kle.file.open("META-INF/MANIFEST.MF", "w") do |os|
|
41
|
+
os.write <<-MANIFEST
|
42
|
+
Manifest-Version: 1.0
|
43
|
+
|
44
|
+
Kle-Version: 1.0
|
45
|
+
Created-By: #{__FILE__} (#{Klear::VERSION})
|
46
|
+
Generated-At: #{Time.now}
|
47
|
+
|
48
|
+
MANIFEST
|
49
|
+
end
|
50
|
+
kle.file.open("META-INF/kle.yml", "w") { |os|
|
51
|
+
os.write({
|
52
|
+
"geometry" => @geometry,
|
53
|
+
"gamma" => @gamma,
|
54
|
+
"fps" => @fps
|
55
|
+
}.to_yaml)
|
56
|
+
}
|
57
|
+
}
|
58
|
+
end
|
59
|
+
|
60
|
+
def generate thePngPath, theKleFile
|
61
|
+
@png_path = thePngPath
|
62
|
+
@kle_path = theKleFile
|
63
|
+
if File.exists? @kle_path
|
64
|
+
raise "File #{@kle_path} already exists"
|
65
|
+
end
|
66
|
+
write
|
67
|
+
report
|
68
|
+
end
|
69
|
+
|
70
|
+
def report
|
71
|
+
report = <<-REPORT
|
72
|
+
|
73
|
+
Input Directory : '#{@png_path}'
|
74
|
+
Output KleFile : '#{@kle_path}'
|
75
|
+
|
76
|
+
Details:
|
77
|
+
* number of [png files|frames]: #{@kle_file.dir.entries("/frames").size}
|
78
|
+
* fps: #{@fps}
|
79
|
+
* gamma : #{@gamma}
|
80
|
+
* geometry : #{@geometry}
|
81
|
+
|
82
|
+
REPORT
|
83
|
+
puts report if !@silent
|
84
|
+
end
|
85
|
+
|
86
|
+
def regenerate theKleFile
|
87
|
+
@kle_path = theKleFile
|
88
|
+
load
|
89
|
+
regenerate_cache
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def add_pngs
|
95
|
+
@kle_file.mkdir('frames')
|
96
|
+
Dir.glob("#{@png_path}/*.png") do |file|
|
97
|
+
puts " * adding png file '#{file}' to '#{@kle_path}'" if !@silent
|
98
|
+
@kle_file.add("frames/#{File.basename(file)}", file)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def regenerate_cache
|
103
|
+
puts "regenerating cache..." if !@silent
|
104
|
+
if @kle_file.dir.entries("/").include?("cache")
|
105
|
+
@kle_file.dir.rmdir('cache')
|
106
|
+
end
|
107
|
+
@kle_file.dir.mkdir('cache')
|
108
|
+
if @raw_frame_values.empty?
|
109
|
+
analyze_images
|
110
|
+
end
|
111
|
+
@kle_file.file.open("cache/frames.bin", "wb") { |os|
|
112
|
+
arr = BinData::Array.new(:type => :uint16be)
|
113
|
+
arr.assign @raw_frame_values
|
114
|
+
arr.write(os)
|
115
|
+
}
|
116
|
+
@kle_file.commit
|
117
|
+
end
|
118
|
+
|
119
|
+
if RUBY_PLATFORM.match /java/i
|
120
|
+
include Java
|
121
|
+
import 'javax.media.jai.JAI'
|
122
|
+
import 'com.sun.media.jai.codec.ByteArraySeekableStream'
|
123
|
+
|
124
|
+
def analyze_images
|
125
|
+
@kle_file.dir.entries("/frames").each { |png|
|
126
|
+
puts "analyzing image file '#{png}'" if !@silent
|
127
|
+
seekable = ByteArraySeekableStream.new(@kle_file.file.read("/frames/#{png}").to_java_bytes)
|
128
|
+
image = JAI.create("stream", seekable)
|
129
|
+
@raw_frame_values = @raw_frame_values + analyze_image(image)
|
130
|
+
}
|
131
|
+
end
|
132
|
+
|
133
|
+
def analyze_image image
|
134
|
+
if !@geometry
|
135
|
+
@geometry = { :columns => image.width / 10,
|
136
|
+
:rows => image.height / 10 }
|
137
|
+
puts "Determined geometry: #{@geometry.inspect}" if !@silent
|
138
|
+
end
|
139
|
+
|
140
|
+
raster = image.getData
|
141
|
+
bytes = []
|
142
|
+
(0...@geometry[:rows]).to_a.reverse!.each { |row|
|
143
|
+
(0...@geometry[:columns]).each { |col|
|
144
|
+
myPixelY = 5 + 10 * (row)
|
145
|
+
myPixelX = 5 + 10 * (col)
|
146
|
+
myPickedValue = raster.getPixel(myPixelX, myPixelY, nil)[0].to_i
|
147
|
+
#puts "value at (col #{col}, #{@geometry[:rows] - row - 1}) - pixel-coords: (#{myPixelX}, #{myPixelY}) => #{myPickedValue}"
|
148
|
+
bytes << myPickedValue
|
149
|
+
}
|
150
|
+
}
|
151
|
+
bytes
|
152
|
+
end
|
153
|
+
|
154
|
+
else # NOT JAVA!
|
155
|
+
def analyze_images
|
156
|
+
raise "use JRUBY to run this script with #analyse_images support"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|