• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

samvera / ldp / 7aae4f98-f021-4aa3-ade3-5b1586e22f3d

19 Aug 2024 06:45PM UTC coverage: 86.165%. Remained the same
7aae4f98-f021-4aa3-ade3-5b1586e22f3d

push

circleci

web-flow
Test with latest ruby and rails versions (#156)

492 of 571 relevant lines covered (86.16%)

38.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.42
/lib/ldp/orm.rb
1
module Ldp
16✔
2
  class Orm
16✔
3
    attr_reader :resource
16✔
4
    attr_reader :last_response
16✔
5

6
    def initialize resource
16✔
7
      @resource = resource
33✔
8
    end
9

10
    def subject_uri
16✔
11
      resource.subject_uri
36✔
12
    end
13

14
    def new?
16✔
15
      resource.new?
×
16
    end
17

18
    def persisted?
16✔
19
      !new?
×
20
    end
21

22
    def graph
16✔
23
      Ldp.instrument 'graph.orm.ldp', subject: subject_uri do
9✔
24
        resource.graph
9✔
25
      end
26
    end
27

28
    def value predicate
16✔
29
      graph.query([subject_uri, predicate, nil]).map do |stmt|
9✔
30
        stmt.object
9✔
31
      end
32
    end
33

34
    def query *args, &block
16✔
35
      Ldp.instrument 'query.orm.ldp', subject: subject_uri do
×
36
        graph.query *args, &block
×
37
      end
38
    end
39

40
    def reload
16✔
41
      Ldp.instrument 'reload.orm.ldp', subject: subject_uri do
6✔
42
        Ldp::Orm.new resource.reload
6✔
43
      end
44
    end
45

46
    def create
16✔
47
      Ldp.instrument 'create.orm.ldp', subject: subject_uri do
3✔
48
        # resource.create returns a reloaded resource which causes any default URIs (e.g. "<>")
49
        # in the graph to be transformed to routable URIs
50
        Ldp::Orm.new resource.create
3✔
51
      end
52
    end
53

54
    def save
16✔
55
      Ldp.instrument 'save.orm.ldp', subject: subject_uri do
6✔
56
        response = create_or_update
6✔
57

58
        response.success?
3✔
59
      end
60
    rescue Ldp::HttpError
61
      false
3✔
62
    end
63

64
    def save!
16✔
65
      result = create_or_update
3✔
66

67
      if result.is_a? RDF::Enumerable
×
68
        raise Ldp::GraphDifferenceException, 'Graph failed to persist', result
×
69
      end
70

71
      result
×
72
    end
73

74
    def delete
16✔
75
      Ldp.instrument 'delete.orm.ldp', subject: subject_uri do
3✔
76
        resource.delete
3✔
77
      end
78
    end
79

80
    private
16✔
81

82
    def create_or_update
16✔
83
      @last_response = resource.save
9✔
84
    rescue Ldp::HttpError => e
85
      @last_response = e
6✔
86
      logger.debug e
6✔
87
      raise e
6✔
88
    end
89

90
    def logger
16✔
91
      Ldp.logger
6✔
92
    end
93
  end
94
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc