card 1.101.3 → 1.101.4
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 +4 -4
 - data/VERSION +1 -1
 - data/config/initializers/02_patches/active_record.rb +1 -1
 - data/config/locales/en.yml +155 -378
 - data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
 - data/lib/card.rb +15 -2
 - data/lib/card/auth.rb +5 -2
 - data/lib/card/auth/current.rb +39 -100
 - data/lib/card/auth/proxy.rb +36 -16
 - data/lib/card/auth/token.rb +6 -0
 - data/lib/card/cache/all.rb +83 -0
 - data/lib/card/cache/card_class.rb +41 -0
 - data/lib/card/cache/persistent.rb +3 -34
 - data/lib/card/cache/persistent_class.rb +28 -0
 - data/lib/card/codename.rb +1 -1
 - data/lib/card/content.rb +16 -2
 - data/lib/card/content/all.rb +59 -0
 - data/lib/card/director/act_direction.rb +4 -0
 - data/lib/card/director/all.rb +61 -0
 - data/lib/card/director/card_class.rb +18 -0
 - data/lib/card/director/phases.rb +0 -1
 - data/lib/card/dirty.rb +13 -3
 - data/lib/card/env/success.rb +14 -14
 - data/lib/card/env/success/target.rb +9 -11
 - data/lib/card/error.rb +1 -1
 - data/lib/card/fetch/all.rb +32 -0
 - data/lib/card/fetch/card_class.rb +147 -0
 - data/lib/card/format.rb +1 -1
 - data/lib/card/format/error.rb +3 -3
 - data/lib/card/format/nest.rb +1 -1
 - data/lib/card/format/nest/fetch.rb +1 -1
 - data/lib/card/lexicon.rb +2 -2
 - data/lib/card/name/all.rb +8 -0
 - data/lib/card/name/all/descendants.rb +6 -3
 - data/lib/card/name/card_class.rb +26 -0
 - data/lib/card/reference/all.rb +131 -0
 - data/lib/card/rule/all.rb +75 -0
 - data/lib/card/set/event/all.rb +95 -0
 - data/lib/card/set/event/skip_and_trigger.rb +89 -0
 - data/lib/card/set/pattern/all.rb +63 -0
 - data/lib/card/subcards/all.rb +103 -0
 - data/lib/cardio/migration/import.rb +1 -1
 - data/lib/cardio/utils.rb +5 -3
 - data/mod/admin/set/self/admin_info.rb +3 -5
 - data/mod/admin/set/self/trash.rb +2 -2
 - data/mod/core/set/all/autoname.rb +17 -0
 - data/mod/core/set/all/codename.rb +2 -2
 - data/mod/core/set/all/content.rb +52 -97
 - data/mod/core/set/all/name_events.rb +69 -58
 - data/mod/core/set/all/reference_events.rb +67 -0
 - data/mod/core/set/all/states.rb +2 -2
 - data/mod/core/set/all/subcards.rb +0 -100
 - data/mod/core/set/all/trash.rb +11 -13
 - data/mod/core/set/all/type.rb +7 -9
 - data/mod/core/set/all/utils.rb +3 -0
 - data/mod/core/set/type/cardtype.rb +3 -3
 - data/mod/core/set_pattern/06_rule.rb +1 -1
 - data/mod/core/spec/set/all/{rules2_spec.rb → clean_me_spec.rb} +0 -0
 - data/mod/core/spec/set/all/name_events_spec.rb +204 -0
 - metadata +30 -37
 - data/lib/card/mod_inflector.rb +0 -16
 - data/lib/card/name/all/class_methods.rb +0 -28
 - data/mod/core/set/all/actify.rb +0 -68
 - data/mod/core/set/all/cache.rb +0 -109
 - data/mod/core/set/all/event_conditions.rb +0 -172
 - data/mod/core/set/all/fetch.rb +0 -122
 - data/mod/core/set/all/fetch_helper.rb +0 -35
 - data/mod/core/set/all/i18n.rb +0 -9
 - data/mod/core/set/all/pattern.rb +0 -54
 - data/mod/core/set/all/references.rb +0 -191
 - data/mod/core/set/all/rename.rb +0 -33
 - data/mod/core/set/all/rules.rb +0 -81
 - data/mod/core/spec/set/all/actify_spec.rb +0 -58
 - data/mod/core/spec/set/all/content_spec.rb +0 -15
 - data/mod/core/spec/set/all/event_conditions_spec.rb +0 -217
 - data/mod/core/spec/set/all/fetch_helper_spec.rb +0 -65
 - data/mod/core/spec/set/all/fetch_spec.rb +0 -338
 - data/mod/core/spec/set/all/i18n_spec.rb +0 -17
 - data/mod/core/spec/set/all/pattern_spec.rb +0 -101
 - data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +0 -166
 - data/mod/core/spec/set/all/references_spec.rb +0 -62
 - data/mod/core/spec/set/all/rename_spec.rb +0 -189
 - data/mod/core/spec/set/all/rules_spec.rb +0 -100
 - data/mod/core/spec/set/all/subcards_spec.rb +0 -102
 
| 
         @@ -1,100 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            RSpec.describe Card::Set::All::Rules do
         
     | 
| 
       4 
     | 
    
         
            -
              before do
         
     | 
| 
       5 
     | 
    
         
            -
                Card::Auth.signin Card::WagnBotID
         
     | 
| 
       6 
     | 
    
         
            -
              end
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              describe "setting data setup" do
         
     | 
| 
       9 
     | 
    
         
            -
                it "makes Set of +*type" do
         
     | 
| 
       10 
     | 
    
         
            -
                  Card.create! name: "SpeciForm", type: "Cardtype"
         
     | 
| 
       11 
     | 
    
         
            -
                  expect(Card.create!(name: "SpeciForm+*type").type_code).to eq(:set)
         
     | 
| 
       12 
     | 
    
         
            -
                end
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              describe "#rule" do
         
     | 
| 
       16 
     | 
    
         
            -
                it "retrieves Set based value" do
         
     | 
| 
       17 
     | 
    
         
            -
                  Card.create name: "Book+*type+*help", content: "authorize"
         
     | 
| 
       18 
     | 
    
         
            -
                  help_rule = Card.new(type: "Book").rule(:help)
         
     | 
| 
       19 
     | 
    
         
            -
                  expect(help_rule).to eq("authorize")
         
     | 
| 
       20 
     | 
    
         
            -
                end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                it "retrieves single values" do
         
     | 
| 
       23 
     | 
    
         
            -
                  Card.create! name: "banana+*self+*help", content: "pebbles"
         
     | 
| 
       24 
     | 
    
         
            -
                  expect(Card["banana"].rule(:help)).to eq("pebbles")
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
              end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
              describe "#setting_codenames_by_group" do
         
     | 
| 
       29 
     | 
    
         
            -
                before do
         
     | 
| 
       30 
     | 
    
         
            -
                  @pointer_settings = %i[options options_label input]
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
                it "doesn't fail on nonexistent trunks" do
         
     | 
| 
       33 
     | 
    
         
            -
                  codenames = Card.new(name: "foob+*right").setting_codenames_by_group
         
     | 
| 
       34 
     | 
    
         
            -
                  expect(codenames.class).to eq(Hash)
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                it "returns universal setting names for non-pointer set" do
         
     | 
| 
       38 
     | 
    
         
            -
                  skip "Different api, we should just put the tests in a new spec for that"
         
     | 
| 
       39 
     | 
    
         
            -
                  snbg = Card.fetch("*star").setting_codenames_by_group
         
     | 
| 
       40 
     | 
    
         
            -
                  # warn "snbg #{snbg.class} #{snbg.inspect}"
         
     | 
| 
       41 
     | 
    
         
            -
                  expect(snbg.keys.length).to eq(4)
         
     | 
| 
       42 
     | 
    
         
            -
                  expect(snbg.keys.first).to be_a Symbol
         
     | 
| 
       43 
     | 
    
         
            -
                  expect(snbg.keys.member?(:pointer)).not_to be_truthy
         
     | 
| 
       44 
     | 
    
         
            -
                end
         
     | 
| 
       45 
     | 
    
         
            -
              end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              describe "user specific rules" do
         
     | 
| 
       48 
     | 
    
         
            -
                before do
         
     | 
| 
       49 
     | 
    
         
            -
                  Card::Auth.signin "Joe User"
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                it "user rule is recognized as rule" do
         
     | 
| 
       53 
     | 
    
         
            -
                  Card::Auth.as_bot do
         
     | 
| 
       54 
     | 
    
         
            -
                    card = Card.create name: "Book+*type+Joe User+*follow",
         
     | 
| 
       55 
     | 
    
         
            -
                                       content: "[[*always]]"
         
     | 
| 
       56 
     | 
    
         
            -
                    expect(card.is_rule?).to be_truthy
         
     | 
| 
       57 
     | 
    
         
            -
                  end
         
     | 
| 
       58 
     | 
    
         
            -
                end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                it "retrieves Set based value" do
         
     | 
| 
       61 
     | 
    
         
            -
                  Card::Auth.as_bot do
         
     | 
| 
       62 
     | 
    
         
            -
                    Card.create name: "Book+*type+Joe User+*follow", content: "[[*always]]"
         
     | 
| 
       63 
     | 
    
         
            -
                  end
         
     | 
| 
       64 
     | 
    
         
            -
                  expect(Card.new(type: "Book").preference(:follow)).to eq("[[*always]]")
         
     | 
| 
       65 
     | 
    
         
            -
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                it "retrieves user independent Set based value" do
         
     | 
| 
       68 
     | 
    
         
            -
                  Card::Auth.as_bot do
         
     | 
| 
       69 
     | 
    
         
            -
                    Card.create name: "Book+*type+*all+*follow", content: "[[Home]]"
         
     | 
| 
       70 
     | 
    
         
            -
                  end
         
     | 
| 
       71 
     | 
    
         
            -
                  expect(Card.new(type: "Book").preference(:follow)).to eq("[[Home]]")
         
     | 
| 
       72 
     | 
    
         
            -
                end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                it "uses *all user rule when no super.s"
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                it "user-specific value overwrites user-independent value" do
         
     | 
| 
       77 
     | 
    
         
            -
                  Card::Auth.as_bot do
         
     | 
| 
       78 
     | 
    
         
            -
                    Card.create name: "Book+*type+Joe User+*follow", content: "[[*never]]"
         
     | 
| 
       79 
     | 
    
         
            -
                    Card.create name: "Book+*type+*all+*follow", content: "[[*always]]"
         
     | 
| 
       80 
     | 
    
         
            -
                  end
         
     | 
| 
       81 
     | 
    
         
            -
                  expect(Card.new(type: "Book").preference(:follow)).to eq("[[*never]]")
         
     | 
| 
       82 
     | 
    
         
            -
                end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                describe "#all_user_ids_with_rule_for" do
         
     | 
| 
       85 
     | 
    
         
            -
                  it "returns all user with values for the given Set and rule" do
         
     | 
| 
       86 
     | 
    
         
            -
                    Card::Auth.as_bot do
         
     | 
| 
       87 
     | 
    
         
            -
                      Card.create(name: "Book+*type+Joe User+*follow", content: "[[Home]]")
         
     | 
| 
       88 
     | 
    
         
            -
                      Card::Auth.signin "Joe Admin"
         
     | 
| 
       89 
     | 
    
         
            -
                      Card.create(name: "Book+*type+Joe Admin+*follow", content: "[[Home]]")
         
     | 
| 
       90 
     | 
    
         
            -
                      user_ids = Card::Rule.all_user_ids_with_rule_for(
         
     | 
| 
       91 
     | 
    
         
            -
                        Card.fetch("Book+*type"), :follow
         
     | 
| 
       92 
     | 
    
         
            -
                      )
         
     | 
| 
       93 
     | 
    
         
            -
                      expect(user_ids.sort).to eq(
         
     | 
| 
       94 
     | 
    
         
            -
                        [Card["Joe User"].id, Card["Joe Admin"].id].sort
         
     | 
| 
       95 
     | 
    
         
            -
                      )
         
     | 
| 
       96 
     | 
    
         
            -
                    end
         
     | 
| 
       97 
     | 
    
         
            -
                  end
         
     | 
| 
       98 
     | 
    
         
            -
                end
         
     | 
| 
       99 
     | 
    
         
            -
              end
         
     | 
| 
       100 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,102 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            RSpec.describe Card::Set::All::Subcards do
         
     | 
| 
       2 
     | 
    
         
            -
              let(:create_card) { Card.create!(name: "main card") }
         
     | 
| 
       3 
     | 
    
         
            -
              let(:create_card_with_subcards) do
         
     | 
| 
       4 
     | 
    
         
            -
                Card.create name: "main card",
         
     | 
| 
       5 
     | 
    
         
            -
                            subcards: { "11" => { subcards: { "111" => "A" } },
         
     | 
| 
       6 
     | 
    
         
            -
                                        "12" => { subcards: { "121" => "A" } } }
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              class Card
         
     | 
| 
       10 
     | 
    
         
            -
                def __current_trans
         
     | 
| 
       11 
     | 
    
         
            -
                  @current_trans = ActiveRecord::Base.connection.current_transaction
         
     | 
| 
       12 
     | 
    
         
            -
                end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                def __record_names reset=false
         
     | 
| 
       15 
     | 
    
         
            -
                  trans = @current_trans && !reset ? @current_trans : __current_trans
         
     | 
| 
       16 
     | 
    
         
            -
                  trans.records&.map { |r| r.try :name }&.compact
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
              end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
              describe "add subcards" do
         
     | 
| 
       21 
     | 
    
         
            -
                context "when in integrate stage" do
         
     | 
| 
       22 
     | 
    
         
            -
                  context "with default subcard handling" do
         
     | 
| 
       23 
     | 
    
         
            -
                    it "processes all cards in one transaction" do
         
     | 
| 
       24 
     | 
    
         
            -
                      with_test_events do
         
     | 
| 
       25 
     | 
    
         
            -
                        test_event :validate, on: :create, for: "main card" do
         
     | 
| 
       26 
     | 
    
         
            -
                          add_subcard("sub card")
         
     | 
| 
       27 
     | 
    
         
            -
                        end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                        test_event :finalize, on: :create, for: "main card" do
         
     | 
| 
       30 
     | 
    
         
            -
                          expect(__record_names).to eq ["main card", "sub card"]
         
     | 
| 
       31 
     | 
    
         
            -
                        end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                        create_card
         
     | 
| 
       34 
     | 
    
         
            -
                      end
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
                  end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                  context "with delayed jobs" do
         
     | 
| 
       39 
     | 
    
         
            -
                    before { Cardio.delaying! }
         
     | 
| 
       40 
     | 
    
         
            -
                    after { Cardio.delaying! :off }
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                    context "with serial subcard handling" do
         
     | 
| 
       43 
     | 
    
         
            -
                      it "director.delay! processes subcards in separate transaction" do
         
     | 
| 
       44 
     | 
    
         
            -
                        with_test_events do
         
     | 
| 
       45 
     | 
    
         
            -
                          test_event :validate, on: :create, for: "main card" do
         
     | 
| 
       46 
     | 
    
         
            -
                            sc = add_subcard("sub card")
         
     | 
| 
       47 
     | 
    
         
            -
                            sc.director.delay!
         
     | 
| 
       48 
     | 
    
         
            -
                          end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                          test_event :finalize, on: :create, for: "main card" do
         
     | 
| 
       51 
     | 
    
         
            -
                            expect(__record_names(true)).to eq ["main card"]
         
     | 
| 
       52 
     | 
    
         
            -
                            expect(subcard("sub card").director.stage).to eq nil
         
     | 
| 
       53 
     | 
    
         
            -
                          end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                          test_event :integrate, on: :create, for: "main card" do
         
     | 
| 
       56 
     | 
    
         
            -
                            expect(__record_names(true)).to eq(nil)
         
     | 
| 
       57 
     | 
    
         
            -
                            expect(subcard("sub card").director.stage).to eq nil
         
     | 
| 
       58 
     | 
    
         
            -
                          end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                          test_event :finalize, on: :create, for: "sub card" do
         
     | 
| 
       61 
     | 
    
         
            -
                            expect(__record_names(true)).to eq ["sub card"]
         
     | 
| 
       62 
     | 
    
         
            -
                          end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                          test_event :integrate_with_delay, on: :create do
         
     | 
| 
       65 
     | 
    
         
            -
                            expect(__record_names(true)).to eq(nil)
         
     | 
| 
       66 
     | 
    
         
            -
                          end
         
     | 
| 
       67 
     | 
    
         
            -
                          create_card
         
     | 
| 
       68 
     | 
    
         
            -
                          expect(Delayed::Worker.new.work_off).to eq [2, 0]
         
     | 
| 
       69 
     | 
    
         
            -
                          expect(Card["sub card"]).to be_instance_of(Card)
         
     | 
| 
       70 
     | 
    
         
            -
                        end
         
     | 
| 
       71 
     | 
    
         
            -
                      end
         
     | 
| 
       72 
     | 
    
         
            -
                    end
         
     | 
| 
       73 
     | 
    
         
            -
                  end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  describe "in integrate_with_delay stage" do
         
     | 
| 
       76 
     | 
    
         
            -
                    it "processes cards not in the same transaction" do
         
     | 
| 
       77 
     | 
    
         
            -
                      with_test_events do
         
     | 
| 
       78 
     | 
    
         
            -
                        test_event :integrate_with_delay, on: :create, for: "main card" do
         
     | 
| 
       79 
     | 
    
         
            -
                          Card.create! name: "sub create card"
         
     | 
| 
       80 
     | 
    
         
            -
                          add_subcard("sub card")
         
     | 
| 
       81 
     | 
    
         
            -
                        end
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                        test_event :finalize, on: :create, for: "main card" do
         
     | 
| 
       84 
     | 
    
         
            -
                          __current_trans
         
     | 
| 
       85 
     | 
    
         
            -
                        end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                        main_card = create_card
         
     | 
| 
       88 
     | 
    
         
            -
                        Delayed::Worker.new.work_off
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                        expect(main_card.__record_names).to eq ["main card"]
         
     | 
| 
       91 
     | 
    
         
            -
                        expect(Card["sub card"]).to exist
         
     | 
| 
       92 
     | 
    
         
            -
                        expect(Card["sub create card"]).to exist
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                        act_of_main = main_card.acts.last
         
     | 
| 
       95 
     | 
    
         
            -
                        expect(act_of_main).to eq Card["sub create card"].actions.last.act
         
     | 
| 
       96 
     | 
    
         
            -
                        expect(act_of_main).to eq Card["sub card"].actions.last.act
         
     | 
| 
       97 
     | 
    
         
            -
                      end
         
     | 
| 
       98 
     | 
    
         
            -
                    end
         
     | 
| 
       99 
     | 
    
         
            -
                  end
         
     | 
| 
       100 
     | 
    
         
            -
                end
         
     | 
| 
       101 
     | 
    
         
            -
              end
         
     | 
| 
       102 
     | 
    
         
            -
            end
         
     |