scoppie 0.0.1
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 +7 -0
- data/README.md +1 -0
- data/lib/scope.rb +13 -0
- data/lib/scope_methods.rb +94 -0
- data/lib/scoppie.rb +1 -0
- metadata +47 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b3c3decb5df0a490f569339dc29dc39d09a549ff
|
4
|
+
data.tar.gz: 4ba0a2d09bf589e56778bc085dbeaf6e09c9515c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9abbb8ef8bbcda135f2a6e24972ef549ca561bd55f04fd007ae8e74cbc48165f91837619a74978c4791bb53586f41a6800dca1be48b3722ae8f61433399d1c1f
|
7
|
+
data.tar.gz: 546f7f84e5075163bcaf1c531e1f0efd3e01146fb9d338adeebc39d30d30766dfb4b1228fa3d31361daee462431cb15d164b191251658aaa791f567f17af1506
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# scopy
|
data/lib/scope.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
module ScopeMethods
|
4
|
+
include Comparable
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
|
8
|
+
def make_scope ayear, amonth
|
9
|
+
scope_string = Scope.build_scope_string ayear, amonth
|
10
|
+
Scope.new scope_string
|
11
|
+
end
|
12
|
+
|
13
|
+
def build_scope_string ayear, amonth
|
14
|
+
amonth = amonth.to_i
|
15
|
+
ayear = ayear.to_i
|
16
|
+
raise "Invalid Scope string #{ayear} #{amonth}" unless valid_month?(amonth) and valid_year?(ayear)
|
17
|
+
amonth < 10 ? "#{ayear}0#{amonth.to_i}" : "#{ayear}#{amonth.to_i}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def valid? scope
|
21
|
+
valid_month?(month(scope)) and valid_year?(year(scope))
|
22
|
+
end
|
23
|
+
|
24
|
+
def year scope
|
25
|
+
scope[0..3].to_i
|
26
|
+
end
|
27
|
+
|
28
|
+
def month scope
|
29
|
+
scope[-2, 2].to_i
|
30
|
+
end
|
31
|
+
|
32
|
+
def date_to_scope date
|
33
|
+
Scope.new(build_scope_string date.year, date.month)
|
34
|
+
end
|
35
|
+
|
36
|
+
def scope_to_date scope
|
37
|
+
Date.new(year(scope), month(scope))
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def valid_month? month_in_number
|
42
|
+
month_in_number.between? 1, 12
|
43
|
+
end
|
44
|
+
|
45
|
+
def valid_year? year_in_number
|
46
|
+
year_in_number.between? 1900, 3000
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
module IntanceMethods
|
51
|
+
def valid?
|
52
|
+
Scope.valid? @value
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_s
|
56
|
+
@value
|
57
|
+
end
|
58
|
+
|
59
|
+
def year
|
60
|
+
Scope.year @value
|
61
|
+
end
|
62
|
+
|
63
|
+
def month
|
64
|
+
Scope.month @value
|
65
|
+
end
|
66
|
+
|
67
|
+
def prior
|
68
|
+
date = Scope.scope_to_date(@value).prev_month
|
69
|
+
Scope.date_to_scope date
|
70
|
+
end
|
71
|
+
|
72
|
+
def next
|
73
|
+
date = Scope.scope_to_date(@value).next_month
|
74
|
+
Scope.date_to_scope date
|
75
|
+
end
|
76
|
+
|
77
|
+
def to_i
|
78
|
+
@value.to_i
|
79
|
+
end
|
80
|
+
|
81
|
+
def to_date
|
82
|
+
Scope.scope_to_date @value
|
83
|
+
end
|
84
|
+
|
85
|
+
def <=>(other)
|
86
|
+
to_date <=> other.to_date
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.included receiver
|
91
|
+
receiver.extend ClassMethods
|
92
|
+
receiver.send :include, IntanceMethods
|
93
|
+
end
|
94
|
+
end
|
data/lib/scoppie.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'scope'
|
metadata
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scoppie
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gedean Dias
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-22 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Scope handler
|
14
|
+
email: gedean.dias@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- README.md
|
20
|
+
- lib/scope.rb
|
21
|
+
- lib/scope_methods.rb
|
22
|
+
- lib/scoppie.rb
|
23
|
+
homepage: https://github.com/gedean/scoppie
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements: []
|
42
|
+
rubyforge_project:
|
43
|
+
rubygems_version: 2.6.2
|
44
|
+
signing_key:
|
45
|
+
specification_version: 4
|
46
|
+
summary: Scope Handler
|
47
|
+
test_files: []
|