Class: Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::StringVal::NonEmpty
- Inherits:
-
Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::StringVal
- Object
- Stupidedi::Values::AbstractVal
- Stupidedi::Values::AbstractElementVal
- Stupidedi::Values::SimpleElementVal
- Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::StringVal
- Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::StringVal::NonEmpty
- Defined in:
- lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb
Overview
Non-empty string value. Shouldn’t be directly instantiated – instead, use the value constructor.
Instance Attribute Summary collapse
- #value ⇒ String readonly
Attributes inherited from Stupidedi::Values::SimpleElementVal
Instance Method Summary collapse
- #==(other) ⇒ Boolean
- #copy(changes = {}) ⇒ NonEmpty
- #downcase ⇒ StringVal::NonEmpty
- #empty? ⇒ Boolean
- #gsub(*args, &block) ⇒ StringVal::NonEmpty
-
#initialize(string, usage, position) ⇒ NonEmpty
constructor
A new instance of NonEmpty.
- #inspect ⇒ String
- #to_date(format) ⇒ Object
- #too_long? ⇒ Boolean
- #too_short? ⇒ Boolean
- #upcase ⇒ StringVal::NonEmpty
- #valid? ⇒ Boolean
Methods inherited from Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::StringVal
Methods inherited from Stupidedi::Values::SimpleElementVal
#allowed?, #component?, #date?, #definition, #id?, #leaf?, #numeric?, #simple?, #string?, #time?, #to_x12
Methods inherited from Stupidedi::Values::AbstractElementVal
Methods inherited from Stupidedi::Values::AbstractVal
#blank?, #characters, #component?, #composite?, #definition, #element?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #segment?, #separator?, #simple?, #size, #table?, #transaction_set?, #transmission?
Methods included from Color
Constructor Details
#initialize(string, usage, position) ⇒ NonEmpty
Returns a new instance of NonEmpty.
137 138 139 140 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 137 def initialize(string, usage, position) @value = string super(usage, position) end |
Instance Attribute Details
#value ⇒ String (readonly)
133 134 135 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 133 def value @value end |
Instance Method Details
#==(other) ⇒ Boolean
283 284 285 286 287 288 289 290 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 283 def ==(other) eql?(other) or (if other.is_a?(NonEmpty) other.value == @value else other == @value end) end |
#copy(changes = {}) ⇒ NonEmpty
143 144 145 146 147 148 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 143 def copy(changes = {}) NonEmpty.new \ changes.fetch(:value, @value), changes.fetch(:usage, usage), changes.fetch(:position, position) end |
#downcase ⇒ StringVal::NonEmpty
194 195 196 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 194 def downcase copy(:value => @value.downcase) end |
#empty? ⇒ Boolean
179 180 181 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 179 def empty? false end |
#gsub(*args, &block) ⇒ StringVal::NonEmpty
184 185 186 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 184 def gsub(*args, &block) copy(:value => @value.gsub(*args, &block)) end |
#inspect ⇒ String
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 159 def inspect id = definition.bind do |d| "[#{'% 5s' % d.id}: #{d.name}]".bind do |s| if usage.forbidden? ansi.forbidden(s) elsif usage.required? ansi.required(s) else ansi.optional(s) end end end ansi.element("AN.value#{id}") << "(#{@value})" end |
#to_date(format) ⇒ Object
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 198 def to_date(format) case format when "D8" # CCYYMMDD Date.civil(@value.slice(0, 4).to_i, # year @value.slice(4, 2).to_i, # month @value.slice(6, 2).to_i) # day when "DB" # MMDDCCYY Date.civil(@value.slice(4, 4).to_i, @value.slice(0, 2).to_i, @value.slice(2, 2).to_i) when "DDT" # CCYYMMDD-CCYYMMDDHHMM Time.utc(@value.slice(0, 4).to_i, # year @value.slice(4, 2).to_i, # month @value.slice(6, 2).to_i) .. # day Time.utc(@value.slice(9, 4).to_i, @value.slice(13, 2).to_i, @value.slice(15, 2).to_i, @value.slice(17, 2).to_i, # hour @value.slice(19, 2).to_i) # minute when "DT" # CCYYMMDDHHMM Time.utc(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i, @value.slice(8, 2).to_i, @value.slice(10, 2).to_i) when "DTD" # CCYYMMDDHHMM-CCYYMMDD Time.utc(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i, @value.slice(8, 2).to_i, @value.slice(10, 2).to_i) .. Time.utc(@value.slice(13, 4).to_i, @value.slice(15, 2).to_i, @value.slice(17, 2).to_i) when "DTS" # CCYYMMDDHHMMSS-CCYYMMDDHHMMSS Time.utc(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i, @value.slice(8, 2).to_i, @value.slice(10, 2).to_i, @value.slice(12, 2).to_i) .. Time.utc(@value.slice(15, 4).to_i, @value.slice(19, 2).to_i, @value.slice(21, 2).to_i, @value.slice(23, 2).to_i, @value.slice(25, 2).to_i, @value.slice(27, 2).to_i) when "RD" # MMDDCCYY-MMDDCCYY Date.civil(@value.slice(4, 4).to_i, @value.slice(0, 2).to_i, @value.slice(2, 2).to_i) .. Date.civil(@value.slice(13, 4).to_i, @value.slice(9, 2).to_i, @value.slice(11, 2).to_i) when "RD8" # CCYYMMDD-CCYYMMDD Date.civil(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i) .. Date.civil(@value.slice(9, 4).to_i, @value.slice(11, 2).to_i, @value.slice(13, 2).to_i) when "RDT" # CCYYMMDDHHMM-CCYYMMDDHHMM Time.utc(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i, @value.slice(8, 2).to_i, @value.slice(10, 2).to_i) .. Time.utc(@value.slice(13, 4).to_i, @value.slice(15, 2).to_i, @value.slice(17, 2).to_i, @value.slice(19, 2).to_i, @value.slice(21, 2).to_i) when "RTS" # CCYYMMDDHHMMSS Time.utc(@value.slice(0, 4).to_i, @value.slice(4, 2).to_i, @value.slice(6, 2).to_i, @value.slice(8, 2).to_i, @value.slice(10, 2).to_i) else raise ArgumentError, "Format code #{format} is not recognized" end end |
#too_long? ⇒ Boolean
150 151 152 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 150 def too_long? @value.lstrip.length > definition.max_length end |
#too_short? ⇒ Boolean
154 155 156 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 154 def too_short? @value.lstrip.length < definition.min_length end |
#upcase ⇒ StringVal::NonEmpty
189 190 191 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 189 def upcase copy(:value => @value.upcase) end |
#valid? ⇒ Boolean
175 176 177 |
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb', line 175 def valid? true end |