ure 0.1.2 → 0.1.3

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ure.rb +15 -8
  3. data/lib/ure/version.rb +1 -1
  4. data/ure.gemspec +2 -0
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 96e9d1b4b013ec862b3445c67061dc0cb3fa2c23
4
- data.tar.gz: 3b15783e3f05950b654260d2d54b84822f19f227
3
+ metadata.gz: 07b4b26f3281fc716ce5068916f52bb219e9b1bb
4
+ data.tar.gz: 96ac0815b786b4fbf623d57952668397835b4545
5
5
  SHA512:
6
- metadata.gz: 26af1bbca303e5eae011aa8df8918277d7116ea4e8dca2691deb015a3fd2b032e451635cdd97892a1aea9bb4c3186fde512874661e9ffae1146fffea7422ca7e
7
- data.tar.gz: 5ae7b9033f77fdf42852c304d8ab75a317fa223ecd0c68ddc4199ffab12abdee9563a7412a466d218ddb993924e7aa7b864a3d878189481b803d4bc0fe2e7b73
6
+ metadata.gz: 32b40cb6ef7961271d12140c9d560ab3ec10c44c0d201f322f0dd607e4cb2a2b7be4d4b8d421e3a04b914f97d4aa0b940569fa9926d8d199d387f193e4984f94
7
+ data.tar.gz: 2f3b0346f8a25aa39bccff9b5607c0dae6ae78f0ed497138512aa9ed311c91c09d840b73f0c036999ef928394d63a3335477a4641a9f3003e01daa5d92d807ec
data/lib/ure.rb CHANGED
@@ -3,7 +3,7 @@ require "json"
3
3
  class Ure < BasicObject
4
4
  include ::Enumerable
5
5
  def self.members
6
- @members
6
+ @members.freeze
7
7
  end
8
8
 
9
9
  def self.new(*members, &body)
@@ -20,6 +20,16 @@ class Ure < BasicObject
20
20
  @members ||= members
21
21
  end
22
22
 
23
+ members.each do |member|
24
+ define_method member.to_sym do
25
+ fields[member.to_sym]
26
+ end
27
+
28
+ define_method :"#{member}=" do |_|
29
+ ::Kernel.fail "can't modify frozen #{self}"
30
+ end
31
+ end
32
+
23
33
  parent_class = self
24
34
 
25
35
  define_method(:class) do
@@ -33,23 +43,20 @@ class Ure < BasicObject
33
43
  def initialize(fields = {})
34
44
  ::Kernel.fail ::ArgumentError, "'fields' must be a 'Hash'" unless fields.is_a?(::Hash)
35
45
 
46
+ members.freeze
47
+
36
48
  members.each do |member|
37
49
  ::Kernel.fail ::ArgumentError, "missing keyword: #{member}" unless fields.include?(member)
38
- instance_eval <<-END_RUBY
39
- def #{member}
40
- fields[#{member.inspect}]
41
- end
42
- END_RUBY
43
50
  end
44
51
 
45
52
  unless (extra = fields.keys - members).empty?
46
53
  ::Kernel.fail ::ArgumentError, "unknown keyword#{'s' if extra.size > 1}: #{extra.join(', ')}"
47
54
  end
48
55
 
49
- @fields = fields
56
+ @fields = fields.freeze
50
57
  end
51
58
 
52
- attr_reader :fields, :class
59
+ attr_reader :fields
53
60
 
54
61
  def ==(arg)
55
62
  if self.class == arg.class
@@ -1,3 +1,3 @@
1
1
  class Ure < BasicObject
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -14,6 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/Calvyn82/ure"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.0")
18
+
17
19
  # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
20
  # delete this section to allow pushing this gem to any host.
19
21
  if spec.respond_to?(:metadata)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clayton Flesher
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-11-16 00:00:00.000000000 Z
12
+ date: 2015-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -86,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '2.0'
90
90
  required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - ">="