ires 1.1.0 → 1.3.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
  SHA1:
3
- metadata.gz: 33c82f6045075a2fdb97d1ad5dc19194b899792d
4
- data.tar.gz: 3152843aadd1e7fff8882e64b62f9f9a730bcc29
3
+ metadata.gz: 2042998a8a99e30b9d328bfb4e52993d2234fa18
4
+ data.tar.gz: a67df3fd4e441d1fa4314a2ab5008fe025016c31
5
5
  SHA512:
6
- metadata.gz: 8581fcad0dab4c6a373104b5eb06eb017b8dad2bd8e6f420cbfb045e4c611fe148412fdb583df0d534d0f16e05ceebda06eeb758c6021228695f2dd313f3590d
7
- data.tar.gz: 377f504cbe190e9f5df79e6dfc7ffc6b1f29d02060afd3df70e6596cea9be3d8f013ad6928cdd9abad17d4f825825a814e9d6966d59d30ccd24c2d3695feddd9
6
+ metadata.gz: 973d78a2170df39499f8e1b62bb5a501984aeaf58e48bc4e56f3d10344f6fd93754a3b1ce2a8ac24f8581ac79df5fdbcdbd847391181a0009b8db35063bdd32b
7
+ data.tar.gz: f744b48d1f87d9dcf2f2d33e2c518b3e9654e0017faf5217685f18cbab2b46fc3d77249e8b6e80d683e10b2e348c5182b4388cea8276bf66ed6cda5e61d8cc73
data/README.md CHANGED
@@ -11,16 +11,16 @@
11
11
 
12
12
  ```erb
13
13
  <!-- Usually -->
14
- <%= ires_tag(path: "image_01.jpg", width: 90, height: 120) %>
14
+ <%= ires_tag("image_01.jpg", width: 90, height: 120) %>
15
15
 
16
16
  <!-- Using image_tag options -->
17
- <%= ires_tag(path: "http://example.com/image_02.jpg", width: 200, height: 200, Ires::Mode::CROP, alt: "example image") %>
17
+ <%= ires_tag("http://example.com/image_02.jpg", width: 200, height: 200, Ires::Mode::CROP, alt: "example image") %>
18
18
  ```
19
19
 
20
20
  ### Get resize path
21
21
 
22
22
  ```ruby
23
- Ires::Service.path(path: '<FULL IMAGE PATH>', width: 400, height: 300)
23
+ Ires::Service.path('<FULL IMAGE PATH>', width: 400, height: 300)
24
24
  => /ires/<resize image path>
25
25
  ```
26
26
 
@@ -47,7 +47,7 @@ Filter of resize image.
47
47
  Default: **30days**
48
48
 
49
49
  ```erb
50
- <%= ires_tag(path: '/image.jpg', width: 400, height: 300, expire: 7.days) %>
50
+ <%= ires_tag('/image.jpg', width: 400, height: 300, expire: 7.days) %>
51
51
  ```
52
52
 
53
53
  ### Saved directory
@@ -126,7 +126,7 @@ $ dep ensure
126
126
  # Output to a shared object.
127
127
  $ CGO_ENABLED=1 GOOS=linux go build -v -buildmode=c-shared -o shared/linux/ires.so ext/main.go
128
128
  ```
129
- ※ In the current Docker, you can build only linux environment.
129
+ ※ In the current Docker, you can build only linux environment.
130
130
  ※ If you want to build in other environments, add GCC or install Go on the host side.🙇
131
131
 
132
132
  ### 2. Start rails server
@@ -50,6 +50,25 @@ type (
50
50
  }
51
51
  )
52
52
 
53
+ // Init is ...
54
+ func Init(size Size, rType int, uri, dir, expire string) (i *Ires) {
55
+ i = &Ires{
56
+ Size: size,
57
+ ResizeType: ResizeType(rType),
58
+ URI: uri,
59
+ Dir: dir,
60
+ Expire: expire,
61
+ }
62
+
63
+ // If local image, True
64
+ i.CheckLocal()
65
+
66
+ // Delete the expiration date image
67
+ i.DeleteExpireImage()
68
+
69
+ return
70
+ }
71
+
53
72
  // Resize is ...
54
73
  func (i *Ires) Resize() (string, error) {
55
74
  i.Mode = Resize
@@ -10,42 +10,49 @@ import (
10
10
  func init() {}
11
11
  func main() {}
12
12
 
13
- //export iresImagePath
14
- func iresImagePath(URI *C.char, width, height, rType, mode int, Dir, Expire *C.char) *C.char {
15
- uri := C.GoString(URI)
16
- dir := C.GoString(Dir)
17
- expire := C.GoString(Expire)
18
-
19
- r := &ires.Ires{
20
- Size: ires.Size{
21
- Width: width,
22
- Height: height,
23
- },
24
- ResizeType: ires.ResizeType(rType),
25
- URI: uri,
26
- Dir: dir,
27
- Expire: expire,
13
+ //export resizeImagePath
14
+ func resizeImagePath(URI *C.char, width, height, rType int, Dir, Expire *C.char) *C.char {
15
+ uri, dir, expire := cToString(URI, Dir, Expire)
16
+ r := ires.Init(ires.Size{ Width: width, Height: height }, rType, uri, dir, expire)
17
+
18
+ distURI, err := r.Resize()
19
+ if err != nil {
20
+ log.Print(err)
21
+ return C.CString(r.URI)
28
22
  }
23
+ return C.CString(distURI)
24
+ }
25
+
26
+ //export cropImagePath
27
+ func cropImagePath(URI *C.char, width, height, rType int, Dir, Expire *C.char) *C.char {
28
+ uri, dir, expire := cToString(URI, Dir, Expire)
29
+ r := ires.Init(ires.Size{ Width: width, Height: height }, rType, uri, dir, expire)
29
30
 
30
- // If local image, True
31
- r.CheckLocal()
32
- // Delete the expiration date image
33
- r.DeleteExpireImage()
34
-
35
- var distURI string
36
- var err error
37
- switch ires.Mode(mode) {
38
- case ires.Resize:
39
- distURI, err = r.Resize()
40
- case ires.Crop:
41
- distURI, err = r.Crop()
42
- case ires.ResizeToCrop:
43
- distURI, err = r.ResizeToCrop()
31
+ distURI, err := r.Crop()
32
+ if err != nil {
33
+ log.Print(err)
34
+ return C.CString(r.URI)
44
35
  }
36
+ return C.CString(distURI)
37
+ }
38
+
39
+ //export resizeToCropImagePath
40
+ func resizeToCropImagePath(URI *C.char, width, height, rType int, Dir, Expire *C.char) *C.char {
41
+ uri, dir, expire := cToString(URI, Dir, Expire)
42
+ r := ires.Init(ires.Size{ Width: width, Height: height }, rType, uri, dir, expire)
45
43
 
44
+ distURI, err := r.ResizeToCrop()
46
45
  if err != nil {
47
46
  log.Print(err)
48
47
  return C.CString(r.URI)
49
48
  }
50
49
  return C.CString(distURI)
51
50
  }
51
+
52
+ // Convert *C.char to String
53
+ func cToString(uri, dir, expire *C.char) (u, d, e string){
54
+ u = C.GoString(uri)
55
+ d = C.GoString(dir)
56
+ e = C.GoString(expire)
57
+ return
58
+ }
@@ -6,15 +6,18 @@ module Ires
6
6
  extend FFI::Library
7
7
  # NOTE: ires.so is golang object
8
8
  ffi_lib File.expand_path("../../shared/#{Ires::Os.current}/ires.so", File.dirname(__FILE__))
9
+
9
10
  # resize func
10
11
  # Type:
11
12
  # path: :string
12
13
  # width: :int
13
14
  # height: :int
14
15
  # type: :int
15
- # mode: :int
16
16
  # dir: :string
17
17
  # expire: :string
18
- attach_function :iresImagePath, %i[string int int int int string string], :string
18
+ params = %i[string int int int string string]
19
+ attach_function :resizeImagePath, params, :string
20
+ attach_function :cropImagePath, params, :string
21
+ attach_function :resizeToCropImagePath, params, :string
19
22
  end
20
23
  end
@@ -8,11 +8,15 @@ module Ires
8
8
  class << self
9
9
  # Resize image path
10
10
  # @return [String]
11
- def path(path:, width: nil, height: nil, type: Type::ALL, mode: Mode::RESIZE, expire: 30.days)
12
- raise ArgumentError, "Either width or height is required" if width.nil? && height.nil?
11
+ def path(path, width: nil, height: nil, type: Type::ALL, mode: Mode::RESIZE, expire: 30.days)
12
+ raise StandardError, "#{path} is not string." unless path.kind_of?(String)
13
+ raise ArgumentError, "Either width or height is required." if width.nil? && height.nil?
13
14
  os = Ires::Os.current
14
15
  return nil if os.nil?
15
16
 
17
+ raise StandardError, "Nil location provided. Can't build URI." if path.nil?
18
+ return path if path.empty?
19
+
16
20
  full_path = image_full_path(path.to_s)
17
21
 
18
22
  # if no image or could not find file path then perform the same action as 'image_tag'
@@ -68,15 +72,18 @@ module Ires
68
72
  # Image path
69
73
  # @return [String]
70
74
  def ires_image_path(ires_element)
71
- Core.iresImagePath(
72
- ires_element[:path],
73
- ires_element[:width],
74
- ires_element[:height],
75
- ires_element[:type],
76
- ires_element[:mode],
77
- ires_element[:dir],
78
- ires_element[:expire]
79
- )
75
+ mode = ires_element[:mode]
76
+ ires_element.delete(:mode)
77
+ case mode
78
+ when Mode::RESIZE
79
+ Core.resizeImagePath(*ires_element.values)
80
+ when Mode::CROP
81
+ Core.cropImagePath(*ires_element.values)
82
+ when Mode::RESIZE_TO_CROP
83
+ Core.resizeToCropImagePath(*ires_element.values)
84
+ else
85
+ Core.resizeImagePath(*ires_element.values)
86
+ end
80
87
  end
81
88
  end
82
89
  end
@@ -1,3 +1,3 @@
1
1
  module Ires
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.3.0'.freeze
3
3
  end
@@ -8,21 +8,18 @@ module Ires
8
8
  module ViewHelper
9
9
  # Image resize
10
10
  # @return [image_tag]
11
- def ires_tag(path:, width: nil, height: nil, type: Type::ALL, mode: Mode::RESIZE, expire: 30.days, **option)
12
- raise ArgumentError, "Either width or height is required" if width.nil? && height.nil?
13
-
14
- image = Ires::Service.path(
15
- path: path,
11
+ def ires_tag(path, width: nil, height: nil, type: Type::ALL, mode: Mode::RESIZE, expire: 30.days, **option)
12
+ image_path = Ires::Service.path(
13
+ path,
16
14
  width: width || 0,
17
15
  height: height || 0,
18
16
  mode: mode,
19
17
  type: type,
20
18
  expire: expire
21
19
  )
22
- return nil if image.nil?
23
20
 
24
21
  # Set image_tag
25
- image_tag(image, option)
22
+ image_tag(image_path, option)
26
23
  end
27
24
  end
28
25
  end
@@ -1,7 +1,19 @@
1
- /* Created by "go tool cgo" - DO NOT EDIT. */
1
+ /* Code generated by cmd/cgo; DO NOT EDIT. */
2
2
 
3
3
  /* package command-line-arguments */
4
4
 
5
+
6
+ #line 1 "cgo-builtin-prolog"
7
+
8
+ #include <stddef.h> /* for ptrdiff_t below */
9
+
10
+ #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
+ #define GO_CGO_EXPORT_PROLOGUE_H
12
+
13
+ typedef struct { const char *p; ptrdiff_t n; } _GoString_;
14
+
15
+ #endif
16
+
5
17
  /* Start of preamble from import "C" comments. */
6
18
 
7
19
 
@@ -38,7 +50,7 @@ typedef double _Complex GoComplex128;
38
50
  */
39
51
  typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
40
52
 
41
- typedef struct { const char *p; GoInt n; } GoString;
53
+ typedef _GoString_ GoString;
42
54
  typedef void *GoMap;
43
55
  typedef void *GoChan;
44
56
  typedef struct { void *t; void *v; } GoInterface;
@@ -53,7 +65,11 @@ extern "C" {
53
65
  #endif
54
66
 
55
67
 
56
- extern char* iresImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, GoInt p4, char* p5, char* p6);
68
+ extern char* resizeImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
69
+
70
+ extern char* cropImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
71
+
72
+ extern char* resizeToCropImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
57
73
 
58
74
  #ifdef __cplusplus
59
75
  }
Binary file
@@ -65,7 +65,11 @@ extern "C" {
65
65
  #endif
66
66
 
67
67
 
68
- extern char* iresImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, GoInt p4, char* p5, char* p6);
68
+ extern char* resizeImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
69
+
70
+ extern char* cropImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
71
+
72
+ extern char* resizeToCropImagePath(char* p0, GoInt p1, GoInt p2, GoInt p3, char* p4, char* p5);
69
73
 
70
74
  #ifdef __cplusplus
71
75
  }
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ires
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - enta0701
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-17 00:00:00.000000000 Z
11
+ date: 2019-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport