code-ruby 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f8a1afa22e9271512b0bef2197c9036cd85cab51dbd9dea4f1c7954ea1b4130
4
- data.tar.gz: 5b711b476024c29ec4d9eeb4f6d9d1c741b488b1a9816cd38b9220d6fe093e01
3
+ metadata.gz: af47589cc6afaaec99b2aba7ed43af665f20de7bba2b5d3bc377eab281094cd6
4
+ data.tar.gz: 9203c5dbd24e58a1111ddc9505d429065c9a31210cd9e71e5e7d7fc9f49ef467
5
5
  SHA512:
6
- metadata.gz: 0af9ea0b81e48d9b7ada87302ca5ff2bd6f4d8264bb9d968baa21173c34f69140ca047bbd5d95f440aa1e4eb50e7347ed9c19ad98f89fe8a9e9d2da0c1730a14
7
- data.tar.gz: 61817cefd553d497fe30651d3fb9909c26681207c6831701cf1ab2bc050319c94af9b371e552ac501d880590880b1e47aa1f6dd69d70e595d656dd8778f5424f
6
+ metadata.gz: b44776a7dc3bd70b03ae61fe921101b00ecd6ed084dfb674d403cf3fc55fc1d4d7890b0d9ef4147d970936716ceb568e8c91cd25adb08460c785c3b5b076ba94
7
+ data.tar.gz: f0331a5566bb8232444a02136612e1ad72ec47cbe588440d2d6bcfe42e8bc00649c4bfe3590f71c34d1f802055bd50a5e8b289c827cadc47ff46ea12a737106f
data/.rubocop.yml CHANGED
@@ -30,6 +30,8 @@ Lint/MissingSuper:
30
30
  Enabled: false
31
31
  Lint/PercentStringArray:
32
32
  Enabled: false
33
+ Lint/SafeNavigationChain:
34
+ Enabled: false
33
35
  Lint/ShadowingOuterLocalVariable:
34
36
  Enabled: false
35
37
  Lint/SuppressedException:
@@ -120,8 +122,6 @@ Style/StringLiterals:
120
122
  Enabled: false
121
123
  Style/StringLiteralsInInterpolation:
122
124
  Enabled: false
123
- Lint/SafeNavigationChain:
124
- Enabled: false
125
125
  plugins:
126
126
  - rubocop-factory_bot
127
127
  - rubocop-performance
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- code-ruby (1.6.1)
4
+ code-ruby (1.6.2)
5
5
  activesupport
6
6
  base64
7
7
  bigdecimal
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.1
1
+ 1.6.2
@@ -693,18 +693,14 @@ class Code
693
693
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
694
694
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
695
695
 
696
- Date.new(
697
- raw.change(
698
- year: code_years.code_to_integer.raw + code_year.code_to_integer.raw,
699
- month:
700
- code_months.code_to_integer.raw + code_month.code_to_integer.raw,
701
- day: code_days.code_to_integer.raw + code_day.code_to_integer.raw,
702
- wday:
703
- code_week_days.code_to_integer.raw +
704
- code_week_day.code_to_integer.raw,
705
- cweek: code_weeks.code_to_integer.raw + code_week.code_to_integer.raw
706
- )
707
- )
696
+ year = code_years.code_to_integer.raw + code_year.code_to_integer.raw
697
+ month = code_months.code_to_integer.raw + code_month.code_to_integer.raw
698
+ day = code_days.code_to_integer.raw + code_day.code_to_integer.raw
699
+ week_day =
700
+ code_week_days.code_to_integer.raw + code_week_day.code_to_integer.raw
701
+ week = code_weeks.code_to_integer.raw + code_week.code_to_integer.raw
702
+
703
+ code_change(year:, month:, day:, week_day:, week:)
708
704
  end
709
705
 
710
706
  def code_substract(
@@ -726,18 +722,14 @@ class Code
726
722
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
727
723
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
728
724
 
729
- Date.new(
730
- raw.change(
731
- year: code_years.code_to_integer.raw - code_year.code_to_integer.raw,
732
- month:
733
- code_months.code_to_integer.raw - code_month.code_to_integer.raw,
734
- day: code_days.code_to_integer.raw - code_day.code_to_integer.raw,
735
- wday:
736
- code_week_days.code_to_integer.raw -
737
- code_week_day.code_to_integer.raw,
738
- cweek: code_weeks.code_to_integer.raw - code_week.code_to_integer.raw
739
- )
740
- )
725
+ year = code_years.code_to_integer.raw - code_year.code_to_integer.raw
726
+ month = code_months.code_to_integer.raw - code_month.code_to_integer.raw
727
+ day = code_days.code_to_integer.raw - code_day.code_to_integer.raw
728
+ week_day =
729
+ code_week_days.code_to_integer.raw - code_week_day.code_to_integer.raw
730
+ week = code_weeks.code_to_integer.raw - code_week.code_to_integer.raw
731
+
732
+ code_change(year:, month:, day:, week_day:, week:)
741
733
  end
742
734
 
743
735
  def code_change(
@@ -759,23 +751,20 @@ class Code
759
751
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
760
752
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
761
753
 
762
- if code_year.something? || code_month.something? ||
763
- code_day.something? || code_week_day.something? ||
764
- code_week.something?
765
- Date.new(
766
- raw.change(
767
- **{
768
- year: code_year.raw,
769
- month: code_month.raw,
770
- day: code_day.raw,
771
- wday: code_week_day.raw,
772
- cweek: code_week.raw
773
- }.compact
774
- )
775
- )
776
- else
777
- Date.new(self)
778
- end
754
+ year = code_year.raw || code_years.raw
755
+ month = code_month.raw || code_months.raw
756
+ day = code_day.raw || code_days.raw
757
+ wday = code_week_day.raw || code_week_days.raw
758
+ cweek = code_week.raw || code_weeks.raw
759
+
760
+ dup = raw.dup
761
+ dup += (year - raw.year).years
762
+ dup += (month - raw.month).months
763
+ dup += (day - raw.day).days
764
+ dup += (wday - raw.wday).days
765
+ dup += (cweek - raw.to_date.cweek).weeks
766
+
767
+ Date.new(dup)
779
768
  end
780
769
  end
781
770
  end
@@ -831,27 +831,30 @@ class Code
831
831
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
832
832
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
833
833
  code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
834
- code_minute =
835
- minute.to_code.nothing? ? minutes.to_code : minute.to_code
836
- code_second =
837
- second.to_code.nothing? ? seconds.to_code : second.to_code
838
-
839
- Time.new(
840
- raw.change(
841
- year: code_years.code_to_integer.raw + code_year.code_to_integer.raw,
842
- month:
843
- code_months.code_to_integer.raw + code_month.code_to_integer.raw,
844
- day: code_days.code_to_integer.raw + code_day.code_to_integer.raw,
845
- wday:
846
- code_week_days.code_to_integer.raw +
847
- code_week_day.code_to_integer.raw,
848
- cweek: code_weeks.code_to_integer.raw + code_week.code_to_integer.raw,
849
- hour: code_hours.code_to_integer.raw + code_hour.code_to_integer.raw,
850
- min:
851
- code_minutes.code_to_integer.raw + code_minute.code_to_integer.raw,
852
- sec:
853
- code_seconds.code_to_integer.raw + code_second.code_to_integer.raw
854
- )
834
+ code_minute = minute.to_code.nothing? ? minutes.to_code : minute.to_code
835
+ code_second = second.to_code.nothing? ? seconds.to_code : second.to_code
836
+
837
+ year = code_years.code_to_integer.raw + code_year.code_to_integer.raw
838
+ month = code_months.code_to_integer.raw + code_month.code_to_integer.raw
839
+ day = code_days.code_to_integer.raw + code_day.code_to_integer.raw
840
+ week_day =
841
+ code_week_days.code_to_integer.raw + code_week_day.code_to_integer.raw
842
+ week = code_weeks.code_to_integer.raw + code_week.code_to_integer.raw
843
+ hour = code_hours.code_to_integer.raw + code_hour.code_to_integer.raw
844
+ minute =
845
+ code_minutes.code_to_integer.raw + code_minute.code_to_integer.raw
846
+ second =
847
+ code_seconds.code_to_integer.raw + code_second.code_to_integer.raw
848
+
849
+ code_change(
850
+ year:,
851
+ month:,
852
+ day:,
853
+ week_day:,
854
+ week:,
855
+ hour:,
856
+ minute:,
857
+ second:
855
858
  )
856
859
  end
857
860
 
@@ -880,27 +883,30 @@ class Code
880
883
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
881
884
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
882
885
  code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
883
- code_minute =
884
- minute.to_code.nothing? ? minutes.to_code : minute.to_code
885
- code_second =
886
- second.to_code.nothing? ? seconds.to_code : second.to_code
887
-
888
- Time.new(
889
- raw.change(
890
- year: code_years.code_to_integer.raw - code_year.code_to_integer.raw,
891
- month:
892
- code_months.code_to_integer.raw - code_month.code_to_integer.raw,
893
- day: code_days.code_to_integer.raw - code_day.code_to_integer.raw,
894
- wday:
895
- code_week_days.code_to_integer.raw -
896
- code_week_day.code_to_integer.raw,
897
- cweek: code_weeks.code_to_integer.raw - code_week.code_to_integer.raw,
898
- hour: code_hours.code_to_integer.raw - code_hour.code_to_integer.raw,
899
- min:
900
- code_minutes.code_to_integer.raw - code_minute.code_to_integer.raw,
901
- sec:
902
- code_seconds.code_to_integer.raw - code_second.code_to_integer.raw
903
- )
886
+ code_minute = minute.to_code.nothing? ? minutes.to_code : minute.to_code
887
+ code_second = second.to_code.nothing? ? seconds.to_code : second.to_code
888
+
889
+ year = code_years.code_to_integer.raw - code_year.code_to_integer.raw
890
+ month = code_months.code_to_integer.raw - code_month.code_to_integer.raw
891
+ day = code_days.code_to_integer.raw - code_day.code_to_integer.raw
892
+ week_day =
893
+ code_week_days.code_to_integer.raw - code_week_day.code_to_integer.raw
894
+ week = code_weeks.code_to_integer.raw - code_week.code_to_integer.raw
895
+ hour = code_hours.code_to_integer.raw - code_hour.code_to_integer.raw
896
+ minute =
897
+ code_minutes.code_to_integer.raw - code_minute.code_to_integer.raw
898
+ second =
899
+ code_seconds.code_to_integer.raw - code_second.code_to_integer.raw
900
+
901
+ code_change(
902
+ year:,
903
+ month:,
904
+ day:,
905
+ week_day:,
906
+ week:,
907
+ hour:,
908
+ minute:,
909
+ second:
904
910
  )
905
911
  end
906
912
 
@@ -929,32 +935,29 @@ class Code
929
935
  week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
930
936
  code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
931
937
  code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
932
- code_minute =
933
- minute.to_code.nothing? ? minutes.to_code : minute.to_code
934
- code_second =
935
- second.to_code.nothing? ? seconds.to_code : second.to_code
936
-
937
- if code_year.something? || code_month.something? ||
938
- code_day.something? || code_week_day.something? ||
939
- code_week.something? || code_hour.something? ||
940
- code_minute.something? || code_second.something?
941
- Time.new(
942
- raw.change(
943
- **{
944
- year: code_year.raw,
945
- month: code_month.raw,
946
- day: code_day.raw,
947
- wday: code_week_day.raw,
948
- cweek: code_week.raw,
949
- hour: code_hour.raw,
950
- min: code_minute.raw,
951
- sec: code_second.raw
952
- }.compact
953
- )
954
- )
955
- else
956
- Time.new(self)
957
- end
938
+ code_minute = minute.to_code.nothing? ? minutes.to_code : minute.to_code
939
+ code_second = second.to_code.nothing? ? seconds.to_code : second.to_code
940
+
941
+ year = code_year.raw || code_years.raw
942
+ month = code_month.raw || code_months.raw
943
+ day = code_day.raw || code_days.raw
944
+ wday = code_week_day.raw || code_week_days.raw
945
+ cweek = code_week.raw || code_weeks.raw
946
+ hour = code_hour.raw || code_hours.raw
947
+ min = code_minute.raw || code_minutes.raw
948
+ sec = code_second.raw || code_seconds.raw
949
+
950
+ dup = raw.dup
951
+ dup += (year - raw.year).years
952
+ dup += (month - raw.month).months
953
+ dup += (day - raw.day).days
954
+ dup += (wday - raw.wday).days
955
+ dup += (cweek - raw.to_date.cweek).weeks
956
+ dup += (hour - raw.hour).hours
957
+ dup += (min - raw.min).minutes
958
+ dup += (sec - raw.sec).seconds
959
+
960
+ Time.new(dup)
958
961
  end
959
962
  end
960
963
  end
data/lib/code-ruby.rb CHANGED
@@ -14,6 +14,7 @@ require "stringio"
14
14
  require "timeout"
15
15
  require "uri"
16
16
  require "zeitwerk"
17
+ require "date"
17
18
 
18
19
  loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
19
20
  loader.ignore("#{__dir__}/code-ruby.rb")
data/spec/code_spec.rb CHANGED
@@ -268,8 +268,8 @@ RSpec.describe Code do
268
268
  ["Class(true, 1)", "Boolean"],
269
269
  ["Class.new(Boolean, Time)", "Boolean"],
270
270
  ["Class.new(Time, Boolean)", "Time"],
271
- ['Date("2024-3-2").to_string', ":2024-03-02"],
272
- ['Date("2024-3-2").to_string', ":2024-03-02"],
271
+ %w[Date("2024-3-2").to_string :2024-03-02],
272
+ %w[Date("2024-3-2").to_string :2024-03-02],
273
273
  ["Decimal(1, :2)", "100"],
274
274
  ["Decimal(:1, 2)", "100.0"],
275
275
  ["Decimal.new(1, :2)", "100"],
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié