ruby-gr 0.0.26 → 0.58.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 +4 -4
 - data/README.md +31 -11
 - data/lib/gr.rb +58 -23
 - data/lib/gr/ffi.rb +1 -0
 - data/lib/gr/plot.rb +65 -45
 - data/lib/gr3.rb +4 -1
 - data/lib/gr_commons/gr_lib.rb +43 -22
 - data/lib/gr_commons/gr_logger.rb +23 -11
 - data/lib/gr_commons/version.rb +1 -1
 - data/lib/grm.rb +4 -1
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: f620965108eafb5f65fc8b1c946db5abea180708db175b88246a2ecd97a66b53
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 8ff0c1b787c4b3e70a29ace39eb2fb39abaf60d71afc05b4b382edfcb6f570fa
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: cb816d775831c8e05f43e0ded3d15a22328ff0b7e5810c484782393b4fe06ee5aa03fbf431b3cbbe6c8bac2763b07ef377e42dd5d9024da1aec819251b264951
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9e12f1fa434d64b1f202a3198afa30be70ee1b4961493cde92d308134b146703ff21e2e1915cd01ed286f476f7e6900425aaa5ebdc8f1b33fd550a3d3567a14f
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -123,8 +123,6 @@ Some GR module methods are overwritten. 
     | 
|
| 
       123 
123 
     | 
    
         
             
            [`imshow`](../../wiki/Plotting-functions#imshow)
         
     | 
| 
       124 
124 
     | 
    
         
             
            [`isosurface`](../../wiki/Plotting-functions#isosurface)
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
     | 
    
         
            -
            We are preparing a [more object-oriented interface](https://github.com/kojix2/GRUtils.rb) based on [GRUtils.jl](https://github.com/heliosdrm/GRUtils.jl) in the future.
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
126 
     | 
    
         
             
            #### GR - A module for calling native GR functions.
         
     | 
| 
       129 
127 
     | 
    
         | 
| 
       130 
128 
     | 
    
         
             
            2-D Plots and common 3-D Plots.
         
     | 
| 
         @@ -148,6 +146,16 @@ require 'gr3' 
     | 
|
| 
       148 
146 
     | 
    
         
             
            GR3.cameralookat(-3, 2, -2, 0, 0, 0, 0, 0, -1)
         
     | 
| 
       149 
147 
     | 
    
         
             
            ```
         
     | 
| 
       150 
148 
     | 
    
         | 
| 
      
 149 
     | 
    
         
            +
            ### Using GR.rb non-interactively
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            Both APIs will by default start a Qt based window to show the result of the last call.
         
     | 
| 
      
 152 
     | 
    
         
            +
            This behavior is caused by GR itself as it will [implicitly generate output to a file or application](https://gr-framework.org/workstations.html#no-output).
         
     | 
| 
      
 153 
     | 
    
         
            +
            If you want to use GR.rb non-interactively, eg., as part of a static site build, you can do this by setting the environment variable `GKS_WSTYPE`to `100`.
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 156 
     | 
    
         
            +
            export GKS_WSTYPE=100
         
     | 
| 
      
 157 
     | 
    
         
            +
            ```
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
       151 
159 
     | 
    
         
             
            ## Documentation
         
     | 
| 
       152 
160 
     | 
    
         | 
| 
       153 
161 
     | 
    
         
             
            - [GR.rb Wiki](https://github.com/red-data-tools/GR.rb/wiki)
         
     | 
| 
         @@ -168,7 +176,7 @@ Set environment variable GRDIR. 
     | 
|
| 
       168 
176 
     | 
    
         
             
            export GRDIR="your/path/to/gr"
         
     | 
| 
       169 
177 
     | 
    
         
             
            ```
         
     | 
| 
       170 
178 
     | 
    
         | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
      
 179 
     | 
    
         
            +
            macOS : Please  the section "How to open apps from un-notarized or unidentified developers" in the Apple documentation ["Safely open apps on your Mac"](https://support.apple.com/en-us/HT202491).
         
     | 
| 
       172 
180 
     | 
    
         | 
| 
       173 
181 
     | 
    
         
             
            ### Using package managers
         
     | 
| 
       174 
182 
     | 
    
         | 
| 
         @@ -180,10 +188,9 @@ export GRDIR="your/path/to/gr" 
     | 
|
| 
       180 
188 
     | 
    
         | 
| 
       181 
189 
     | 
    
         
             
            ```sh
         
     | 
| 
       182 
190 
     | 
    
         
             
            brew install libgr
         
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
      
 191 
     | 
    
         
            +
            export GKS_WSTYPE=411 # gksqt (recommended)
         
     | 
| 
       184 
192 
     | 
    
         
             
            ```
         
     | 
| 
       185 
193 
     | 
    
         | 
| 
       186 
     | 
    
         
            -
             
     | 
| 
       187 
194 
     | 
    
         
             
            #### Linux - APT
         
     | 
| 
       188 
195 
     | 
    
         | 
| 
       189 
196 
     | 
    
         
             
            [packages.red-data-tools.org](https://github.com/red-data-tools/packages.red-data-tools.org) provides `libgr-dev`, `libgr3-dev` and `libgrm-dev`
         
     | 
| 
         @@ -192,7 +199,8 @@ Debian GNU/Linux and Ubuntu 
     | 
|
| 
       192 
199 
     | 
    
         | 
| 
       193 
200 
     | 
    
         
             
            ```sh
         
     | 
| 
       194 
201 
     | 
    
         
             
            sudo apt install -y -V ca-certificates lsb-release wget
         
     | 
| 
       195 
     | 
    
         
            -
            wget https://packages.red-data-tools.org/$(lsb_release --id --short | tr 'A-Z' 'a-z' 
     | 
| 
      
 202 
     | 
    
         
            +
            wget https://packages.red-data-tools.org/$(lsb_release --id --short | tr 'A-Z' 'a-z'\
         
     | 
| 
      
 203 
     | 
    
         
            +
              )/red-data-tools-apt-source-latest-$(lsb_release --codename --short).deb
         
     | 
| 
       196 
204 
     | 
    
         
             
            sudo apt install -y -V ./red-data-tools-apt-source-latest-$(lsb_release --codename --short).deb
         
     | 
| 
       197 
205 
     | 
    
         
             
            sudo apt update
         
     | 
| 
       198 
206 
     | 
    
         
             
            sudo apt install libgrm-dev
         
     | 
| 
         @@ -207,14 +215,10 @@ CentOS 
     | 
|
| 
       207 
215 
     | 
    
         
             
            sudo dnf install -y gr-devel
         
     | 
| 
       208 
216 
     | 
    
         
             
            ```
         
     | 
| 
       209 
217 
     | 
    
         | 
| 
       210 
     | 
    
         
            -
             
     | 
| 
      
 218 
     | 
    
         
            +
            #### Windows - MSYS2
         
     | 
| 
       211 
219 
     | 
    
         | 
| 
       212 
220 
     | 
    
         
             
            If you are using Rubyinstaller, pacman will automatically install [mingw-w64-gr](https://packages.msys2.org/base/mingw-w64-gr) when the gem is installed.
         
     | 
| 
       213 
221 
     | 
    
         | 
| 
       214 
     | 
    
         
            -
            ## Backend for Charty
         
     | 
| 
       215 
     | 
    
         
            -
             
     | 
| 
       216 
     | 
    
         
            -
            GR.rb will be the default backend for [Charty](https://github.com/red-data-tools/charty).
         
     | 
| 
       217 
     | 
    
         
            -
             
     | 
| 
       218 
222 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       219 
223 
     | 
    
         | 
| 
       220 
224 
     | 
    
         
             
            GR.rb is a library under development, so even small improvements like fixing typos are welcome!
         
     | 
| 
         @@ -227,6 +231,22 @@ Please feel free to send us your PR. 
     | 
|
| 
       227 
231 
     | 
    
         
             
            * Update GR packages ( Homebrew, MinGW, red-data-tools )
         
     | 
| 
       228 
232 
     | 
    
         
             
            * Create visualization tools based on GR.rb
         
     | 
| 
       229 
233 
     | 
    
         | 
| 
      
 234 
     | 
    
         
            +
            To get started with development:
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 237 
     | 
    
         
            +
            git clone https://github.com/red-data-tools/GR.rb
         
     | 
| 
      
 238 
     | 
    
         
            +
            cd GR.rb
         
     | 
| 
      
 239 
     | 
    
         
            +
            bundle install
         
     | 
| 
      
 240 
     | 
    
         
            +
            bundle exec rake test
         
     | 
| 
      
 241 
     | 
    
         
            +
            ```
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
            * [I'm new to Ruby](https://github.com/red-data-tools/GR.rb/wiki/I%27m-new-to-Ruby)
         
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
      
 245 
     | 
    
         
            +
            ## Future plans
         
     | 
| 
      
 246 
     | 
    
         
            +
             
     | 
| 
      
 247 
     | 
    
         
            +
            * GR.rb will be the default backend for [Charty](https://github.com/red-data-tools/charty).
         
     | 
| 
      
 248 
     | 
    
         
            +
            * [Object-oriented interface](https://github.com/kojix2/GRUtils.rb) based on [GRUtils.jl](https://github.com/heliosdrm/GRUtils.jl). 
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
       230 
250 
     | 
    
         
             
            ## Acknowledgements
         
     | 
| 
       231 
251 
     | 
    
         | 
| 
       232 
252 
     | 
    
         
             
            We would like to thank Josef Heinen, the creator of [GR](https://github.com/sciapp/gr) and [GR.jl](https://github.com/jheinen/GR.jl), Florian Rhiem, the creator of [python-gr](https://github.com/sciapp/python-gr), and all [GR](https://github.com/sciapp/gr) developers.
         
     | 
    
        data/lib/gr.rb
    CHANGED
    
    | 
         @@ -58,7 +58,7 @@ module GR 
     | 
|
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
              # Platforms |  path
         
     | 
| 
       60 
60 
     | 
    
         
             
              # Windows   |  bin/libgr.dll
         
     | 
| 
       61 
     | 
    
         
            -
              # MacOSX    |  lib/libGR. 
     | 
| 
      
 61 
     | 
    
         
            +
              # MacOSX    |  lib/libGR.dylib ( <= v0.53.0 .so)
         
     | 
| 
       62 
62 
     | 
    
         
             
              # Ubuntu    |  lib/libGR.so
         
     | 
| 
       63 
63 
     | 
    
         
             
              platform = RbConfig::CONFIG['host_os']
         
     | 
| 
       64 
64 
     | 
    
         
             
              lib_names, pkg_name = \
         
     | 
| 
         @@ -70,6 +70,9 @@ module GR 
     | 
|
| 
       70 
70 
     | 
    
         
             
                else
         
     | 
| 
       71 
71 
     | 
    
         
             
                  [['libGR.so'], 'gr']
         
     | 
| 
       72 
72 
     | 
    
         
             
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
              # On Windows + RubyInstaller,
         
     | 
| 
      
 75 
     | 
    
         
            +
              # the environment variable GKS_FONTPATH will be set.
         
     | 
| 
       73 
76 
     | 
    
         
             
              lib_path = GRCommons::GRLib.search(lib_names, pkg_name)
         
     | 
| 
       74 
77 
     | 
    
         | 
| 
       75 
78 
     | 
    
         
             
              raise NotFoundError, "#{lib_names} not found" if lib_path.nil?
         
     | 
| 
         @@ -178,7 +181,7 @@ module GR 
     | 
|
| 
       178 
181 
     | 
    
         
             
                # @param x         [Array, NArray]          A list containing the X coordinates
         
     | 
| 
       179 
182 
     | 
    
         
             
                # @param y         [Array, NArray]          A list containing the Y coordinates
         
     | 
| 
       180 
183 
     | 
    
         
             
                # @param linewidth [Array, NArray, Numeric] A list containing the line widths
         
     | 
| 
       181 
     | 
    
         
            -
                # @param line_z    [Array, NArray] 
     | 
| 
      
 184 
     | 
    
         
            +
                # @param line_z    [Array, NArray, Numeric] A list to be converted to colors
         
     | 
| 
       182 
185 
     | 
    
         
             
                #
         
     | 
| 
       183 
186 
     | 
    
         
             
                # The values for x and y are in world coordinates.
         
     | 
| 
       184 
187 
     | 
    
         
             
                # The attributes that control the appearance of a polyline are linetype,
         
     | 
| 
         @@ -190,13 +193,24 @@ module GR 
     | 
|
| 
       190 
193 
     | 
    
         
             
                  if linewidth.nil? && line_z.nil?
         
     | 
| 
       191 
194 
     | 
    
         
             
                    super(n, x, y)
         
     | 
| 
       192 
195 
     | 
    
         
             
                  else
         
     | 
| 
       193 
     | 
    
         
            -
                    linewidth  
     | 
| 
       194 
     | 
    
         
            -
                    linewidth 
     | 
| 
       195 
     | 
    
         
            -
             
     | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
      
 196 
     | 
    
         
            +
                    linewidth ||= GR.inqlinewidth
         
     | 
| 
      
 197 
     | 
    
         
            +
                    linewidth = if linewidth.is_a?(Numeric)
         
     | 
| 
      
 198 
     | 
    
         
            +
                                  Array.new(n, linewidth * 100)
         
     | 
| 
      
 199 
     | 
    
         
            +
                                else
         
     | 
| 
      
 200 
     | 
    
         
            +
                                  raise ArgumentError if n != linewidth.length
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
                                  linewidth.map { |i| (100 * i).round }
         
     | 
| 
      
 203 
     | 
    
         
            +
                                end
         
     | 
| 
      
 204 
     | 
    
         
            +
                    line_z ||= GR.inqcolor(989) # FIXME
         
     | 
| 
      
 205 
     | 
    
         
            +
                    color = if line_z.is_a?(Numeric)
         
     | 
| 
      
 206 
     | 
    
         
            +
                              Array.new(n, line_z)
         
     | 
| 
      
 207 
     | 
    
         
            +
                            else
         
     | 
| 
      
 208 
     | 
    
         
            +
                              raise ArgumentError if n != line_z.length
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                              to_rgb_color(line_z)
         
     | 
| 
      
 211 
     | 
    
         
            +
                            end
         
     | 
| 
      
 212 
     | 
    
         
            +
                    z = linewidth.to_a.zip(color).flatten # to_a : NArray
         
     | 
| 
      
 213 
     | 
    
         
            +
                    gdp(x, y, GDP_DRAW_LINES, z)
         
     | 
| 
       200 
214 
     | 
    
         
             
                  end
         
     | 
| 
       201 
215 
     | 
    
         
             
                end
         
     | 
| 
       202 
216 
     | 
    
         | 
| 
         @@ -205,7 +219,7 @@ module GR 
     | 
|
| 
       205 
219 
     | 
    
         
             
                # @param x          [Array, NArray]          A list containing the X coordinates
         
     | 
| 
       206 
220 
     | 
    
         
             
                # @param y          [Array, NArray]          A list containing the Y coordinates
         
     | 
| 
       207 
221 
     | 
    
         
             
                # @param markersize [Array, NArray, Numeric] A list containing the marker sizes
         
     | 
| 
       208 
     | 
    
         
            -
                # @param marker_z   [Array, NArray] 
     | 
| 
      
 222 
     | 
    
         
            +
                # @param marker_z   [Array, NArray, Numeric] A list to be converted to colors
         
     | 
| 
       209 
223 
     | 
    
         
             
                #
         
     | 
| 
       210 
224 
     | 
    
         
             
                # The values for x and y are in world coordinates.
         
     | 
| 
       211 
225 
     | 
    
         
             
                # The attributes that control the appearance of a polymarker are marker type,
         
     | 
| 
         @@ -217,13 +231,24 @@ module GR 
     | 
|
| 
       217 
231 
     | 
    
         
             
                  if markersize.nil? && marker_z.nil?
         
     | 
| 
       218 
232 
     | 
    
         
             
                    super(n, x, y)
         
     | 
| 
       219 
233 
     | 
    
         
             
                  else
         
     | 
| 
       220 
     | 
    
         
            -
                    markersize  
     | 
| 
       221 
     | 
    
         
            -
                    markersize 
     | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
       223 
     | 
    
         
            -
             
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
             
     | 
| 
       226 
     | 
    
         
            -
             
     | 
| 
      
 234 
     | 
    
         
            +
                    markersize ||= GR.inqmarkersize
         
     | 
| 
      
 235 
     | 
    
         
            +
                    markersize = if markersize.is_a?(Numeric)
         
     | 
| 
      
 236 
     | 
    
         
            +
                                   Array.new(n, markersize * 100)
         
     | 
| 
      
 237 
     | 
    
         
            +
                                 else
         
     | 
| 
      
 238 
     | 
    
         
            +
                                   raise ArgumentError if n != markersize.length
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
      
 240 
     | 
    
         
            +
                                   markersize.map { |i| (100 * i).round }
         
     | 
| 
      
 241 
     | 
    
         
            +
                                 end
         
     | 
| 
      
 242 
     | 
    
         
            +
                    marker_z ||= GR.inqcolor(989) # FIXME
         
     | 
| 
      
 243 
     | 
    
         
            +
                    color = if marker_z.is_a?(Numeric)
         
     | 
| 
      
 244 
     | 
    
         
            +
                              Array.new(n, marker_z)
         
     | 
| 
      
 245 
     | 
    
         
            +
                            else
         
     | 
| 
      
 246 
     | 
    
         
            +
                              raise ArgumentError if n != marker_z.length
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
      
 248 
     | 
    
         
            +
                              to_rgb_color(marker_z)
         
     | 
| 
      
 249 
     | 
    
         
            +
                            end
         
     | 
| 
      
 250 
     | 
    
         
            +
                    z = markersize.to_a.zip(color).flatten # to_a : NArray
         
     | 
| 
      
 251 
     | 
    
         
            +
                    gdp(x, y, GDP_DRAW_MARKERS, z)
         
     | 
| 
       227 
252 
     | 
    
         
             
                  end
         
     | 
| 
       228 
253 
     | 
    
         
             
                end
         
     | 
| 
       229 
254 
     | 
    
         | 
| 
         @@ -308,9 +333,9 @@ module GR 
     | 
|
| 
       308 
333 
     | 
    
         
             
                # raidus. The center point of the resulting disk is located at `xorg`, `yorg`
         
     | 
| 
       309 
334 
     | 
    
         
             
                # and the radius of the disk is `rmax`.
         
     | 
| 
       310 
335 
     | 
    
         
             
                #
         
     | 
| 
       311 
     | 
    
         
            -
                # @param  
     | 
| 
      
 336 
     | 
    
         
            +
                # @param x_org   [Numeric]       X coordinate of the disk center in world
         
     | 
| 
       312 
337 
     | 
    
         
             
                #                                coordinates
         
     | 
| 
       313 
     | 
    
         
            -
                # @param  
     | 
| 
      
 338 
     | 
    
         
            +
                # @param y_org   [Numeric]       Y coordinate of the disk center in world
         
     | 
| 
       314 
339 
     | 
    
         
             
                #                                coordinates
         
     | 
| 
       315 
340 
     | 
    
         
             
                # @param phimin  [Numeric]       start angle of the disk sector in degrees
         
     | 
| 
       316 
341 
     | 
    
         
             
                # @param phimax  [Numeric]       end angle of the disk sector in degrees
         
     | 
| 
         @@ -318,7 +343,7 @@ module GR 
     | 
|
| 
       318 
343 
     | 
    
         
             
                #                                coordinates
         
     | 
| 
       319 
344 
     | 
    
         
             
                # @param rmax    [Numeric]       outer radius of the punctured disk in world
         
     | 
| 
       320 
345 
     | 
    
         
             
                #                                coordinates
         
     | 
| 
       321 
     | 
    
         
            -
                # @param  
     | 
| 
      
 346 
     | 
    
         
            +
                # @param dimphi  [Integer]       Phi (X) dimension of the color index array
         
     | 
| 
       322 
347 
     | 
    
         
             
                # @param dimr    [Integer]       iR (Y) dimension of the color index array
         
     | 
| 
       323 
348 
     | 
    
         
             
                # @param color   [Array, NArray] Color index array
         
     | 
| 
       324 
349 
     | 
    
         
             
                #
         
     | 
| 
         @@ -1355,7 +1380,7 @@ module GR 
     | 
|
| 
       1355 
1380 
     | 
    
         
             
                # @param x      [Array, NArray] A list containing the X coordinates
         
     | 
| 
       1356 
1381 
     | 
    
         
             
                # @param y      [Array, NArray] A list containing the Y coordinates
         
     | 
| 
       1357 
1382 
     | 
    
         
             
                # @param z      [Array, NArray] A list containing the Z coordinates
         
     | 
| 
       1358 
     | 
    
         
            -
                # @param  
     | 
| 
      
 1383 
     | 
    
         
            +
                # @param levels [Array, NArray] A list of contour levels
         
     | 
| 
       1359 
1384 
     | 
    
         
             
                #
         
     | 
| 
       1360 
1385 
     | 
    
         
             
                def tricontour(x, y, z, levels)
         
     | 
| 
       1361 
1386 
     | 
    
         
             
                  npoints = x.length # equal_length ?
         
     | 
| 
         @@ -1414,6 +1439,16 @@ module GR 
     | 
|
| 
       1414 
1439 
     | 
    
         
             
                  super(n, r, g, b, positions)
         
     | 
| 
       1415 
1440 
     | 
    
         
             
                end
         
     | 
| 
       1416 
1441 
     | 
    
         | 
| 
      
 1442 
     | 
    
         
            +
                # Inquire the color index range of the current colormap.
         
     | 
| 
      
 1443 
     | 
    
         
            +
                #
         
     | 
| 
      
 1444 
     | 
    
         
            +
                # @return [Array] first_color_ind The color index of the first color,
         
     | 
| 
      
 1445 
     | 
    
         
            +
                #                 last_color_ind The color index of the last color
         
     | 
| 
      
 1446 
     | 
    
         
            +
                def inqcolormapinds
         
     | 
| 
      
 1447 
     | 
    
         
            +
                  inquiry %i[int int] do |first_color_ind, last_color_ind|
         
     | 
| 
      
 1448 
     | 
    
         
            +
                    super(first_color_ind, last_color_ind)
         
     | 
| 
      
 1449 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1450 
     | 
    
         
            +
                end
         
     | 
| 
      
 1451 
     | 
    
         
            +
             
     | 
| 
       1417 
1452 
     | 
    
         
             
                # @!method colorbar
         
     | 
| 
       1418 
1453 
     | 
    
         | 
| 
       1419 
1454 
     | 
    
         
             
                def inqcolor(color)
         
     | 
| 
         @@ -1601,14 +1636,14 @@ module GR 
     | 
|
| 
       1601 
1636 
     | 
    
         
             
                # curves.
         
     | 
| 
       1602 
1637 
     | 
    
         
             
                #
         
     | 
| 
       1603 
1638 
     | 
    
         
             
                # @param points [Array, NArray] (N, 2) array of (x, y) vertices
         
     | 
| 
       1604 
     | 
    
         
            -
                # @ 
     | 
| 
      
 1639 
     | 
    
         
            +
                # @param codes [Array, NArray] N-length array of path codes
         
     | 
| 
       1605 
1640 
     | 
    
         
             
                #  *  STOP      : end the entire path
         
     | 
| 
       1606 
1641 
     | 
    
         
             
                #  *  MOVETO    : move to the given vertex
         
     | 
| 
       1607 
1642 
     | 
    
         
             
                #  *  LINETO    : draw a line from the current position to the given vertex
         
     | 
| 
       1608 
1643 
     | 
    
         
             
                #  *  CURVE3    : draw a quadratic Bézier curve
         
     | 
| 
       1609 
1644 
     | 
    
         
             
                #  *  CURVE4    : draw a cubic Bézier curve
         
     | 
| 
       1610 
1645 
     | 
    
         
             
                #  *  CLOSEPOLY : draw a line segment to the start point of the current path
         
     | 
| 
       1611 
     | 
    
         
            -
                # @ 
     | 
| 
      
 1646 
     | 
    
         
            +
                # @param fill [Integer]
         
     | 
| 
       1612 
1647 
     | 
    
         
             
                #   A flag indication whether resulting path is to be filled or not
         
     | 
| 
       1613 
1648 
     | 
    
         
             
                #
         
     | 
| 
       1614 
1649 
     | 
    
         
             
                def drawpath(points, codes, fill)
         
     | 
    
        data/lib/gr/ffi.rb
    CHANGED
    
    | 
         @@ -117,6 +117,7 @@ module GR 
     | 
|
| 
       117 
117 
     | 
    
         
             
                try_extern 'void gr_setcolormap(int)'
         
     | 
| 
       118 
118 
     | 
    
         
             
                try_extern 'void gr_inqcolormap(int *)'
         
     | 
| 
       119 
119 
     | 
    
         
             
                try_extern 'void gr_setcolormapfromrgb(int n, double *r, double *g, double *b, double *x)'
         
     | 
| 
      
 120 
     | 
    
         
            +
                try_extern 'void gr_inqcolormapinds(int *, int *)'
         
     | 
| 
       120 
121 
     | 
    
         
             
                try_extern 'void gr_colorbar(void)'
         
     | 
| 
       121 
122 
     | 
    
         
             
                try_extern 'void gr_inqcolor(int, int *)'
         
     | 
| 
       122 
123 
     | 
    
         
             
                try_extern 'int gr_inqcolorfromrgb(double, double, double)'
         
     | 
    
        data/lib/gr/plot.rb
    CHANGED
    
    | 
         @@ -39,11 +39,11 @@ module GR 
     | 
|
| 
       39 
39 
     | 
    
         
             
                # Keyword options conform to GR.jl.
         
     | 
| 
       40 
40 
     | 
    
         
             
                KW_ARGS = %i[accelerate algorithm alpha ax backgroundcolor barwidth baseline
         
     | 
| 
       41 
41 
     | 
    
         
             
                             clabels clear clim color colormap crange figsize font grid
         
     | 
| 
       42 
     | 
    
         
            -
                             horizontal isovalue kind label labels levels location 
     | 
| 
       43 
     | 
    
         
            -
                             ratio rotation scale size spec subplot tilt title update 
     | 
| 
       44 
     | 
    
         
            -
                             xflip xform xlabel xlim xlog xrange xticks yaxis yflip 
     | 
| 
       45 
     | 
    
         
            -
                             ylim ylog zflip yrange yticks viewport vp where window 
     | 
| 
       46 
     | 
    
         
            -
                             zlabel zlim zlog zrange zticks].freeze
         
     | 
| 
      
 42 
     | 
    
         
            +
                             horizontal isovalue kind label labels levels linewidth location
         
     | 
| 
      
 43 
     | 
    
         
            +
                             nbins ratio rotation scale size spec subplot tilt title update
         
     | 
| 
      
 44 
     | 
    
         
            +
                             xaxis xflip xform xlabel xlim xlog xrange xticks yaxis yflip
         
     | 
| 
      
 45 
     | 
    
         
            +
                             ylabel ylim ylog zflip yrange yticks viewport vp where window
         
     | 
| 
      
 46 
     | 
    
         
            +
                             zaxis zlabel zlim zlog zrange zticks].freeze
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
                FONTS = {
         
     | 
| 
       49 
49 
     | 
    
         
             
                  times_roman: 101,
         
     | 
| 
         @@ -152,15 +152,20 @@ module GR 
     | 
|
| 
       152 
152 
     | 
    
         
             
                    vp1, vp2, vp3, vp4 = vp
         
     | 
| 
       153 
153 
     | 
    
         
             
                  end
         
     | 
| 
       154 
154 
     | 
    
         | 
| 
       155 
     | 
    
         
            -
                   
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
             
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
                   
     | 
| 
      
 155 
     | 
    
         
            +
                  left_margin = kvs.has_key?(:ylabel) ? 0.05 : 0
         
     | 
| 
      
 156 
     | 
    
         
            +
                  right_margin = if %i[contour contourf hexbin heatmap nonuniformheatmap polarheatmap
         
     | 
| 
      
 157 
     | 
    
         
            +
                                       nonuniformpolarheatmap surface trisurf volume].include?(kind)
         
     | 
| 
      
 158 
     | 
    
         
            +
                                   (vp2 - vp1) * 0.1
         
     | 
| 
      
 159 
     | 
    
         
            +
                                 else
         
     | 
| 
      
 160 
     | 
    
         
            +
                                   0
         
     | 
| 
      
 161 
     | 
    
         
            +
                                 end
         
     | 
| 
      
 162 
     | 
    
         
            +
                  bottom_margin = kvs.has_key?(:xlabel) ? 0.05 : 0
         
     | 
| 
      
 163 
     | 
    
         
            +
                  top_margin = kvs.has_key?(:title) ? 0.075 : 0
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                  viewport = [vp1 + (0.075 + left_margin) * (vp2 - vp1),
         
     | 
| 
      
 166 
     | 
    
         
            +
                              vp1 + (0.95 - right_margin) * (vp2 - vp1),
         
     | 
| 
      
 167 
     | 
    
         
            +
                              vp3 + (0.075 + bottom_margin) * (vp4 - vp3),
         
     | 
| 
      
 168 
     | 
    
         
            +
                              vp3 + (0.975 - top_margin) * (vp4 - vp3)]
         
     | 
| 
       164 
169 
     | 
    
         | 
| 
       165 
170 
     | 
    
         
             
                  if %i[line step scatter stem].include?(kind) && kvs[:labels]
         
     | 
| 
       166 
171 
     | 
    
         
             
                    location = kvs[:location] || 1
         
     | 
| 
         @@ -218,7 +223,7 @@ module GR 
     | 
|
| 
       218 
223 
     | 
    
         
             
                    kvs[:xrange] = [xmin, xmax]
         
     | 
| 
       219 
224 
     | 
    
         
             
                    kvs[:yrange] = [ymin, ymax]
         
     | 
| 
       220 
225 
     | 
    
         
             
                  else
         
     | 
| 
       221 
     | 
    
         
            -
                    minmax
         
     | 
| 
      
 226 
     | 
    
         
            +
                    minmax(kind)
         
     | 
| 
       222 
227 
     | 
    
         
             
                  end
         
     | 
| 
       223 
228 
     | 
    
         | 
| 
       224 
229 
     | 
    
         
             
                  major_count = if %i[wireframe surface plot3 scatter3 polar polarhist
         
     | 
| 
         @@ -246,7 +251,7 @@ module GR 
     | 
|
| 
       246 
251 
     | 
    
         
             
                                    if kvs.has_key?(:xticks)
         
     | 
| 
       247 
252 
     | 
    
         
             
                                      kvs[:xticks]
         
     | 
| 
       248 
253 
     | 
    
         
             
                                    else
         
     | 
| 
       249 
     | 
    
         
            -
                                      [ 
     | 
| 
      
 254 
     | 
    
         
            +
                                      [auto_tick(xmin, xmax) / major_count, major_count]
         
     | 
| 
       250 
255 
     | 
    
         
             
                                    end
         
     | 
| 
       251 
256 
     | 
    
         
             
                                  else
         
     | 
| 
       252 
257 
     | 
    
         
             
                                    [1, 1]
         
     | 
| 
         @@ -275,7 +280,7 @@ module GR 
     | 
|
| 
       275 
280 
     | 
    
         
             
                                    if kvs.has_key?(:yticks)
         
     | 
| 
       276 
281 
     | 
    
         
             
                                      kvs[:yticks]
         
     | 
| 
       277 
282 
     | 
    
         
             
                                    else
         
     | 
| 
       278 
     | 
    
         
            -
                                      [ 
     | 
| 
      
 283 
     | 
    
         
            +
                                      [auto_tick(ymin, ymax) / major_count, major_count]
         
     | 
| 
       279 
284 
     | 
    
         
             
                                    end
         
     | 
| 
       280 
285 
     | 
    
         
             
                                  else
         
     | 
| 
       281 
286 
     | 
    
         
             
                                    [1, 1]
         
     | 
| 
         @@ -290,7 +295,7 @@ module GR 
     | 
|
| 
       290 
295 
     | 
    
         
             
                                      if kvs.has_key?(:zticks)
         
     | 
| 
       291 
296 
     | 
    
         
             
                                        kvs[:zticks]
         
     | 
| 
       292 
297 
     | 
    
         
             
                                      else
         
     | 
| 
       293 
     | 
    
         
            -
                                        [ 
     | 
| 
      
 298 
     | 
    
         
            +
                                        [auto_tick(zmin, zmax) / major_count, major_count]
         
     | 
| 
       294 
299 
     | 
    
         
             
                                      end
         
     | 
| 
       295 
300 
     | 
    
         
             
                                    else
         
     | 
| 
       296 
301 
     | 
    
         
             
                                      [1, 1]
         
     | 
| 
         @@ -300,15 +305,16 @@ module GR 
     | 
|
| 
       300 
305 
     | 
    
         
             
                  end
         
     | 
| 
       301 
306 
     | 
    
         | 
| 
       302 
307 
     | 
    
         
             
                  kvs[:window] = xmin, xmax, ymin, ymax
         
     | 
| 
       303 
     | 
    
         
            -
                  if %i[polar polarhist polarheatmap nonuniformpolarheatmap].include?(kind)
         
     | 
| 
      
 308 
     | 
    
         
            +
                  if %i[polar polarhist polarheatmap nonuniformpolarheatmap trisurf].include?(kind)
         
     | 
| 
       304 
309 
     | 
    
         
             
                    GR.setwindow(-1, 1, -1, 1)
         
     | 
| 
       305 
310 
     | 
    
         
             
                  else
         
     | 
| 
       306 
311 
     | 
    
         
             
                    GR.setwindow(xmin, xmax, ymin, ymax)
         
     | 
| 
       307 
312 
     | 
    
         
             
                  end
         
     | 
| 
       308 
313 
     | 
    
         
             
                  if %i[wireframe surface plot3 scatter3 trisurf volume].include?(kind)
         
     | 
| 
       309 
314 
     | 
    
         
             
                    rotation = kvs[:rotation] || 40
         
     | 
| 
       310 
     | 
    
         
            -
                    tilt     = kvs[:tilt]     ||  
     | 
| 
       311 
     | 
    
         
            -
                    GR. 
     | 
| 
      
 315 
     | 
    
         
            +
                    tilt     = kvs[:tilt]     || 60
         
     | 
| 
      
 316 
     | 
    
         
            +
                    GR.setwindow3d(xmin, xmax, ymin, ymax, zmin, zmax)
         
     | 
| 
      
 317 
     | 
    
         
            +
                    GR.setspace3d(-rotation, tilt, 30, 0)
         
     | 
| 
       312 
318 
     | 
    
         
             
                  end
         
     | 
| 
       313 
319 
     | 
    
         | 
| 
       314 
320 
     | 
    
         
             
                  kvs[:scale] = scale
         
     | 
| 
         @@ -327,10 +333,10 @@ module GR 
     | 
|
| 
       327 
333 
     | 
    
         
             
                  GR.setlinecolorind(1)
         
     | 
| 
       328 
334 
     | 
    
         
             
                  diag = Math.sqrt((viewport[1] - viewport[0])**2 + (viewport[3] - viewport[2])**2)
         
     | 
| 
       329 
335 
     | 
    
         
             
                  GR.setlinewidth(1)
         
     | 
| 
       330 
     | 
    
         
            -
                  charheight = [0.018 * diag, 0.012].max
         
     | 
| 
       331 
     | 
    
         
            -
                  GR.setcharheight(charheight)
         
     | 
| 
       332 
336 
     | 
    
         
             
                  ticksize = 0.0075 * diag
         
     | 
| 
       333 
337 
     | 
    
         
             
                  if %i[wireframe surface plot3 scatter3 trisurf volume].include?(kind)
         
     | 
| 
      
 338 
     | 
    
         
            +
                    charheight = [0.024 * diag, 0.012].max
         
     | 
| 
      
 339 
     | 
    
         
            +
                    GR.setcharheight(charheight)
         
     | 
| 
       334 
340 
     | 
    
         
             
                    ztick, zorg, majorz = kvs[:zaxis]
         
     | 
| 
       335 
341 
     | 
    
         
             
                    if pass == 1 && drawgrid
         
     | 
| 
       336 
342 
     | 
    
         
             
                      GR.grid3d(xtick, 0, ztick, xorg[0], yorg[1], zorg[0], 2, 0, 2)
         
     | 
| 
         @@ -340,6 +346,8 @@ module GR 
     | 
|
| 
       340 
346 
     | 
    
         
             
                      GR.axes3d(0, ytick, 0, xorg[1], yorg[0], zorg[0], 0, majory, 0, ticksize)
         
     | 
| 
       341 
347 
     | 
    
         
             
                    end
         
     | 
| 
       342 
348 
     | 
    
         
             
                  else
         
     | 
| 
      
 349 
     | 
    
         
            +
                    charheight = [0.018 * diag, 0.012].max
         
     | 
| 
      
 350 
     | 
    
         
            +
                    GR.setcharheight(charheight)
         
     | 
| 
       343 
351 
     | 
    
         
             
                    if %i[heatmap nonuniformheatmap shade].include?(kind)
         
     | 
| 
       344 
352 
     | 
    
         
             
                      ticksize = -ticksize
         
     | 
| 
       345 
353 
     | 
    
         
             
                    elsif drawgrid
         
     | 
| 
         @@ -422,7 +430,7 @@ module GR 
     | 
|
| 
       422 
430 
     | 
    
         
             
                  GR.setcharheight(charheight)
         
     | 
| 
       423 
431 
     | 
    
         
             
                  GR.setlinetype(GR::LINETYPE_SOLID)
         
     | 
| 
       424 
432 
     | 
    
         | 
| 
       425 
     | 
    
         
            -
                  tick =  
     | 
| 
      
 433 
     | 
    
         
            +
                  tick = auto_tick(rmin, rmax)
         
     | 
| 
       426 
434 
     | 
    
         
             
                  n = ((rmax - rmin) / tick + 0.5).round
         
     | 
| 
       427 
435 
     | 
    
         
             
                  (n + 1).times do |i|
         
     | 
| 
       428 
436 
     | 
    
         
             
                    r = i.to_f / n
         
     | 
| 
         @@ -584,7 +592,7 @@ module GR 
     | 
|
| 
       584 
592 
     | 
    
         
             
                  charheight = [0.016 * diag, 0.012].max
         
     | 
| 
       585 
593 
     | 
    
         
             
                  GR.setcharheight(charheight)
         
     | 
| 
       586 
594 
     | 
    
         
             
                  if kvs[:scale] & GR::OPTION_Z_LOG == 0
         
     | 
| 
       587 
     | 
    
         
            -
                    ztick =  
     | 
| 
      
 595 
     | 
    
         
            +
                    ztick = auto_tick(zmin, zmax)
         
     | 
| 
       588 
596 
     | 
    
         
             
                    GR.axes(0, ztick, 1, zmin, 0, 1, 0.005)
         
     | 
| 
       589 
597 
     | 
    
         
             
                  else
         
     | 
| 
       590 
598 
     | 
    
         
             
                    GR.setscale(GR::OPTION_Y_LOG)
         
     | 
| 
         @@ -661,8 +669,12 @@ module GR 
     | 
|
| 
       661 
669 
     | 
    
         | 
| 
       662 
670 
     | 
    
         
             
                    when :line
         
     | 
| 
       663 
671 
     | 
    
         
             
                      mask = GR.uselinespec(spec)
         
     | 
| 
       664 
     | 
    
         
            -
                       
     | 
| 
       665 
     | 
    
         
            -
                       
     | 
| 
      
 672 
     | 
    
         
            +
                      linewidth = kvs[:linewidth]
         
     | 
| 
      
 673 
     | 
    
         
            +
                      # Slightly different from Julia,
         
     | 
| 
      
 674 
     | 
    
         
            +
                      # Because the implementation of polyline and polymarker is different.
         
     | 
| 
      
 675 
     | 
    
         
            +
                      z ||= linewidth # FIXME
         
     | 
| 
      
 676 
     | 
    
         
            +
                      GR.polyline(x, y, z, c) if hasline(mask)
         
     | 
| 
      
 677 
     | 
    
         
            +
                      GR.polymarker(x, y, z, c) if hasmarker(mask)
         
     | 
| 
       666 
678 
     | 
    
         | 
| 
       667 
679 
     | 
    
         
             
                    when :step
         
     | 
| 
       668 
680 
     | 
    
         
             
                      mask = GR.uselinespec(spec)
         
     | 
| 
         @@ -698,20 +710,9 @@ module GR 
     | 
|
| 
       698 
710 
     | 
    
         | 
| 
       699 
711 
     | 
    
         
             
                    when :scatter
         
     | 
| 
       700 
712 
     | 
    
         
             
                      GR.setmarkertype(GR::MARKERTYPE_SOLID_CIRCLE)
         
     | 
| 
       701 
     | 
    
         
            -
                       
     | 
| 
       702 
     | 
    
         
            -
             
     | 
| 
       703 
     | 
    
         
            -
             
     | 
| 
       704 
     | 
    
         
            -
                          c = c.map { |i| normalize_color(i, cmin, cmax) }
         
     | 
| 
       705 
     | 
    
         
            -
                          cind = c.map { |i| (1000 + i * 255).round }
         
     | 
| 
       706 
     | 
    
         
            -
                        end
         
     | 
| 
       707 
     | 
    
         
            -
                        x.length.times do |i|
         
     | 
| 
       708 
     | 
    
         
            -
                          GR.setmarkersize(z[i] / 100.0) if z
         
     | 
| 
       709 
     | 
    
         
            -
                          GR.setmarkercolorind(cind[i]) if c
         
     | 
| 
       710 
     | 
    
         
            -
                          GR.polymarker([x[i]], [y[i]])
         
     | 
| 
       711 
     | 
    
         
            -
                        end
         
     | 
| 
       712 
     | 
    
         
            -
                      else
         
     | 
| 
       713 
     | 
    
         
            -
                        GR.polymarker(x, y)
         
     | 
| 
       714 
     | 
    
         
            -
                      end
         
     | 
| 
      
 713 
     | 
    
         
            +
                      z = z&.map { |i| i * 0.01 }
         
     | 
| 
      
 714 
     | 
    
         
            +
                      c = c&.map { |i| normalize_color(i, *kvs[:crange]) }
         
     | 
| 
      
 715 
     | 
    
         
            +
                      GR.polymarker(x, y, z, c)
         
     | 
| 
       715 
716 
     | 
    
         | 
| 
       716 
717 
     | 
    
         
             
                    when :stem
         
     | 
| 
       717 
718 
     | 
    
         
             
                      GR.setlinecolorind(1)
         
     | 
| 
         @@ -775,7 +776,7 @@ module GR 
     | 
|
| 
       775 
776 
     | 
    
         
             
                        GR.polarcellarray(0, 0, 0, 360, 0, 1, w, h, colors)
         
     | 
| 
       776 
777 
     | 
    
         
             
                      when :nonuniformpolarheatmap
         
     | 
| 
       777 
778 
     | 
    
         
             
                        ymax = y.max.to_f
         
     | 
| 
       778 
     | 
    
         
            -
                        ρ = y.map{|i| i / ymax}
         
     | 
| 
      
 779 
     | 
    
         
            +
                        ρ = y.map { |i| i / ymax }
         
     | 
| 
       779 
780 
     | 
    
         
             
                        θ = x.map { |i| i * 180 / Math::PI }
         
     | 
| 
       780 
781 
     | 
    
         
             
                        GR.nonuniformpolarcellarray(θ, ρ, w, h, colors)
         
     | 
| 
       781 
782 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -800,7 +801,7 @@ module GR 
     | 
|
| 
       800 
801 
     | 
    
         
             
                        zmin = kvs[:zlim].first if kvs[:zlim].first
         
     | 
| 
       801 
802 
     | 
    
         
             
                        zmax = kvs[:zlim].last if kvs[:zlim].last
         
     | 
| 
       802 
803 
     | 
    
         
             
                      end
         
     | 
| 
       803 
     | 
    
         
            -
             
     | 
| 
      
 804 
     | 
    
         
            +
                      GR.setprojectiontype(0)
         
     | 
| 
       804 
805 
     | 
    
         
             
                      GR.setspace(zmin, zmax, 0, 90)
         
     | 
| 
       805 
806 
     | 
    
         
             
                      levels = kvs[:levels] || 0
         
     | 
| 
       806 
807 
     | 
    
         
             
                      clabels = kvs[:clabels] || false
         
     | 
| 
         @@ -1108,8 +1109,8 @@ module GR 
     | 
|
| 
       1108 
1109 
     | 
    
         | 
| 
       1109 
1110 
     | 
    
         
             
                # Normalize a color c with the range [cmin, cmax]
         
     | 
| 
       1110 
1111 
     | 
    
         
             
                #   0 <= normalize_color(c, cmin, cmax) <= 1
         
     | 
| 
       1111 
     | 
    
         
            -
                # Note: narray.map{|i| normalize_color(i)} There's room for speedup.
         
     | 
| 
       1112 
1112 
     | 
    
         
             
                def normalize_color(c, cmin, cmax)
         
     | 
| 
      
 1113 
     | 
    
         
            +
                  # NOTE: narray.map{|i| normalize_color(i)} There's room for speedup.
         
     | 
| 
       1113 
1114 
     | 
    
         
             
                  c = c.to_f # if c is Integer
         
     | 
| 
       1114 
1115 
     | 
    
         
             
                  c = c.clamp(cmin, cmax) - cmin
         
     | 
| 
       1115 
1116 
     | 
    
         
             
                  c /= (cmax - cmin) if cmin != cmax
         
     | 
| 
         @@ -1146,7 +1147,7 @@ module GR 
     | 
|
| 
       1146 
1147 
     | 
    
         
             
                  [a, b]
         
     | 
| 
       1147 
1148 
     | 
    
         
             
                end
         
     | 
| 
       1148 
1149 
     | 
    
         | 
| 
       1149 
     | 
    
         
            -
                def minmax
         
     | 
| 
      
 1150 
     | 
    
         
            +
                def minmax(kind)
         
     | 
| 
       1150 
1151 
     | 
    
         
             
                  xmin = ymin = zmin = cmin = Float::INFINITY
         
     | 
| 
       1151 
1152 
     | 
    
         
             
                  xmax = ymax = zmax = cmax = -Float::INFINITY
         
     | 
| 
       1152 
1153 
     | 
    
         
             
                  scale = kvs[:scale]
         
     | 
| 
         @@ -1159,6 +1160,8 @@ module GR 
     | 
|
| 
       1159 
1160 
     | 
    
         
             
                      x0, x1 = x.minmax
         
     | 
| 
       1160 
1161 
     | 
    
         
             
                      xmin = [x0, xmin].min
         
     | 
| 
       1161 
1162 
     | 
    
         
             
                      xmax = [x1, xmax].max
         
     | 
| 
      
 1163 
     | 
    
         
            +
                    elsif kind == :volume
         
     | 
| 
      
 1164 
     | 
    
         
            +
                      xmin, xmax = -1, 1
         
     | 
| 
       1162 
1165 
     | 
    
         
             
                    else
         
     | 
| 
       1163 
1166 
     | 
    
         
             
                      xmin = 0
         
     | 
| 
       1164 
1167 
     | 
    
         
             
                      xmax = 1
         
     | 
| 
         @@ -1170,6 +1173,8 @@ module GR 
     | 
|
| 
       1170 
1173 
     | 
    
         
             
                      y0, y1 = y.minmax
         
     | 
| 
       1171 
1174 
     | 
    
         
             
                      ymin = [y0, ymin].min
         
     | 
| 
       1172 
1175 
     | 
    
         
             
                      ymax = [y1, ymax].max
         
     | 
| 
      
 1176 
     | 
    
         
            +
                    elsif kind == :volume
         
     | 
| 
      
 1177 
     | 
    
         
            +
                      ymin, ymax = -1, 1
         
     | 
| 
       1173 
1178 
     | 
    
         
             
                    else
         
     | 
| 
       1174 
1179 
     | 
    
         
             
                      ymin = 0
         
     | 
| 
       1175 
1180 
     | 
    
         
             
                      ymax = 1
         
     | 
| 
         @@ -1211,6 +1216,21 @@ module GR 
     | 
|
| 
       1211 
1216 
     | 
    
         
             
                  end
         
     | 
| 
       1212 
1217 
     | 
    
         
             
                end
         
     | 
| 
       1213 
1218 
     | 
    
         | 
| 
      
 1219 
     | 
    
         
            +
                def to_wc(wn)
         
     | 
| 
      
 1220 
     | 
    
         
            +
                  xmin, ymin = GR.ndctowc(wn[0], wn[2])
         
     | 
| 
      
 1221 
     | 
    
         
            +
                  xmax, ymax = GR.ndctowc(wn[1], wn[3])
         
     | 
| 
      
 1222 
     | 
    
         
            +
                  [xmin, xmax, ymin, ymax]
         
     | 
| 
      
 1223 
     | 
    
         
            +
                end
         
     | 
| 
      
 1224 
     | 
    
         
            +
             
     | 
| 
      
 1225 
     | 
    
         
            +
                def auto_tick(amin, amax)
         
     | 
| 
      
 1226 
     | 
    
         
            +
                  scale = 10.0**Math.log10(amax - amin).truncate
         
     | 
| 
      
 1227 
     | 
    
         
            +
                  tick_size = [5.0, 2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01]
         
     | 
| 
      
 1228 
     | 
    
         
            +
                  i = tick_size.find_index do |tsize|
         
     | 
| 
      
 1229 
     | 
    
         
            +
                    ((amax - amin) / scale / tsize) > 7 # maximum number of tick marks
         
     | 
| 
      
 1230 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1231 
     | 
    
         
            +
                  tick = tick_size[i - 1] * scale
         
     | 
| 
      
 1232 
     | 
    
         
            +
                end
         
     | 
| 
      
 1233 
     | 
    
         
            +
             
     | 
| 
       1214 
1234 
     | 
    
         
             
                def legend_size
         
     | 
| 
       1215 
1235 
     | 
    
         
             
                  scale = GR.inqscale
         
     | 
| 
       1216 
1236 
     | 
    
         
             
                  GR.selntran(0)
         
     | 
    
        data/lib/gr3.rb
    CHANGED
    
    | 
         @@ -68,7 +68,7 @@ module GR3 
     | 
|
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
              # Platforms |  path
         
     | 
| 
       70 
70 
     | 
    
         
             
              # Windows   |  bin/libGR3.dll
         
     | 
| 
       71 
     | 
    
         
            -
              # MacOSX    |  lib/libGR3.dylib (v0.53.0 .so)
         
     | 
| 
      
 71 
     | 
    
         
            +
              # MacOSX    |  lib/libGR3.dylib ( <= v0.53.0 .so)
         
     | 
| 
       72 
72 
     | 
    
         
             
              # Ubuntu    |  lib/libGR3.so
         
     | 
| 
       73 
73 
     | 
    
         
             
              platform = RbConfig::CONFIG['host_os']
         
     | 
| 
       74 
74 
     | 
    
         
             
              lib_names, pkg_name = \
         
     | 
| 
         @@ -80,6 +80,9 @@ module GR3 
     | 
|
| 
       80 
80 
     | 
    
         
             
                else
         
     | 
| 
       81 
81 
     | 
    
         
             
                  [['libGR3.so'], 'gr3']
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
              # On Windows + RubyInstaller,
         
     | 
| 
      
 85 
     | 
    
         
            +
              # the environment variable GKS_FONTPATH will be set.
         
     | 
| 
       83 
86 
     | 
    
         
             
              lib_path = GRCommons::GRLib.search(lib_names, pkg_name)
         
     | 
| 
       84 
87 
     | 
    
         | 
| 
       85 
88 
     | 
    
         
             
              raise NotFoundError, "#{lib_names} not found" if lib_path.nil?
         
     | 
    
        data/lib/gr_commons/gr_lib.rb
    CHANGED
    
    | 
         @@ -23,45 +23,66 @@ module GRCommons 
     | 
|
| 
       23 
23 
     | 
    
         
             
              #     - mingw-w64-gr
         
     | 
| 
       24 
24 
     | 
    
         
             
              module GRLib
         
     | 
| 
       25 
25 
     | 
    
         
             
                class << self
         
     | 
| 
      
 26 
     | 
    
         
            +
                  # Check if using RubyInstaller or not.
         
     | 
| 
      
 27 
     | 
    
         
            +
                  def ruby_installer?
         
     | 
| 
      
 28 
     | 
    
         
            +
                    Object.const_defined?(:RubyInstaller)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  # Return the directory path from the GRDIR environment variable.
         
     | 
| 
      
 32 
     | 
    
         
            +
                  def get_grdir_from_env(lib_names)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    return nil unless ENV['GRDIR']
         
     | 
| 
      
 34 
     | 
    
         
            +
                    return ENV['GRDIR'] if Dir.exist?(ENV['GRDIR'])
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    warn "#{lib_names} : Dir GRDIR=#{ENV['GRDIR']} not found." # return nil
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
       26 
39 
     | 
    
         
             
                  # Search the shared library.
         
     | 
| 
       27 
40 
     | 
    
         
             
                  # @note This method does not detect the Operating System.
         
     | 
| 
       28 
41 
     | 
    
         
             
                  #
         
     | 
| 
       29 
42 
     | 
    
         
             
                  # @param lib_names [Array] The actual file name of the shared library.
         
     | 
| 
       30 
43 
     | 
    
         
             
                  # @param pkg_name [String] The package name to be used when searching with pkg-configg
         
     | 
| 
       31 
44 
     | 
    
         
             
                  def search(lib_names, pkg_name)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    # FIXME: There may be a better way to do it...
         
     | 
| 
       32 
46 
     | 
    
         
             
                    def lib_names.map_find(&block)
         
     | 
| 
       33 
47 
     | 
    
         
             
                      lazy.map(&block).find { |path| path }
         
     | 
| 
       34 
48 
     | 
    
         
             
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    # ENV['GRDIR']
         
     | 
| 
      
 51 
     | 
    
         
            +
                    # Verify that the directory exists.
         
     | 
| 
      
 52 
     | 
    
         
            +
                    grdir = get_grdir_from_env(lib_names)
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
       35 
54 
     | 
    
         
             
                    # Windows + RubyInstaller
         
     | 
| 
       36 
     | 
    
         
            -
                    if  
     | 
| 
       37 
     | 
    
         
            -
                       
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                       
     | 
| 
       44 
     | 
    
         
            -
                         
     | 
| 
       45 
     | 
    
         
            -
                      end
         
     | 
| 
       46 
     | 
    
         
            -
                    # ENV['GRDIR'] (Linux, Mac, Windows)
         
     | 
| 
       47 
     | 
    
         
            -
                    elsif ENV['GRDIR']
         
     | 
| 
       48 
     | 
    
         
            -
                      # Search for XXX.dylib and then XXX.so on macOS
         
     | 
| 
       49 
     | 
    
         
            -
                      lib_names.map_find do |lib_name|
         
     | 
| 
       50 
     | 
    
         
            -
                        recursive_search(lib_name, ENV['GRDIR'])
         
     | 
| 
       51 
     | 
    
         
            -
                      end || lib_names.map_find do |lib_name|
         
     | 
| 
       52 
     | 
    
         
            -
                        pkg_config_search(lib_name, pkg_name)
         
     | 
| 
       53 
     | 
    
         
            -
                      end
         
     | 
| 
       54 
     | 
    
         
            -
                    else
         
     | 
| 
       55 
     | 
    
         
            -
                      lib_names.map_find do |lib_name|
         
     | 
| 
       56 
     | 
    
         
            -
                        pkg_config_search(lib_name, pkg_name)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    if ruby_installer?
         
     | 
| 
      
 56 
     | 
    
         
            +
                      grdir ||= File.join(RubyInstaller::Runtime.msys2_installation.msys_path,
         
     | 
| 
      
 57 
     | 
    
         
            +
                                          RubyInstaller::Runtime.msys2_installation.mingwarch)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                    # Search grdir
         
     | 
| 
      
 61 
     | 
    
         
            +
                    if grdir
         
     | 
| 
      
 62 
     | 
    
         
            +
                      lib_path = lib_names.map_find do |lib_name|
         
     | 
| 
      
 63 
     | 
    
         
            +
                        recursive_search(lib_name, grdir)
         
     | 
| 
       57 
64 
     | 
    
         
             
                      end
         
     | 
| 
       58 
65 
     | 
    
         
             
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    # Search with pkg-config
         
     | 
| 
      
 68 
     | 
    
         
            +
                    lib_path ||= lib_names.map_find do |lib_name|
         
     | 
| 
      
 69 
     | 
    
         
            +
                      pkg_config_search(lib_name, pkg_name)
         
     | 
| 
      
 70 
     | 
    
         
            +
                    end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    # Windows + RubyInstaller
         
     | 
| 
      
 73 
     | 
    
         
            +
                    if ruby_installer?
         
     | 
| 
      
 74 
     | 
    
         
            +
                      RubyInstaller::Runtime.add_dll_directory(File.dirname(lib_path))
         
     | 
| 
      
 75 
     | 
    
         
            +
                      # FIXME: Where should I write this code?
         
     | 
| 
      
 76 
     | 
    
         
            +
                      ENV['GKS_FONTPATH'] ||= grdir
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                    lib_path
         
     | 
| 
       59 
80 
     | 
    
         
             
                  end
         
     | 
| 
       60 
81 
     | 
    
         | 
| 
       61 
82 
     | 
    
         
             
                  # Recursive file search in directories
         
     | 
| 
       62 
83 
     | 
    
         
             
                  # @param name [String] File to search for
         
     | 
| 
       63 
84 
     | 
    
         
             
                  # @param base_dir [String] Directory to search
         
     | 
| 
       64 
     | 
    
         
            -
                  # @ 
     | 
| 
      
 85 
     | 
    
         
            +
                  # @return path [String, NilClass] Returns the first path found.
         
     | 
| 
       65 
86 
     | 
    
         
             
                  #                                 If not found, nil is returned.
         
     | 
| 
       66 
87 
     | 
    
         
             
                  def recursive_search(name, base_dir)
         
     | 
| 
       67 
88 
     | 
    
         
             
                    Dir.chdir(base_dir) do
         
     | 
    
        data/lib/gr_commons/gr_logger.rb
    CHANGED
    
    | 
         @@ -5,10 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         
             
            # It should not be loaded when gr_commons/gr_commons is loaded.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            require 'logger'
         
     | 
| 
       8 
     | 
    
         
            -
            require ' 
     | 
| 
       9 
     | 
    
         
            -
            require 'awesome_print'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'pp'
         
     | 
| 
       10 
9 
     | 
    
         | 
| 
       11 
10 
     | 
    
         
             
            module GRCommons
         
     | 
| 
      
 11 
     | 
    
         
            +
              # Convenience class methods
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
       12 
13 
     | 
    
         
             
              class << self
         
     | 
| 
       13 
14 
     | 
    
         
             
                # Create a new GRLogger
         
     | 
| 
       14 
15 
     | 
    
         
             
                # @param out [String]
         
     | 
| 
         @@ -16,30 +17,35 @@ module GRCommons 
     | 
|
| 
       16 
17 
     | 
    
         
             
                # @example
         
     | 
| 
       17 
18 
     | 
    
         
             
                #   require 'gr_commons/gr_logger'
         
     | 
| 
       18 
19 
     | 
    
         
             
                #   GRCommons.gr_log("log.txt")
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
       19 
21 
     | 
    
         
             
                def gr_log(out = $stderr)
         
     | 
| 
       20 
22 
     | 
    
         
             
                  GRCommons::GRLogger.new(out)
         
     | 
| 
       21 
23 
     | 
    
         
             
                end
         
     | 
| 
       22 
24 
     | 
    
         | 
| 
       23 
25 
     | 
    
         
             
                # Return the last created GRLogger
         
     | 
| 
       24 
26 
     | 
    
         
             
                # @return [GRLogger]
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
       25 
28 
     | 
    
         
             
                def gr_logger
         
     | 
| 
       26 
29 
     | 
    
         
             
                  GRCommons::GRLogger.logger
         
     | 
| 
       27 
30 
     | 
    
         
             
                end
         
     | 
| 
       28 
31 
     | 
    
         
             
              end
         
     | 
| 
       29 
32 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
              #  
     | 
| 
       31 
     | 
    
         
            -
              #  
     | 
| 
       32 
     | 
    
         
            -
              # 
     | 
| 
      
 33 
     | 
    
         
            +
              # If GR.rb call native functions of the GR framework,
         
     | 
| 
      
 34 
     | 
    
         
            +
              # it will be recorded in the log file.
         
     | 
| 
      
 35 
     | 
    
         
            +
              #
         
     | 
| 
      
 36 
     | 
    
         
            +
              # @note Mainly used by developers for debugging.
         
     | 
| 
       33 
37 
     | 
    
         
             
              #
         
     | 
| 
       34 
38 
     | 
    
         
             
              # = How it works 
         
     | 
| 
       35 
     | 
    
         
            -
              # prepend a module named Inspector to the singular class
         
     | 
| 
       36 
     | 
    
         
            -
              #  
     | 
| 
      
 39 
     | 
    
         
            +
              # It prepend a module named Inspector to the singular class of the FFI module.
         
     | 
| 
      
 40 
     | 
    
         
            +
              # It will inspects the GR function call of the FFI module
         
     | 
| 
       37 
41 
     | 
    
         
             
              #
         
     | 
| 
       38 
42 
     | 
    
         
             
              # @example
         
     | 
| 
       39 
43 
     | 
    
         
             
              #   require 'gr_commons/gr_logger'
         
     | 
| 
       40 
     | 
    
         
            -
              #   GRCommons. 
     | 
| 
      
 44 
     | 
    
         
            +
              #   GRCommons::GRLogger.new("log.txt")
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       41 
46 
     | 
    
         
             
              class GRLogger < Logger
         
     | 
| 
       42 
47 
     | 
    
         
             
                # Return the last created GRLogger
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       43 
49 
     | 
    
         
             
                def self.logger
         
     | 
| 
       44 
50 
     | 
    
         
             
                  @@logger ||= GRCommons::GRLogger.new
         
     | 
| 
       45 
51 
     | 
    
         
             
                end
         
     | 
| 
         @@ -51,13 +57,15 @@ module GRCommons 
     | 
|
| 
       51 
57 
     | 
    
         
             
              end
         
     | 
| 
       52 
58 
     | 
    
         
             
            end
         
     | 
| 
       53 
59 
     | 
    
         | 
| 
      
 60 
     | 
    
         
            +
            # GR
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       54 
62 
     | 
    
         
             
            if Object.const_defined?(:GR)
         
     | 
| 
       55 
63 
     | 
    
         
             
              module GR
         
     | 
| 
       56 
64 
     | 
    
         
             
                module FFI
         
     | 
| 
       57 
65 
     | 
    
         
             
                  module Inspector
         
     | 
| 
       58 
66 
     | 
    
         
             
                    GR::FFI.ffi_methods.each do |s|
         
     | 
| 
       59 
67 
     | 
    
         
             
                      define_method(s) do |*args|
         
     | 
| 
       60 
     | 
    
         
            -
                        GRCommons.gr_logger.info "GR::FFI.#{s}\n 
     | 
| 
      
 68 
     | 
    
         
            +
                        GRCommons.gr_logger.info "GR::FFI.#{s}\n#{args.pretty_inspect}\n"
         
     | 
| 
       61 
69 
     | 
    
         
             
                        super(*args)
         
     | 
| 
       62 
70 
     | 
    
         
             
                      end
         
     | 
| 
       63 
71 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -69,13 +77,15 @@ if Object.const_defined?(:GR) 
     | 
|
| 
       69 
77 
     | 
    
         
             
              end
         
     | 
| 
       70 
78 
     | 
    
         
             
            end
         
     | 
| 
       71 
79 
     | 
    
         | 
| 
      
 80 
     | 
    
         
            +
            # GR3
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       72 
82 
     | 
    
         
             
            if Object.const_defined?(:GR3)
         
     | 
| 
       73 
83 
     | 
    
         
             
              module GR3
         
     | 
| 
       74 
84 
     | 
    
         
             
                module FFI
         
     | 
| 
       75 
85 
     | 
    
         
             
                  module Inspector
         
     | 
| 
       76 
86 
     | 
    
         
             
                    GR3::FFI.ffi_methods.each do |s|
         
     | 
| 
       77 
87 
     | 
    
         
             
                      define_method(s) do |*args|
         
     | 
| 
       78 
     | 
    
         
            -
                        GRCommons.gr_logger.info "GR3::FFI.#{s}\n 
     | 
| 
      
 88 
     | 
    
         
            +
                        GRCommons.gr_logger.info "GR3::FFI.#{s}\n#{args.pretty_inspect}\n"
         
     | 
| 
       79 
89 
     | 
    
         
             
                        super(*args)
         
     | 
| 
       80 
90 
     | 
    
         
             
                      end
         
     | 
| 
       81 
91 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -87,13 +97,15 @@ if Object.const_defined?(:GR3) 
     | 
|
| 
       87 
97 
     | 
    
         
             
              end
         
     | 
| 
       88 
98 
     | 
    
         
             
            end
         
     | 
| 
       89 
99 
     | 
    
         | 
| 
      
 100 
     | 
    
         
            +
            # GRM
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
       90 
102 
     | 
    
         
             
            if Object.const_defined?(:GRM)
         
     | 
| 
       91 
103 
     | 
    
         
             
              module GRM
         
     | 
| 
       92 
104 
     | 
    
         
             
                module FFI
         
     | 
| 
       93 
105 
     | 
    
         
             
                  module Inspector
         
     | 
| 
       94 
106 
     | 
    
         
             
                    GRM::FFI.ffi_methods.each do |s|
         
     | 
| 
       95 
107 
     | 
    
         
             
                      define_method(s) do |*args|
         
     | 
| 
       96 
     | 
    
         
            -
                        GRCommons.gr_logger.info "GRM::FFI.#{s}\n 
     | 
| 
      
 108 
     | 
    
         
            +
                        GRCommons.gr_logger.info "GRM::FFI.#{s}\n#{args.pretty_inspect}\n"
         
     | 
| 
       97 
109 
     | 
    
         
             
                        super(*args)
         
     | 
| 
       98 
110 
     | 
    
         
             
                      end
         
     | 
| 
       99 
111 
     | 
    
         
             
                    end
         
     | 
    
        data/lib/gr_commons/version.rb
    CHANGED
    
    
    
        data/lib/grm.rb
    CHANGED
    
    | 
         @@ -27,7 +27,7 @@ module GRM 
     | 
|
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
              # Platforms |  path
         
     | 
| 
       29 
29 
     | 
    
         
             
              # Windows   |  bin/libGRM.dll
         
     | 
| 
       30 
     | 
    
         
            -
              # MacOSX    |  lib/libGRM.dylib (v0.53.0 .so)
         
     | 
| 
      
 30 
     | 
    
         
            +
              # MacOSX    |  lib/libGRM.dylib ( <= v0.53.0 .so)
         
     | 
| 
       31 
31 
     | 
    
         
             
              # Ubuntu    |  lib/libGRM.so
         
     | 
| 
       32 
32 
     | 
    
         
             
              platform = RbConfig::CONFIG['host_os']
         
     | 
| 
       33 
33 
     | 
    
         
             
              lib_names, pkg_name = \
         
     | 
| 
         @@ -39,6 +39,9 @@ module GRM 
     | 
|
| 
       39 
39 
     | 
    
         
             
                else
         
     | 
| 
       40 
40 
     | 
    
         
             
                  [['libGRM.so'], 'grm']
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              # On Windows + RubyInstaller,
         
     | 
| 
      
 44 
     | 
    
         
            +
              # the environment variable GKS_FONTPATH will be set.
         
     | 
| 
       42 
45 
     | 
    
         
             
              lib_path = GRCommons::GRLib.search(lib_names, pkg_name)
         
     | 
| 
       43 
46 
     | 
    
         | 
| 
       44 
47 
     | 
    
         
             
              raise NotFoundError, "#{lib_names} not found" if lib_path.nil?
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ruby-gr
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.58.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - kojix2
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-08-03 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: histogram
         
     | 
| 
         @@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       186 
186 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       187 
187 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       188 
188 
     | 
    
         
             
            requirements: []
         
     | 
| 
       189 
     | 
    
         
            -
            rubygems_version: 3.2. 
     | 
| 
      
 189 
     | 
    
         
            +
            rubygems_version: 3.2.22
         
     | 
| 
       190 
190 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       191 
191 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       192 
192 
     | 
    
         
             
            summary: GR for Ruby
         
     |