fake_picture 0.2.2 → 0.2.6

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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +51 -13
  3. data/lib/fake_picture/avatar/avatar.rb +1 -1
  4. data/lib/fake_picture/blog/blog.rb +1 -1
  5. data/lib/fake_picture/blog/pack/{night_street-1.jpg → preview-1.jpg} +0 -0
  6. data/lib/fake_picture/blog/pack/{night_street-10.jpg → preview-10.jpg} +0 -0
  7. data/lib/fake_picture/blog/pack/{day_street-10.jpg → preview-11.jpg} +0 -0
  8. data/lib/fake_picture/blog/pack/{day_street-1.jpg → preview-12.jpg} +0 -0
  9. data/lib/fake_picture/blog/pack/{day_street-2.jpg → preview-13.jpg} +0 -0
  10. data/lib/fake_picture/blog/pack/{day_street-3.jpg → preview-14.jpg} +0 -0
  11. data/lib/fake_picture/blog/pack/{day_street-4.jpg → preview-15.jpg} +0 -0
  12. data/lib/fake_picture/blog/pack/{day_street-5.jpg → preview-16.jpg} +0 -0
  13. data/lib/fake_picture/blog/pack/{day_street-6.jpg → preview-17.jpg} +0 -0
  14. data/lib/fake_picture/blog/pack/{day_street-7.jpg → preview-18.jpg} +0 -0
  15. data/lib/fake_picture/blog/pack/{day_street-8.jpg → preview-19.jpg} +0 -0
  16. data/lib/fake_picture/blog/pack/{night_street-2.jpg → preview-2.jpg} +0 -0
  17. data/lib/fake_picture/blog/pack/{day_street-9.jpg → preview-20.jpg} +0 -0
  18. data/lib/fake_picture/blog/pack/{night_street-3.jpg → preview-3.jpg} +0 -0
  19. data/lib/fake_picture/blog/pack/{night_street-4.jpg → preview-4.jpg} +0 -0
  20. data/lib/fake_picture/blog/pack/{night_street-5.jpg → preview-5.jpg} +0 -0
  21. data/lib/fake_picture/blog/pack/{night_street-6.jpg → preview-6.jpg} +0 -0
  22. data/lib/fake_picture/blog/pack/{night_street-7.jpg → preview-7.jpg} +0 -0
  23. data/lib/fake_picture/blog/pack/{night_street-8.jpg → preview-8.jpg} +0 -0
  24. data/lib/fake_picture/blog/pack/{night_street-9.jpg → preview-9.jpg} +0 -0
  25. data/lib/fake_picture/people/people.rb +1 -1
  26. data/lib/fake_picture/version.rb +1 -1
  27. data/lib/fake_picture.rb +11 -5
  28. metadata +23 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86f16622bed0099ab513c8cda8c7c5783d78182d10eaf6947ecae457a0bd89e8
4
- data.tar.gz: 579a129524e3fd8d8036eaf0c1f3027ded09256cc07a3e7ebcb35b4b74e50c33
3
+ metadata.gz: a9aee13ffffb6146fb529b09d317c3137e637855ad8bbb573e6c96cc02f3afbf
4
+ data.tar.gz: a8d75765bffbebab69148306c2a6eb10d3cfa4907b81a0977108e317cbb0a886
5
5
  SHA512:
6
- metadata.gz: 31dabf26858c49c204b09e014639dbdefdb43c6c255d5a9a551a847b75ceae9c49b02136b174f3991dcfaa231822739b128217df7e80beed53526e2940249c70
7
- data.tar.gz: 1d3f847dc14a35eec24038296a81932a56fe5dd9b19713240adb19994a7b7860c7de97db6dbeaa43f32f14758c6ac9b3dcc2842d85a6370bc5b1bd47a9c2defe
6
+ metadata.gz: 7a6ccef4cad6746581936e08384d41207318fdf3236c02cc2f52c2527a86842ed75fe8657975cd4ea329d8126071809b88611c43426f77e72577523484afc509
7
+ data.tar.gz: 692c1b965f8adc957ebb06bc38aceabc309379c6e2f9b647e05e9eb2cac34232cd8a5d1cb072dee828e9292de0eec532a4cba02e8e3eb7aab9314848c28f0e0f
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ [![Actions Status](https://github.com/loqimean/fake_picture/actions/workflows/CI.yml/badge.svg)](https://github.com/loqimean/fake_picture/actions)
1
2
 
2
3
  # FakePicture
3
4
 
@@ -24,37 +25,74 @@ Or install it yourself as:
24
25
  ###### FakePicture::Avatar:
25
26
 
26
27
  ```ruby
27
- FakePicture::Avatar.man #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/avatar/pack/man-4.jpg
28
-
29
- FakePicture::Avatar.man_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/avatar/pack/man-2.jpg>
28
+ FakePicture::Avatar.man #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/avatar/pack/man-4.jpg
30
29
 
31
30
  FakePicture::Avatar.woman #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/avatar/pack/woman-4.jpg
31
+ ```
32
32
 
33
- FakePicture::Avatar.woman_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/avatar/pack/woman-2.jpg>
33
+ You can also call method `person` if you want to get random `avatar`:
34
+
35
+ ```ruby
36
+ FakePicture::Avatar.person #=> "/Users/xi-master/Workplace/fake_picture/lib/fake_picture/avatar/pack/woman-5.svg"
34
37
  ```
35
38
 
36
39
  ###### FakePicture::Blog:
37
40
 
38
41
  ```ruby
39
- FakePicture::Blog.day_street #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/blog/pack/day_street-4.jpg
42
+ FakePicture::Blog.preview #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/blog/pack/preview-4.jpg
43
+ ```
40
44
 
41
- FakePicture::Blog.day_street_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/blog/pack/day_street-2.jpg>
45
+ ###### FakePicture::People:
42
46
 
43
- FakePicture::Blog.night_street #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/blog/pack/night_street-4.jpg
47
+ ```ruby
48
+ FakePicture::People.man #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/man-4.jpg
44
49
 
45
- FakePicture::Blog.night_street_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/blog/pack/night_street-2.jpg>
50
+ FakePicture::People.woman #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/woman-4.jpg
46
51
  ```
47
52
 
48
- ###### FakePicture::People:
53
+ #### As file:
54
+
55
+ You can also call a method `file` with method name of this class if you wanna get picture as file for some actions, like this:
49
56
 
50
57
  ```ruby
51
- FakePicture::People.man #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/man-4.jpg
58
+ FakePicture::People.file(:man) #=> #<File:/Users/xi-master/Workplace/fake_picture/lib/fake_picture/avatar/pack/man-6.svg>
59
+ ```
52
60
 
53
- FakePicture::People.man_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/man-2.jpg>
61
+ #### As Base64:
54
62
 
55
- FakePicture::People.woman #=> /Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/woman-4.jpg
63
+ You can also call a method `base64` with a method name of this class if you want to get the picture as a base64 encoded file for might be sending it somewhere, like this:
56
64
 
57
- FakePicture::People.woman_file #=> #<File:/Users/username/workdirectory/fake_picture/lib/fake_picture/people/pack/woman-2.jpg>
65
+ ```ruby
66
+ FakePicture::People.base64(:man) #=> ""/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAwICQoJBwwKCgoNDQwOEh4TEhAQ\nEiQaGxUeKyYtLComKSkvNUQ6L.."
67
+ ```
68
+
69
+ #### In factories:
70
+
71
+ ```ruby
72
+ FactoryBot.define do
73
+ factory :gallery do
74
+ file { FakePicture::Blog.file(:preview) }
75
+ end
76
+ end
77
+ ```
78
+
79
+ #### In specs:
80
+
81
+ ```ruby
82
+ it 'some create user test' do
83
+ post :create, params: {
84
+ user: {
85
+ name: 'John',
86
+ avatar: FakePicture::Avatar.file(:man)
87
+ }
88
+ }
89
+ end
90
+ ```
91
+
92
+ #### In seeds:
93
+
94
+ ```ruby
95
+ User.create(name: 'John', avatar: FakePicture::Avatar.file(:man))
58
96
  ```
59
97
 
60
98
  ## Development
@@ -1,5 +1,5 @@
1
1
  module FakePicture
2
2
  class Avatar < Base
3
- initialize_fake_picture_methods(:man, :woman)
3
+ initialize_methods(:man, :woman, new_random_method_name: :person)
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module FakePicture
2
2
  class Blog < Base
3
- initialize_fake_picture_methods(:day_street, :night_street)
3
+ initialize_methods(:preview)
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module FakePicture
2
2
  class People < Base
3
- initialize_fake_picture_methods(:man, :woman)
3
+ initialize_methods(:man, :woman)
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FakePicture
4
- VERSION = '0.2.2'
4
+ VERSION = '0.2.6'
5
5
  end
data/lib/fake_picture.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'base64'
2
3
 
3
4
  module FakePicture
4
5
  class Base
@@ -11,24 +12,29 @@ module FakePicture
11
12
  end
12
13
 
13
14
  # def download(query)
14
- #TODO: make downloading pictures to gem
15
+ #TODO: make downloading pictures to gem by a service: https://source.unsplash.com/random/<width>x<height>
15
16
  # end
16
17
 
17
- def self.initialize_fake_picture_methods(*method_names)
18
+ def self.initialize_methods(*method_names, new_random_method_name: nil) # from line 17 to 24 make code better
18
19
  path_to_pack = "#{__dir__}/fake_picture/#{self.name.split('::').last.downcase}/pack"
19
20
 
20
21
  self.superclass.check_pack_directory_readiness(path_to_pack)
21
22
 
22
23
  [*method_names, :random].each do |name|
23
24
  selector = name == :random ? '/*' : "/#{name}-*"
25
+ name = new_random_method_name if name == :random && !new_random_method_name.nil?
24
26
 
25
27
  define_singleton_method :"#{name}" do
26
28
  self.superclass.random_file("#{path_to_pack + selector}")
27
29
  end
30
+ end
28
31
 
29
- define_singleton_method :"#{name}_file" do
30
- File.new(self.send(name))
31
- end
32
+ define_singleton_method :file do |method_name|
33
+ File.new(self.send(method_name))
34
+ end
35
+
36
+ define_singleton_method :base64 do |method_name|
37
+ Base64.encode64(File.read(self.send(method_name)))
32
38
  end
33
39
  end
34
40
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_picture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - loqimean
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-02 00:00:00.000000000 Z
11
+ date: 2022-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: debug
@@ -80,26 +80,26 @@ files:
80
80
  - lib/fake_picture/avatar/pack/woman-7.svg
81
81
  - lib/fake_picture/avatar/pack/woman-8.svg
82
82
  - lib/fake_picture/blog/blog.rb
83
- - lib/fake_picture/blog/pack/day_street-1.jpg
84
- - lib/fake_picture/blog/pack/day_street-10.jpg
85
- - lib/fake_picture/blog/pack/day_street-2.jpg
86
- - lib/fake_picture/blog/pack/day_street-3.jpg
87
- - lib/fake_picture/blog/pack/day_street-4.jpg
88
- - lib/fake_picture/blog/pack/day_street-5.jpg
89
- - lib/fake_picture/blog/pack/day_street-6.jpg
90
- - lib/fake_picture/blog/pack/day_street-7.jpg
91
- - lib/fake_picture/blog/pack/day_street-8.jpg
92
- - lib/fake_picture/blog/pack/day_street-9.jpg
93
- - lib/fake_picture/blog/pack/night_street-1.jpg
94
- - lib/fake_picture/blog/pack/night_street-10.jpg
95
- - lib/fake_picture/blog/pack/night_street-2.jpg
96
- - lib/fake_picture/blog/pack/night_street-3.jpg
97
- - lib/fake_picture/blog/pack/night_street-4.jpg
98
- - lib/fake_picture/blog/pack/night_street-5.jpg
99
- - lib/fake_picture/blog/pack/night_street-6.jpg
100
- - lib/fake_picture/blog/pack/night_street-7.jpg
101
- - lib/fake_picture/blog/pack/night_street-8.jpg
102
- - lib/fake_picture/blog/pack/night_street-9.jpg
83
+ - lib/fake_picture/blog/pack/preview-1.jpg
84
+ - lib/fake_picture/blog/pack/preview-10.jpg
85
+ - lib/fake_picture/blog/pack/preview-11.jpg
86
+ - lib/fake_picture/blog/pack/preview-12.jpg
87
+ - lib/fake_picture/blog/pack/preview-13.jpg
88
+ - lib/fake_picture/blog/pack/preview-14.jpg
89
+ - lib/fake_picture/blog/pack/preview-15.jpg
90
+ - lib/fake_picture/blog/pack/preview-16.jpg
91
+ - lib/fake_picture/blog/pack/preview-17.jpg
92
+ - lib/fake_picture/blog/pack/preview-18.jpg
93
+ - lib/fake_picture/blog/pack/preview-19.jpg
94
+ - lib/fake_picture/blog/pack/preview-2.jpg
95
+ - lib/fake_picture/blog/pack/preview-20.jpg
96
+ - lib/fake_picture/blog/pack/preview-3.jpg
97
+ - lib/fake_picture/blog/pack/preview-4.jpg
98
+ - lib/fake_picture/blog/pack/preview-5.jpg
99
+ - lib/fake_picture/blog/pack/preview-6.jpg
100
+ - lib/fake_picture/blog/pack/preview-7.jpg
101
+ - lib/fake_picture/blog/pack/preview-8.jpg
102
+ - lib/fake_picture/blog/pack/preview-9.jpg
103
103
  - lib/fake_picture/people/pack/man-1.jpg
104
104
  - lib/fake_picture/people/pack/man-10.jpg
105
105
  - lib/fake_picture/people/pack/man-2.jpg
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.2.3
147
+ rubygems_version: 3.3.7
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: fake pictures